Рішення систем лінійних алгебраїчних рівнянь в excel
Методи рішення систем лінійних алгебраїчних рівнянь добре описані в підручнику "Основи обчислювальної математики. Демидович Б.П. Марон І.А. 1966". Завантажити - 11Мб
1. Метод оберненої матриці (рішення в Excel)
Якщо дано рівняння:
A * X = B, де A - квадратна матриця, X, B - вектора;
причому B - відомий вектор (т е стовпець чисел), X - невідомий вектор,
то рішення X можна записати у вигляді:
X = A -1 * B, де A -1 - зворотна від А матриця.
В MS Excel зворотна матриця обчислюється функцією МОБР (), а перемножуються матриці (або матриця на вектор) - функцією МУМНОЖ ().
Є "тонкощі" використання цих матричних дій в Excel. Так, щоб обчислити обернену матрицю від матриці А, потрібно: Щоб помножити матрицю на вектор: Є й інший спососб, при якому використовується кнопка будівника функції Excel.
Приклад СЛАР 4-го порядку
Завантажити документ Excel, в якому цей приклад вирішене різними методами.
2. Метод Гаусса
Метод Гаусса докладно (по кроках) виконується тільки в навчальних цілях, коли потрібно показати, що Ви це вмієте. А щоб вирішити реальну СЛАР, краще застосувати в Excel метод оберненої матриці або скористатися спеціальними програмами, наприклад, цієї
Короткий опис.
- Вирішую систему рівнянь: A * X = B, де A - квадратна матриця n-го порядку, X, B - вектора
- До матриці A праворуч приписую вектор B. Отримую розширену матрицю A
- Надалі A позначає розширену матрицю (n рядків, n + 1 стовпець)
- Aij - позначає елемент матриці, що знаходиться на i-му рядку і j-му стовпці
- Ділю 1-й рядок на A11, т е A'1j = A1j / A11 (j = 1..n + 1). В результаті A'11 = 1. A 'позначає перетворену рядок
- Перетворю інші рядки за формулою: A'ij = Aij - A'1j * Ai1 (i = 2..n; j = 1..n + 1)
- В результаті 1-й стовпець в рядках 2..n заповниться нулями
- Відзначимо, що всі ці перетворення не порушують правильність рівнянь
- Аналогічні дії проводимо для обнулення 2-го стовпця в рядках 3..n, тобто:
- Ділю 2-й рядок на A'22, т е A''2j = A'2j / A'22 (j = 2..n + 1). В результаті A''22 = 1. A '' позначає резельтат 2-го перетворення рядка
- Перетворю інші рядки за формулою: A''ij = A'ij - A''2j * A'i2 (i = 3..n; j = 2..n + 1)
- В результаті 2-й стовпець в рядках 3..n заповниться нулями
- Аналогічні дії проводимо далі
- В результаті ліві n стовпців матриці A превращаютс в верхню трикутну матрицю, т е нижче головної діагоналі знаходяться тільки нулі (а на головній діагоналі - одиниці) - див Рис 1. На цьому малюнку вектор B - зліва, S - номер кроку
- Потім виконується "зворотний хід", починаючи з нижнього рядка, з якої можна обчислити Xn = Bn / Ann, наприклад: Х4 = 9,55741 / 68,6388 = 0,13924 (рис. 1)
- Потім можна обчислити X3 = (0,9065 - 2,40919 * 0,13924) = 0,57059
- Потім з другого рядка: X2 + 2,83562 * X3 + 8,17808 * X4 = 2,47945 обчислюю X2, і т д
3. Метод Якобі (метод простих ітерацій)
Для застосування методу Якобі (і методу Зейделя) необхідно, щоб діагональні компоненти матриці А були більше суми інших компонент тієї ж рядки. Задана система не володіє такою властивістю, тому виконую попередні перетворення.
Далі номер в дужках означає номер рядка. Нову перший рядок отримую складанням старої першого рядка з іншими рядками, помноженим на спеціально підібрані коефіцієнти. Записую це у вигляді формули:
Для застосування методу Якобі систему рівнянь потрібно перетворити до вигляду:
X = B2 + A2 * X преобразився:
Далі ділю кожен рядок на множник лівого стовпця, тобто на 16, 7, 3, 70 відповідно. Тоді матриця А2 має вигляд:
А вектор В2:
завантажити