用Matlab查找线性方程组的完整和符号解

时间:2018-11-29 04:50:29

标签: matlab

假设我有2个线性方程和3个变量。该解决方案至少是一维的。我希望Matlab通过根据另一个自由变量编写两个变量x1,x2,x3来找到所有解决方案。这可能吗?看来Matlab总是给我一个数值解。

在Mathematica中,“解决”功能始终返回包含所有解决方案的符号解决方案。但是我发现Matlab只是给我一个数值解,不是很有帮助。

1 个答案:

答案 0 :(得分:3)

首先,定义要使用的符号变量:

syms x y z;

然后定义每个等式。如果您具有以矩阵形式给出的线性系统,请使用for循环创建方程。

eqns = [x + y + z == 1, x + 2*y + 3*z == 2];

定义变量:

vars = [x, y, z];

最后,将solve设置为ReturnConditions,并用true解决。这样,求解器就返回所有可能的解决方案。

[solx, soly, solz, param, conds] = solve(eqns, vars, 'ReturnConditions', true);

上面的示例提供了以下解决方案:

solx =

z1

soly =

1 - 2*z1

solz =

z1

param =

z1