1

使用 equationsToMatrix 时,您可以解决示例中的一组线性方程(包括解决方案)

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 的值?

4

1 回答 1

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
于 2013-03-14T10:26:39.627 回答