在MATLAB中求解线性方程组

时间:2018-11-28 18:03:14

标签: matlab

我是Matlab的新手。假设我想用5个变量x1,x2,x3,x4,x5求解2个方程的线性系统。 Matlab可以给我x3,x4和x5的x1和x2解决方案吗?我还想为一个或多个变量赋值,例如我想看看如果x3 = 5或x3 = 3和x5 = 1会发生什么。有没有办法做到这一点?

我查看了帮助页面https://www.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html#d120e14359,但其中没有涵盖非方阵的情况

1 个答案:

答案 0 :(得分:2)

您可以使用多个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

您可以使用x3插入x4x5subs的值。例如,对于x4=3x5=4

subs(x1s, [x4 x5], [3 4])

ans =

21 - 7*x3