求解线性方程组
此示例说明了如何使用 Symbolic Math Toolbox™ 来求解线性方程组。
使用 linsolve 求解线性方程组
一个线性方程组
可以表示为矩阵方程 ,其中 是系数矩阵
是包含方程右侧部分的向量,
如果线性方程组不是 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 的第二个输入指定了方程中的自变量。
[A,B] = equationsToMatrix([eqn1,eqn2,eqn3],[x,y,z])
A =
B =
使用 linsolve 求解 AX = B,解出未知向量 X。
X = linsolve(A,B)
X =
从 X 的结果可知,该方程组的解为 、 和 。
使用 solve 求解线性方程组
如果方程是以表达式的形式而不是系数矩阵的形式给出的,请使用 solve 而不是 linsolve。以同一个线性方程组为例。
定义该方程组。
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]);
solve 以结构体数组的形式返回解。要获得这些解,请对该数组进行索引。
xSol = sol.x
xSol =
ySol = sol.y
ySol =
zSol = sol.z
zSol =