使用equationToMatrix时,您可以像示例中那样求解一组线性方程式(包括解决方案)
syms x y z;
[A, b] = equationsToMatrix([x + y - 2*z == 0, x + y + z == 1, 2*y - z + 5 == 0], [x, y, z])
%solution of the equation set
A =
[ 1, 1, -2]
[ 1, 1, 1]
[ 0, 2, -1]
b =
0
1
-5
向量b返回有争议的变量的值:x,y和z。但是,如果我输入x,则MATLAB返回x而不是0,这是这种情况下方程的解。这也会在不添加syms选项的情况下发生。
另一个问题是如果我输入b(1)或b(2),我没有得到任何值:我希望b包含x,y和z的值。 我需要的是最终得到这样的东西
b(1) = 0
或
x = 0
如果只输入x,y,z,我该怎么做才能获得x,y,z的值?
答案 0 :(得分:3)
您所拥有的是通过提取系数矩阵将符号线性方程转换为数字系统的方法。要解决您需要的系统
sol = A\b;
现在您可以使用
中的另一个表达式中的值 subst(expr, {x,y,z}, {sol(1),sol(2),sol(3));
例如
A =
1 1 -2
1 1 1
0 2 -1
b =
0
1
-5
>> A\b
ans =
3.0000
-2.3333
0.3333