我是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
的第一个方程,然后将其代入第二个方程,得到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
可以使用subs
插入x3
、x4
和x5
的值。例如,对于x4=3
和x5=4
:
subs(x1s, [x4 x5], [3 4])
ans =
21 - 7*x3