2015-03-11 15 views
1

Я пытаюсь решить систему из 4 линейных уравнений в Matlab с двумя способами Первый:системы линейных уравнений в MATLAB с 2-мя способами, но не могут получить одинаковые результаты

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 

Как вы видите, результаты на втором пути находятся не в правильном порядке. Я googled уравнения и обнаружил, что первый порядок является правильным.

Есть ли у кого-нибудь представление о том, что происходит и как его решить?

Thanx заранее!

ответ

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 
+0

Я тоже пробовал, но результаты, которые я получаю, такие же, как раньше. – Fillorry

+0

А? Вы наклеили мой код как есть? –

+0

Да, но все равно. – Fillorry