主要内容

求解线性方程组

此示例说明了如何使用 Symbolic Math Toolbox™ 来求解线性方程组。

使用 linsolve 求解线性方程组

一个线性方程组

a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bm

可以表示为矩阵方程 Ax=b,其中 A 是系数矩阵

A=[a11a1nam1amn]

b 是包含方程右侧部分的向量,

b=[b1bm]

如果线性方程组不是 AX = B 的形式,您可以使用 equationsToMatrix 将方程转换为这种形式。以下面这个方程组为例。

2x+y+z=2-x+y-z=3x+2y+3z=-10

定义该方程组。

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 = 

(211-11-1123)

B = 

(23-10)

使用 linsolve 求解 AX = B,解出未知向量 X

X = linsolve(A,B)
X = 

(31-5)

X 的结果可知,该方程组的解为 x=3y=1z=-5

使用 solve 求解线性方程组

如果方程是以表达式的形式而不是系数矩阵的形式给出的,请使用 solve 而不是 linsolve。以同一个线性方程组为例。

2x+y+z=2-x+y-z=3x+2y+3z=-10

定义该方程组。

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 = 3
ySol = sol.y
ySol = 1
zSol = sol.z
zSol = -5

另请参阅

主题