Ім'я файлу: NTK_VNTU_Заболотна_Ктоян_2022 (2).doc
Розширення: doc
Розмір: 877кб.
Дата: 10.01.2023
скачати


УДК 681.7: 616-71
Н.І. Заболотна

Д.А. Ктоян
АЛГОРИТМІЧНО-ПРОГРАМНИЙ КОМПЛЕКС ДЛЯ РОЗВ’ЯЗАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ ЗА МЕТОДОМ РЕЛАКСАЦІЇ ТА МЕТОДОМ ГАУССА

Вінницький національний технічний університет

Анотація

У статті описується програма для для розв’язання систем лінійних алгебраїчних рівнянь за методом релаксації та методом Гаусса». Лістинг програми був розроблений на мові програмування С++ в середовищі програмування Visual Studio 2012. Також, показані теоретичні та математичні матеріали, алгоритми програми, блок-схеми, машинний код і перевірка роботи програми в MathCAD.

Ключові слова: метод Гауса, метод релаксації, Visual Studio, лістинг, С++, MathCAD, СЛАР.

Abstract

The article describes a program for solving systems of linear algebraic equations using the relaxation method and the Gaussian method." The program listing was developed in the C++ programming language in the Visual Studio 2012 programming environment. Also, theoretical and mathematical materials, program algorithms, block diagrams, machine code and verification of the program's operation in MathCAD are shown.

Keywords: Gauss method, relaxation method, Visual Studio, listing, C++, MathCAD, SLAR.
Вступ

Чисельне рішення СЛАР - найбільш часто зустрічаються у науково-технічних дослідженнях. Така ж задача виникає в математичній фізиці (чисельне рішення диференціальних та інтегральних рівнянь), економіці, статистиці. При цьому прикладні задачі часто потребують вирішення великих і надвеликих СЛАР з числом невідомих більше 1000[1]. До таких СЛАР, наприклад, призводить чисельне рішення двовимірних і особливо тривимірних задач математичної фізики, в яких умови фізичної і геометричної апроксимації двовимірної і тривимірної області диктують використання досить дрібної розрахункової сітки з великим числом розрахункових вузлів по лінійним розмірам.

Існуючі бібліотеки програм на мовах високого рівня, розроблені на основі, так званих, прямих методів розв'язку СЛАР, типу методу Гаусса та його модифікацій. Число арифметичних операцій множення для чисельного розв'язку СЛАР розмірністю за допомогою прямого методу[2].

У роботі розглянуто «Алгоритмічно-програмний комплекс для розв’язання систем лінійних алгебраїчних рівнянь за методом релаксації та методом Гаусса».

Метою роботи є розробка алгоритмічно програмного комплексу вирішення СЛАР за методами релаксації та Гауса.
Результати дослідження

Обчислювальна схема методу Гаусса складається з двох етапів. Перший етап полягає в приведенні системи до трапецієподібної. Цей етап називається прямим ходом. Другий етап-визначення невідомих-називається зворотним ходом.

Прямий хід методу Гаусса полягає в послідовному виключенні коефіцієнтів при невідомих починаючи з першого стовпця[3].

Прямий хід реалізується за такими формулами (індекс k в круглих дужках означає номер циклу - номер стовпця).

Множення k-го рядка на число:
(1.1)

Віднімання k-го рядка з j-го рядка:
(1.2)
(1.3)
Зворотний хід-обчислення невідомих-реалізується за такими формулами, починаючи з останнього рівняння системи[4]:
  (1.4)





Рисунок 1.1 – Блок-схема алгоритму за методом Гаусса
За допомогою двох вкладених циклів з керуючими змінними i=1,n та j=1,k організуємо введення коефіцієнтів ai,j та вільних членів bi вихідної системи. Для того, щоб надалі можна було виконати перевірку результату, в алгоритмі передбачено збереження значень ai,j і bi вихідної системи за допомогою перепривласнень: cij=aij і di=bi.

Організуємо цикл по k, всередині якого проводиться обчислення по всіх кроках прямого ходу. Останній п-й крок прямого ходу виводимо із циклу.

На кожному кроці прямого ходу виконуємо пошук провідного ненульового елемента.

Пошук ненульового ведучого елемента ведеться так:

а) На кожному k-му кроці прямого ходу провідний елемент кожного рядка порівнюється з нулем;

б) Якщо в k-му рядку є нульовий провідний елемент, то в k-му стовпці в циклі здійснюється пошук ненульового елемента.

в) Якщо в якомусь рядку kn такий ненульовий елемент знайдено, то рядки kn і k поелементно, у циклі k1=(k+1),n, міняємо місцями. Для перестановки елементів використовується робоча змінна R.

г) Якщо ненульовий провідний елемент не знайдено, коду помилки kо присвоюємо значення 1 і розрахунок припиняється.

Крок прямого ходу: на кожному кроці прямого ходу проводимо виключення невідомих шляхом перетворення коефіцієнтів та вільних членів системи за отриманими раніше рекурентними формулами.

У блоці 9 виведемо з циклу до останній крок прямого ходу, т.к. на цьому кроці не потрібні перетворення коефіцієнтів та вільних членів, а реалізується лише одне обчислення:  .

Один із можливих варіантів блок-схеми, яка реалізує метод релаксації для вирішення СЛАР, наведено на рисунку 2.1.


Рисунок 1.2 - Блок-схема алгоритму вирішення СЛАР за методом релаксації
В блок-схемі здійснюється введення вхідної матриці коефіцієнтів αij та вектора вільних членів βі. Вводиться точність ξ.

Маємо спочатку обнулити вектор розв’язкуX[n].

Далі переходимо до циклічного обчислення нових коефіцієнтіів βij та cij після їх поділу на діагональні елементи.

Потім формуємо початкове значення нев’язки Ri, спочатку переписуючи туди значення зведеного значення вектора вільних членів.

Потім вводимо змінну М, якій спочатку присвоюємо значення рівне нулю. Потім в цю змінну записуємо поточне значення модуля нев’язки. При цьому постійно контролюємо , чи не перевищує поточне значення змінної М точність обчислень ξ.

Протестуємо програми.



Рисунок 1.3 – Корені пораховані створеною програмою



Рисунок 1.4 – Корені пораховані в MathCad

Висновки

Ця праця є тезою для курсової роботи з числових методів на тему «алгоритмічно-програмний комплекс для розв’язання систем лінійних алгебраїчних рівнянь за методом релаксації та методом гаусса». В ній описано сам лістинг програми, що ми написали на мові С++ та математично показаний алгоритм цього ж методу.
Список використаної літератури

  1. Лященко М.Я. Чисельні методи: Підручник. / Я.М. Лященко, М.С. Головань – К. : Либідь, 1996. – 288 с. ISBN 5-325-00652-5.

  2. Турчак Л.И. Основы численных методов: Учеб. пособие. / Л.И. Турчак. – М. : Наука. Гл. ред. физ.-мат. лит., 1987. – 320 с.

  3. Бахвалов Н.С. Численные методы в задачах и упражнениях. Учеб. пособие. / Н.С. Бахвалов, А.В. Лапин, Е.В. Чижонков ; под ред. В.А. Садовничего. – М. : Высш. шк., 2000. – 190 с. ISBN 5-06-003684-7.

  4. Мотигін В.В. Чисельні методи в інженерних дослідженнях. Частина І. Теретичні відомості. / В.В. Мотигін, В.І. Роптанов, Ф.Ф. Дудатьєв. – Вінниця: ВНТУ, 2004. – 106 с.

Заболотна Наталія Іванівна – професор кафедри біомедичної інженерії та оптико-електронних систем, Вінницький національний технічний університет, Вінниця, E-mail: natalia.zabolotna@gmail.com
Ктоян Дмитро Аршалуйсович — студент групи КОІС-20б факультету інформаційних електронних систем, Вінницький національний технічний університет, Вінниця
Zabolotna Natalia I. - Professor of the Department of Biomedical Engineering and Optoelectronic Systems,

Vinnуtsia National Technical University, Vinnуtsia, E-mail: natalia.zabolotna@gmail.com
Ktoyan Dmytro A. student ofFaculty of Information Electronic Systems, Vinnуtsia National Technical University, Vinnуtsia
скачати

© Усі права захищені
написати до нас