在matlab中求解线性方程组



我是Matlab的新手。假设我想求解一个由2个方程组成的线性系统,其中有5个变量x1,x2,x3,x4,x5。Matlab能给我x1和x2的x3、x4和x5的解决方案吗?我还想给一个或多个变量赋值,比如说,我想看看如果x3=5或x3=3和x5=1会发生什么。有办法做到这一点吗?

我查看了帮助页面https://www.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html#d120e14359,但它不包括非平方矩阵情况

您可以使用solve的多次调用来获取x1和x2的解决方案。在这个问题中,你可以求解x1的第一个方程,然后将其代入第二个方程,得到x3x4x5的x2。然后,您可以将x2的新值替换回x1的解决方案。

subs函数用于将求解的值替换回原始方程。

syms x1 x2 x3 x4 x5
eq1 = x1 + 4*x2 - 5*x3 + 2*x4 + x5; 
eq2 = 3*x1 + 8*x2 - 3*x3 + x4 - x5;
x1s = solve(eq1, x1);   % Solve x1 in term of x2-x5
x2s = solve(subs(eq2, x1, x1s), x2); % Solve x2 in terms of x3-x5
x1s = solve(subs(eq1, x2, x2s), x1); % Resolve x1 in terms of x3-x5

输出:

x1s =
3*x4 - 7*x3 + 3*x5

x2s =
3*x3 - (5*x4)/4 - x5

可以使用subs插入x3x4x5的值。例如,对于x4=3x5=4

subs(x1s, [x4 x5], [3 4])
ans =
21 - 7*x3

最新更新