/ / Розв’язування лінійної системи рівнянь з двома змінними в MATLAB - матлаб, лінійна алгебра, рішення рівнянь, бісекція

Вирішення лінійної системи рівняння з двома змінними в MATLAB - matlab, лінійної алгебри, рішення рівнянь, розбиття

Це може здатися простим питанням. Мені це потрібно, хоча. Припустимо, маємо два рівняння:

2 * y + x + 1 = 0

і

y - 2 * x = 0

Я хотів би знайти їх ділення, яке можна обчислити з цього рівняння:

  |x + 2 * y + 1|        |-2 *x +  y |
------------------- = -----------------
(sqrt(2^2 + 1^2))      (sqrt(1^2 + 2^2))

Щоб зробити довгу історію короткою, нам потрібно лише розв'язати цю систему рівнянь нижче:

2 * y + x + 1 = -2 *x +  y
and
2 * y + x + 1 =  2 *x -  y

Однак використовуйте solve функція MATLAB:

syms x y
eqn1   = 2 * y + x + 1 == -2 *x +  y ;
eqn2   = 2 * y + x + 1 ==  2 *x -  y ;
[x, y] = solve (eqn1 , eqn2, x, y)   ;

Дасть мені:

x = -1/5 і y = -2/5

Але я шукаю рівняння результату, а саме:

y = -3 * x - 1 і 3 * y = 2 * x - 1

Отже, хтось знає, як я можу отримати вищевказане рівняння замість точки результату? Дякую,

Відповіді:

2 для відповіді № 1

Далі слід вирішити обидва рівняння з y з лівого боку:

y1 = solve(eqn1,y)
y2 = solve(eqn2,y)

Результат:

y1 =

- 3*x - 1

y2 =

x/3 - 1/3

Як сторону, було б набагато швидше вирішити цю систему, думаючи про це як про проблему інверсії матриці Ax=b замість використання символічних інструментів MATLAB:

A = [1 2; -2 1];
b = [-1; 0];
x = Ab

Результат:

x =

-0.2000
-0.4000