線形方程式系の求解
この節では、Symbolic Math Toolbox™ を使用して線形方程式系を解く方法を説明します。
linsolve を使用した線形方程式系の求解
線形方程式系
は、行列方程式 として表すことができます。ここで、A は次の係数行列です。
また、 は、方程式の右辺
を含むベクトルです。
線形方程式系が AX = B
の形式になっていない場合は、equationsToMatrix
を使用して方程式をこの形式に変換します。以下の方程式系を考えます。
方程式系を宣言します。
syms x y z eqn1 = 2*x + y + z == 2; eqn2 = -x + y - z == 3; eqn3 = x + 2*y + 3*z == -10;
equationsToMatrix
を使用して方程式を AX = B
の形式に変換します。equationsToMatrix
への 2 番目の入力は方程式の独立変数を指定します。
[A,B] = equationsToMatrix([eqn1, eqn2, eqn3], [x, y, z])
A = [ 2, 1, 1] [ -1, 1, -1] [ 1, 2, 3] B = 2 3 -10
linsolve
を使用して AX = B
を解き、不明な X
のベクトルを求めます。
X = linsolve(A,B)
X = 3 1 -5
X
から x = 3、y = 1、および z = -5 が求められます。
solve を使用した線形方程式系の求解
方程式が係数の行列ではなく式の形式である場合は linsolve
の代わりに solve
を使用します。同様の線形方程式系を考えます。
方程式系を宣言します。
syms x y z eqn1 = 2*x + y + z == 2; eqn2 = -x + y - z == 3; eqn3 = x + 2*y + 3*z == -10;
solve
を使用して方程式系を解きます。solve
への入力は方程式のベクトルと、方程式から求める変数のベクトルです。
sol = solve([eqn1, eqn2, eqn3], [x, y, z]); xSol = sol.x ySol = sol.y zSol = sol.z
xSol = 3 ySol = 1 zSol = -5
solve
は解を構造体配列で返します。解にアクセスするには配列のインデックスを指定します。