首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中线性方程组的两种求解方法但不能得到相同的结果

matlab中线性方程组的两种求解方法但不能得到相同的结果
EN

Stack Overflow用户
提问于 2015-03-12 01:30:01
回答 1查看 48关注 0票数 1

我正在尝试用Matlab解决一个由4个线性方程组组成的系统,首先有两种方法:

代码语言:javascript
复制
A = [5,2,3,4;2,6,1,9;6,3,1,5;2,4,7,9];
B = [7;11;5;3];
X = [A\B]';

结果是:

代码语言:javascript
复制
X =  0.5556   17.4667    4.4889  -11.0444

第二:

代码语言:javascript
复制
[x,y,z,w] = solve('5*x+2*y+3*z+4*w-7','2*x+6*y+z+9*w-11','6*x+3*y+z+5*w-5','2*x+4*y+7*z+9*w-3')

With结果:

代码语言:javascript
复制
X = -497/45, Y=5/9,  Z=262/15, W=202/45 

如您所见,第二种方法的结果顺序不正确。我在谷歌上搜索了方程式,发现第一阶是正确的。

有没有人知道发生了什么以及如何解决它?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-03-12 01:38:42

在调用solve时指定未知数的顺序

代码语言:javascript
复制
>> syms x y z w %// define symbolic variables (unknowns)
>> [x0,y0,z0,w0] = solve('5*x+2*y+3*z+4*w-7',...
                         '2*x+6*y+z+9*w-11',...
                         '6*x+3*y+z+5*w-5',...
                         '2*x+4*y+7*z+9*w-3',...
                          x, y, z, w)
x0 =
5/9
y0 =
262/15
z0 =
202/45
w0 =
-497/45

顺便说一下,一旦您将xyzw定义为符号变量,您就可以避免使用引号:

代码语言:javascript
复制
>> [x0,y0,z0,w0] = solve(5*x+2*y+3*z+4*w-7,...
                         2*x+6*y+z+9*w-11,...
                         6*x+3*y+z+5*w-5,...
                         2*x+4*y+7*z+9*w-3,...
                         x, y, z, w)
x0 =
5/9
y0 =
262/15
z0 =
202/45
w0 =
-497/45
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28993410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档