我试图用两种方法在Matlab中求解4个线性方程组 第一:
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]';
结果:
X = 0.5556 17.4667 4.4889 -11.0444
第二:
[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')
结果:
X = -497/45, Y=5/9, Z=262/15, W=202/45
正如您所看到的,第二种方式的结果并没有按照正确的顺序排列。我用Google搜索了方程式,发现第一个顺序是正确的。
有谁知道发生了什么以及如何解决?
提前Thanx!
答案 0 :(得分:3)
当您致电solve
时指定未知数的顺序:
>> 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
顺便说一下,一旦您将x
,y
,z
,w
定义为符号变量,就可以避免使用引号:
>> [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