利用Matlab求解线性方程组的完全符号解



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

在Mathematica中,"solve"函数总是返回一个包含所有解的符号解。但我发现Matlab只给了我一个数值解,这对我没有太大帮助。

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

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

相关内容

  • 没有找到相关文章

最新更新