Розв'язування систем лінійних рівнянь методом Гауса

Курсовой проект - Математика и статистика

Другие курсовые по предмету Математика и статистика

?а і додамо до другого. Отримаємо рядок . Перший рядок помножимо на і додамо до третього. Отримаємо рядок . Перший рядок помножимо на і додамо до четвертого. Отримаємо рядок . У результаті маємо матрицю:

 

Другу рядок залишаємо без змін. На третьому рядку додаємо другий, помножений на 2. Отримаємо рядок . До четвертого рядка додаємо другий. Отримаємо нульовий рядок. Перетворена матриця має вигляд:

 

 

Поміняємо місцями третій і четвертий стовпчики:

 

 

Базисний мінор матриці стоїть у перших трьох стовпцях і перших трьох рядках, . Отже, .

 

2.3 Опис та інструкція по використанню програми Gauss

 

Дана програма реалізована в інтегрованому середовищі програмування Visual Studio 2008 SP1 мовою програмування С#. Вона дозволяє розвязувати систему лінійних алгебраїчних рівнянь методом Гауса, записаних в матричній формі, а також методом з пошуком головного елемента, при чому матриці можуть будь-якою вимірністю mxn (m і n кількість стовпчиків та рядків матриці відповідно). Також ще однією з можливостей програми є обчислення рангу матриці.

Інтерфейс програми має наступний вигляд:

 

Мал. 1 Інтерфейс програми

 

Почати роботу з програмою користувач може двома способами:

  • Вибрати запропоновані варіанти завдань

 

Мал. 2 Варіанти завдань

 

  • Ввести вимірність матриці mxn у відповідних полях програми і натиснути кнопку Застосувати

 

Мал. 3 Поле матриці mxn

 

Зауваження 1. Якщо ми маємо систему з чотирма рівняннями і чотирма невідомими, тобто матрицю А 4х4, то при введені даних в полях розмірності матриці, вважаємо, що B це ще один стовпчик матриці А, яке це зображено на малюнку. 3.

Далі робота з програмою проходить наступним чином:

  • В залежності від того яким методом ми хочемо розвязати рівняння, натискаємо на кнопку Метод Гауса, метод головного елемента, що зображені на малюнку 4.

 

Мал. 4. Функціональні кнопки пошуку розвязку

 

  • Після натиснення на відповідну кнопку у вікну програми ми отримаємо загальний розвязок системи, а також ранг матриці, що розглядаємо (малюнок 5)
  • Далі у користувача буде декілька варіантів продовження роботи:
  • Завершення роботи програми. Файл Вихід, або закривши вікно програми, натиснувши на хрестик.
  • Збереження результатів програми у файл з послідовним описом кожного виконаного кроку (виключення змінної з розгляду та утворення нулів нижче-вище розвязувального елемента; переставлення рядків)
  • Знаходження розвязку СЛАР при введених нових даних.

Мал. 5 Вікно програми після обчислень

 

Зауваження 2. Якщо вибране нами СЛАР розвязку немає, то на екрані зявиться повідомлення, в якому буде сказано, що методом Гауса розвязку ми отримати не зможемо, а також буде вказано, який саме ранг буде мати дана матриця (малюнок 6).

 

Мал. 6 СЛАР розвязків немає.

 

Перевіримо коректність роботи програмі на прикладі 6. (пункт 3.1)

Отримаємо розвязок СЛАР, а також ранг матриці (малюнок 7)

Мал. 7. Обчислення прикладу 6.

 

Збережемо детальний опис всіх кроків і відповідь у файл Excel з назвою Gauss.xls (малюнок 8). Якщо ж ми хочемо зберегти дані в блокноті, то тоді потрібно змінити розширення файлу на *.txt.

 

Мал. 8. Збереження результату.

 

Порівнявши дані результати з розвязками, які ми отримали, при розвязанні СЛАР за допомогою MS Excel, можемо стверджувати, що рівняння розвязано правильно, оскільки відповіді ідентичні.

Опис основних функцій програми

Весь код програми знаходиться в додатках.

Розглянемо основні функції, які були задіяні при написанні програми:

  1. public void Gauss()- функція, яка безпосередньо відповідає за метод Гауса.
  2. public void Gauss2()- функція, яка відповідає за розвязання методом головного елемента.
  3. public int Rang2()-функція знаходження рангу матриці.
  4. private void Flush(int i, int j)- функція, яка дозволяє переставляти рядки матриці.
  5. private int FindToFlush()- функція пошуку рядка, необхідного для переставлення по методу Гауса.
  6. private int FindToFlush2()- функцію пошуку рядка, необхідного для переставлення по методу головного елемента.
  7. private void ForwDirection(int i, int j)- функція, яка описує прямий хід методу Гауса.
  8. private void BackDirection(int i, int j) обернений хід методу Гауса.
  9. private void MakeNull(int i)

private void MakeNullD- утворення нулів нижче розвязувального елемента в прямому ході Гауса і утворення нулів вище розвязувального елемента в обереному ході методу.

 

Список використаних джерел та літератури

 

  1. Тарасов В.Н., Бахарева Н.Ф. Численные методы. Теория, алгоритмы, программы. Оренбург: ИПК ОГУ, 2003.
  2. Курош А.Г., “ Курс высшей алгебры ”, изд. 10, Наука, Москва, 1971 г.
  3. Овчинников П.Ф., Яремчук Ф.П., Михайленко В.М.. Высшая математика К.: Вища шк. Главное изд., 1987 г.
  4. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах.- М.: Наука
  5. Г.Н.Воробьева, А.Н. Данилова. Практикум по вычислительной математике Москва Высшая школа, 1990.
  6. Л.И.Турчак. Основы численных методов Москва Наука, 1987.
  7. Фельдман Л.П., Петренко А.І., Дмитрієва О.А. Чисельні методи в інформатиці Київ Питер, 2006.