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

时间:2019-06-20 08:38:03

标签: matlab symbolic-math

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

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

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

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

result=solve(eqn,x)

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

1 个答案:

答案 0 :(得分:3)

  • 如果将输出设置为 单个变量 solve将返回一个结构 包含所有解决方案的数据类型,以获取每种解决方案的使用 点.的赋值,例如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]