Метод Гаусса — Йордана

Матеріал з testwiki
Версія від 13:11, 3 лютого 2025, створена imported>Олюсь
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Метод Гаусса — Йордана використовується для розв'язання систем лінійних алгебраїчних рівнянь, знаходження оберненої матриці, знаходження координат вектора у заданому базисі, відшукання рангу матриці. Метод є модифікацією методу Гаусса. Названий на честь Карла Фрідріха Гаусса та німецького математика та геодезиста Вільгельма Йордана.

Алгоритм

  1. Обирається перша зліва колонка, що містить хоч одне ненульове значення.
  2. Якщо верхнє число у цій колонці — нуль, то обмінюється увесь перший рядок матриці з іншим рядком матриці, де у цій колонці нема нуля.
  3. Усі елементи першого рядка діляться на верхній елемент обраної колонки.
  4. Від рядків, що залишились, віднімається перший рядок, помножений на перший елемент відповідного рядка, з метою отримання нуля в першому елементі кожного рядка (крім першого).
  5. Далі, повторюємо ці операції із матрицею, отриманою з початкової матриці після викреслювання першого рядка та першого стовпчика.
  6. Після повторення операцій n − 1 разів отримаємо верхню трикутну матрицю.
  7. Віднімаємо від передостаннього рядка останній рядок, помножений на відповідний коефіцієнт, щоб у передостанньому рядку залишилась лише 1 на головній діагоналі.
  8. Повторюємо попередній крок для наступних рядків. У результаті отримуємо одиничну матрицю і рішення на місці вільного вектора (над ним необхідно виконувати ті самі перетворення).

Розгорнутий алгоритм для знаходження оберненої матриці

Нехай дано:

A=(a11a12a1na21a22a2nan1an2ann)aii0I=(100010001)

Прямий хід (алгоритм утворення нулів під головною діагоналлю)

  • Поділимо перший рядок матриці А на a11 отримаємо: a1j1=a1ja11, j — стовпець матриці А.
  • Повторюємо дії для матриці I, за формулою: b1s1=b1sa11, s — стовпець матриці I.

Отримаємо:

A=(1a121a1n1a21a22a2nan1an2ann)I=(b11100010001)
  • Будемо утворювати 0 у першому стовпці: a2j1=a2ja1j1a21anj1=anja1j1an1.
  • Повторюємо дії для матриці І, за формулами : b2s1=b2sb1s1a21bns1=bnsb1s1an1

Отримаємо:

A=(1a121a1n10a221a2n10a2n1ann1)I=(b11100b21110bn1101)
  • Продовжуємо виконувати аналогічні операції використовуючи формули : aijk=aijkaiiaijk=aijk1akjkaikk1

за умови, що k=1n,i=k+1n,j=1n

  • Повторюємо дії для матриці І, за формулами : bikk=bikkaiibisk=bisk1bkskaikk1

за умови, що k=1n,i=k+1n,s=1n.

Отримаємо:

A=(1a121a1n101a2n2001)I=(b11100b212b2220bn1nbn2nbnnn)

Зворотний хід (алгоритм утворення нулів над головною діагоналлю)

Використаємо формулу: aijk1=aijk1aijkaiki, при умові, що k=n1,i=1k1,j=1n.

Повторюємо дії для матриці І, за формулою bisk1=bisk1biskaiki, за умови, що k=n1,i=1k1,s=1n.

Остаточно отримуємо:

A=(100010001)I=A1

Приклад

Розв'яжемо систему рівнянь:

{a+b+c=04a+2b+c=19a+3b+c=3

Запишемо її у вигляді матриці 3×4, де останній стовпчик є вільним членом:

(111|0421|1931|3)

Виконаємо такі дії:

  • До рядка 2 додамо: -4 * рядок 1.
  • До рядка 3 додамо: -9 * рядок 1.

Отримаємо:

(1 1 1|0023|1068|3)
  • До рядка 3 додамо: -3 * рядок 2.
  • Рядок 2 ділимо на -2
(111| 00132|12001| 0)
  • До рядка 1 додамо: -1 * рядок 3.
  • До рядка 2 додамо: -3/2 * рядок 3.
(110| 0010|12001| 0)
  • До рядка 1 додамо: -1 * рядок 2.
(100| 12010|12001| 0)

У правому стовпчику отримаємо рішення:

a=12; b=12; c=0 .

Джерела

Посилання