我是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,但其中没有涵盖非方阵的情况
答案 0 :(得分:2)
您可以使用多个solve
来获取x1和x2的解决方案。在此问题中,您可以求解x1
的第一个方程,然后将其插入第二个方程以根据x3
,x4
和x5
得出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
插入x4
,x5
和subs
的值。例如,对于x4=3
和x5=4
:
subs(x1s, [x4 x5], [3 4])
ans =
21 - 7*x3