关于使用符号数学求解方程组的问题

question about solving system of equations using symbolic math

我想用符号来求解线性方程组。所以我准备了下面的代码。

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

eqn=A*x==[1;2];

result=solve(eqn,x)

有趣的是,它有效,但是当我读取变量结果时,它给出了一个 1X1 结构,其中 x_1 和 x_2 是 1X1 符号。但是我期望得到的应该是 2 个真实值,为什么?有人可以解释一下吗?备注:不想用 A^-1*[1;2] 来得到答案。

  • 如果设置输出为单变量solvereturns一个结构 包含所有解决方案的数据类型,以获取每个解决方案的使用 点.赋值,如result.x_1result.x_2

代码如下

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

 eqn=A*x==[1;2];
result = solve(eqn,x);
result.x_1
% 0
result.x_2
% 1/2

  • 如果你想要result作为一个数组,使用多输出格式,比如 result(1) 表示第一个变量,result(2) 表示第二个变量

代码如下

A=[1,2;3,4];

% syms x
x=sym('x_%d',[2 1]);

 eqn=A*x==[1;2];

[result(1), result(2)] = solve(eqn,x);
result
% result = [0 , 1/2]