/ / Решаване на уравнения чрез MATLAB - MATLAB, система, уравнения

Решаване на система от уравнения, използващи MATLAB - MATLAB, система, уравнения

Така че имам следната система от уравнения

 x1 - x2 =  20
x2 - x3 =  30
x3 - x4 =  75
x4 - x5 = -49
-x1 + x5 = -20

как да разреша системата, използвайки Matlab? Аз съм малко остана.

Има шанс, че няма решение, но ако някой може да ме уведоми как да го направя, това би било чудесно!

Отговори:

9 за отговор № 1

Първо, преобразувайте това уравнение в матрична нотация:

A = [ 1 -1  0  0  0
0  1 -1  0  0
0  0  1 -1  0
0  0  0  1 -1
-1  0  0  0  1];

b = [ 20
30
75
-49
-20];

Опитвате се да намерите x давайки Ax = b, Не можете да вземете обратното A тъй като това е единствено. За да видите това, проверете неговия ранг; rank(A) == 4, Щеше да е 5, ако A не са били единични.

Така че, трябва да намерите най-доброто x притискащото b когато се умножи по A отляво. Това е проблем с оптимизацията: искате да минимизирате грешката между тях Ax и b, Обикновено хората използват метода на най-малките квадрати. Тоест минимизирате сумата от квадратите на остатъците. Това може да бъде направено от псевдо обратен както следва:

x = pinv(A) * b

дава

x =

31.8000
23.0000
4.2000
-59.6000
0.6000

Най - доброто сближаване се открива от

b2 = A*x


b2 =

8.8000
18.8000
63.8000
-60.2000
-31.2000

Показано е, че най-малката квадратна грешка е

e = norm(b-b2)

e =

25.0440

Ако искате да опитате други методи, алтернативни на най-малките квадрати, за да ги сведете до минимум Ax-b, можете да намалите до минимум Google, намаляване на кодирането и т.н.


0 за отговор № 2

Просто погледнете го и умствено добавете уравненията. LHS е нула, дясната страна е нещо положително, така че няма решение!