1   2   3   4
Ім'я файлу: перший варіант курсача зейделя.docx
Розширення: docx
Розмір: 1134кб.
Дата: 28.08.2021
скачати
Пов'язані файли:
bestreferat-213688.docx





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

Кафедра лазерної та оптикоелектронної техніки


КУРСОВА РОБОТА
з дисципліни «Чисельні методи та системи прикладних програм»

на тему: Алгоритмічно-програмний комплекс для обчислення оберненої матриці за методом гауса

Студентки __2___ курсу ЛТО-16б групи

ОКР підготовки бакалавра

спеціальності 152 – Метрологія та інформаційно-вимірювальна техніка спеціалізації Лазерна техніка та оптоінформатика _____________________

_________ Трішкіної Я.В

(прізвище та ініціали)

Керівник __доцент, к.т.н._

Заболотна Н. І. ___

(посада, вчене звання, науковий ступінь, прізвище та ініціали)
Національна шкала ____________________

Кількість балів _____ Оцінка ECTS ______


Члени комісії __________ ____________________

(підпис) (прізвище та ініціали)

__________ ____________________

(підпис) (прізвище та ініціали)

__________ ____________________

(підпис) (прізвище та ініціали)


м. Вінниця – 2017 рік
Міністерство освіти і науки України

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

Факультет комп’ютерних систем і автоматики

ЗАТВЕРДЖЕНО

В.о. зав. каф. ЛОТ, доц.,

к. т. н.

_________Н. І. Заболотна

«___» _____________2017 р.

ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

на курсову роботу з дисципліни «Числові методи та системи прикладних програм » студентці групи ЛТО- 16 б

Трішкіній Я.В

Розробити алгоритмічно-програмний комплекс для обчислення оберненої матриці за методом Гауса.

Вихідні дані.

  1. Функція для реалізації: обчислення оберненої матриці за методом Гауса.

  2. Розмірність елементів матриці і вектора:(N× N) елементів, (N×1) елементів, де N=8

  3. Форма подання елементів матриць: плаваюча кома, M – мантиса, P – порядок; M=16, P=8.

  4. Вимоги до програмного забезпечення:мова С (С++) , ППП MathCAD.

  5. Вимоги до часових характеристик ПЗ : час роботи ПЗ 5с.




ЗМІСТ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ

обсяг



Математичні основи обчислення оберненої матриці за методом Гауса






Розробка варіантів алгоритмів обчислення оберненої матриці за методом Гауса






Розробка програмної реалізації алгоритмів обчислення оберненої матриці за методом Гауса на мові програмування С (С++) та засобами системи MathCAD

























ГРАФІЧНА ЧАСТИНА

формат



Блок-схема алгоритму 1

(формат А4)



Блок-схема алгоритму 2

(формат А4)









Дата видачі « 15» вересня 2017 р.

Керівник доцент, к.т.н. Заболотна Н.І.
Завдання отримала студентка гр. ЛТО-16б Трішкіна Я.В
АНОТАЦІЯ
У даній курсовій роботі було розроблено та опрацювано програму, для обчислення оберненої матриці за методом Гауса.

Дана програма була розроблена на мові програмування С++, після детального дослідження та обгрунтування вибраної платформи для розробки. Також показано алгоритм програми, машинний код і перевірка роботи даної програми в MathCAD.

ABSTRACT
In this course work, a program was developed and worked out to calculate the inverse matrix using the Gaussian method.

  This program was developed in the programming language C ++, after a detailed study and justification of the chosen platform for development. Also shown is the program algorithm, machine code and verification of the work of this program in MathCAD.


АННОТАЦИЯ
В данной курсовой работе была разработана и проработок программу для вычисления обратной матрицы методом Гаусса.

  Данная программа была разработана на языке программирования С ++, после детального исследования и обоснования выбранной платформы для разработки. Также показан алгоритм программы, машинный код и проверка работы данной программы в MathCAD.

ЗМІСТ
ВСТУП……………………….………………………………………………..………7

1 АНАЛІТИЧНИЙ ОГЛЯД ОБЕРНЕНОЇ МАТРИЦІ ЗА

МЕТОДОМ ГАУСА……………………………………………………………..........10

1.1 Загальні поняття про матриці………………………………………………...….10

1.2 Обгрунтування вибору мови програмування……………………...……………13

2 МАТЕМАТИЧНІ ОСНОВИ ОБЕРНЕНОЇ МАТРИЦІ ЗА

МЕТОДОМ ГАУСА………………….…………………………………………15

3 РОЗРОБКА ТА ОПИС ВАРІАНТІВ БЛОК-СХЕМ АЛГОРИТМІВ ОБЕРНЕНОЇ МАТРИЦІ ЗА МЕТОДОМ ГАУСА.............................................................................19

4 РОЗРОБКА ТА ОПИС ВАРІАНТІВ ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ОПТИМАЛЬНОГО АЛГОРИТМУ …………………………........................…….…25

4.1 Опис програмної реалізації……..…………………………………………..…….25

4.2 Перевірка програми……..………………………………………………………...29

5 ІНСТРУКЦІЯ КОРИСТУВАЧА……………………………...…………………….30

5.1 Запуск програми…………………………………….…………………………..…30

5.2 Тестовий приклад………………………………….....…………………………....34

ВИСНОВКИ…………………………………………................……………..……….35

ПЕРЕЛІК ЛІТЕРАТУРНИХ ДЖЕРЕЛ…………………...............………………….36

ДОДАТОК А. ТЕХНІЧНЕ ЗАВДАННЯ.…………...........................................…….37

ДОДАТОК Б. БЛОК-СХЕМА РОЗВ’ЯЗАННЯ ОБЕРНЕНОЇ МАТРИЦІ

ЗА МЕТОДОМ ГАУСА…......................................................................................….40

ДОДАТОК В. ЛІСТИНГ ПРОГРАМИ ………………………………..............……43


ВСТУП
Прості математичні задачі малої вимірності, що вивчаються в курсі вищої математики, допускають можливість отримання аналітичних рішень. Складні математичні моделі великої розмірності вимагають застосування чисельних методів.

Чисельні методи — це математичний інструментарій, за допомогою якого математична задача формулюється у вигляді, зручному для розв’язання на комп’ютері.

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

Чисельні методи є надзвичайно потужним інструментарієм для розв’язання проблемних задач, що описуються довільними нелінійними диференціально-алгебраїчними рівняннями великої розмірності, для яких в даний час не існує аналітичних рішень. Освоївши такі методи, майбутній фахівець набуває здібностей до системного аналізу через математичне моделювання найскладніших задач сучасної науки і техніки.

Вивчення чисельних методів стимулює освоєння самих комп’ютерів, оскільки найкращим способом навчитися програмувати є написання комп’ютерних програм власноруч. Правильно застосувавши чисельні методи, майбутній фахівець зможе пересвідчитися у тому, що комп’ютери успішно розв’язують його професійні задачі. При цьому він сам відчує вплив похибок обчислень на результат і навчиться контролювати ці похибки.

Розв’язування систем лінійних алгебраїчних рівнянь (СЛАР) є базовою процедурою в пакетах математичного моделювання складних об’єктів і систем, що являють собою основний засіб спеціалістів з інформаційних технологій.

Вибір ефективного способу розв’зування СЛАР має важливу роль. Щоб обрати оптимальний метод необхідно враховувати специфіку постановок задач, знати недоліки та переваги методів і знати межі їх застосування.

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

Метою роботи є дослідження можливості використання метода Зейделя для обчислення систем лінійних алгебраїчних рівнянь.

Задачі дослідження:

  • проаналізувати існуючі методи обчислення систем лінійних алгебраїчних рівнянь та обґрунтувати переваги метода Зейделя відносно існуючих;

  • розробити алгоритми обчислення систем лінійних алгебраїчних рівнянь за методом Зейделя та здійснити вибір найоптимальнішого з них;

  • розробити програму обчислення систем лінійних алгебраїчних рівнянь за методом Зейделя та провести її тестування.


Об'єктом дослідження є метод Зейделя.


Курсова робота складається з трьох основних розділів. В першому розділі наведено аналіз теоретичної бази методів обчислення систем лінійних алгебраїчних рівнянь та приклад застосування за методом Зейделя. У другому розділі розроблено оптимальний алгоритм за критерієм комплексної ефективності, що враховує затрати часу та пам'яті для його виконання за цим методом. Третій розділ містить інструкцію користувача, лістинг програми, опис програми та результати тестування.

Структура курсової роботи складається з двох розділів. У першому розділі розглянуто загальні поняття матриць і можливі дії над ними. У другому розділі розкрито поняття оберненої матриці, знаходження оберненої матриці до даної за допомогою формули. Дану курсову роботу завершено написанням програми на мові С++ для обчислення оберненої матриці для заданої теми.

Курсова робота містить 45 сторінок тексту, 9 рисунків, 1 таблицю, 10 бібліографічних посилань.

1 АНАЛІЗ ТЕОРЕТИЧНОЇ БАЗИ МЕТОДІВ ОБЧИСЛЕННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯТЬ


1.1 Загальні методи вирішення СЛАР
Розв’язування систем лінійних алгебраїчних рівнянь(СЛАР) є базовою процедурою в пакетах математичного моделювання складних об’єктів і систем, що являють собою основний засіб спеціалістів з інформаційних технологій.

Вибір ефективного способу розв’зування СЛАР має важливу роль. Щоб обрати оптимальний метод необхідно враховувати специфіку постановок задач, знати недоліки та переваги методів і знати межі їх застосування.

Системи рівнянь з'являються майже в кожній області прикладної математики. У деяких випадках ці системи рівнянь безпосередньо складають ту задачу, яку необхідно вирішувати, в інших випадках завдання зводиться до такої системи.

Нехай дана система n лінійних алгебраїчних рівнянь з n невідомими:
(1.1)
Вона може бути представлена в короткій формі:





Коефіцієнти є відомими величинами.

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

Вирішити систему рівнянь (1.1), значить відшукати числа підстановці в (1.1) звертають всі рівняння в тотожності.

Набір цих чисел називають корінням системи (1.1).

Коефіцієнти при невідомих утворюють квадратну матрицю A розміром

Вільні члени і коріння представляються стовпцями або n-мірними векторами:

Тоді систему (1.1) можна записати в матричному виді:

Графічно рішенням системи лінійних алгебраїчних рівнянь будуть координати точки перетину прямих (у випадку системи, що складається з двох рівнянь з двома невідомими), площин (три рівняння з трьома невідомими) або гіперплощин (у випадку чотирьох або більше рівнянь і змінних).

Щоб система мала єдине рішення, що входять до неї рівняння повинні бути лінійно-незалежними, тобто визначник цієї системи не повинен дорівнювати нулю.

Застосовувані в даний час методи вирішення систем лінійних алгебраїчних рівнянь можна розбити на дві групи: прямі та ітераційні:

- прямими методами називають такі методи, які дозволяють отримати рішення системи за кінцеву кількість кроків. Якщо обчислення ведуться точно (без округлень), прямі методи призводять до точних значенням невідомих. Але, тому що на практиці все обчислення найчастіше ведуться з округленнями, то і значення невідомих, отримані такими методами, неминуче будуть містити похибки. До даної групи методів відносяться: метод Гаусса, метод квадратних коренів, метод Крамера і ін.

- ітераційними методами називають такі методи, в яких точне рішення можна отримати тільки в результаті нескінченного процесу. У зв'язку з тим, що реалізувати нескінченний процес на практиці неможливо, ітераційні методи дозволяють отримати рішення системи лише із заданою точністю. До ітераційних методів належать: метод простих ітерацій, метод Зейделя та ін.
1.3 порівняння прямих та ітераційних методів
Системи лінійних алгебраїчних рівнянь можна розв'язувати як за допомогою прямих, так і ітераційних методів. Для систем рівнянь середньої розмірності частіше використовують прямі методи.

Ітераційні методи застосовують головним чином для вирішення задач великої розмірності. Великі системи рівнянь, що виникають в основному в додатках, як правило є розрідженими. Методи виключення для систем з розрідженими і матрицями незручні, наприклад, тим, що при їх використанні велике число нульових елементів перетворюється в ненульові і матриця втрачає властивість розрідженості. На противагу їм при використанні ітераційних методів в ході ітераційного процесу матриця не змінюється, і вона, природно, залишається розрідженою. Велика ефективність ітераційних методів порівняно з прямими методами тісно пов'язана з можливістю істотного використання розрідженості матриць.

Застосування ітераційних методів для якісного вирішення великої системи рівнянь вимагає серйозного використання її структури, спеціальних знань і певного досвіду [9].

Ітераційні методи являють собою методи послідовних наближень. Процес ітерацій повинен бути побудований таким чином, щоб з ростом числа кроків, одержувані наближені значення коренів сходилися до точного рішення.

Вихідні дані, тобто коефіцієнти при невідомих і вільні члени, в практичних завданнях часто мають непереборною похибкою. У зв'язку з цим важливою перевагою ітераційних методів є те, що можна заздалегідь задати точність шуканого рішення. Головний же їх недолік - для кожного рекурентного процесу необхідне дослідження умов його збіжності.

Знову розглянемо систему лінійних рівнянь (1.1). Припустимо, що всі

діагональні елементи матриці A не дорівнюють нулю:

Вирішимо перше рівняння щодо x1, друге відносно x2 і т.д. В результаті отримаємо систему лінійних рівнянь, еквівалентну (1.1):

Перепишемо цю систему в матричній формі:

Вирішимо систему (2.15) методом простої ітерації (методом Якобі). Для цього приймемо вектор d за початкове наближення вектора (0)x шуканих коренів.

Тоді, підставивши в праву частину рівнянь (2.15) вектор (0)x, отримаємо в лівій частині вектор стовпець першого наближення коренів:


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


Перепишемо формули послідовних наближень в розгорнутому вигляді:


Необхідна умова збіжності ітераційного процесу: потрібно вихідну систему виду (2.1) за допомогою рівносильних перетворень привести до системи, у якій абсолютні величини коефіцієнтів, що стоять на головній діагоналі, більше суми абсолютних величин кожного з інших коефіцієнтів при невідомих у відповідних рівняннях:



Якщо тепер розділити всі рівняння на відповідні діагональні коефіцієнти

і виразити з кожного рівняння невідоме з коефіцієнтом, рівним одиниці, буде

отримана система виду (2.13), у якій все

Достатня умова збіжності ітераційного процесу до єдиного рішення:


квадратний корінь з суми квадратів всіх коефіцієнтів при невідомих в правій частині системи (2.13) повинен бути менше 1.

Умова закінчення ітераційного процесу в цьому випадку має вигляд:



Розглянемо метод простої ітерації розв’язання системи лінійних алгебраїчних рівнянь.

Нехай дана лінійна система
(1)
Ввівши в розгляд матриці


систему (1) коротко можна записати у виді матричної рівності
(1 )
Припустимо, що діагональні коефіцієнти

розв’яжемо перше рівняння системи (1) відносно , друге – відносно і так далі. Тоді отримаємо еквівалентну систему [2].
(2)
де

при і при

Ввівши матриці
і ,
систему (2) можемо записати в матричній формі
. (2 )
Систему (2) будемо розв’язувати методом послідовних наближень. За нульове наближення приймаємо, наприклад, стовпчик вільних членів .

Далі, послідовно будуємо матриці-стовпці
(перше наближення), ,
(друге наближення) ,

і так далі.

Взагалі кажучи, будь-яке -ше наближення обчислюють за формулою
. (3)
Якщо послідовність наближень має межі ,

то ця межа являється розв’язком системи (2). Насправді, переходячи до межі в рівності (3), будемо мати:
,

чи

,
тобто граничний вектор являється розв’язком системи (2 ), отже, і системи (1).

Напишемо формули наближення в розгорнутому вигляді:
(3 )
Зауважимо, що інколи вигідніше приводити систему (1) до виду (2) так, щоб коефіцієнти не були рівні нулю. Наприклад, рівняння
1,02 – 0,15 = 2,7,
для використання методу послідовних наближень можна записати у вигляді
2,7 – 0,02 + 0,15 .
Взагалі, маючи систему
,
можна покласти:
,
де .

Тоді дана система еквівалентна приведеній системі
,

де

при .
Тому при подальших міркуваннях ми не будемо, зовсім припускати, що .

Метод послідовних наближень, що визначаються формулою (3) чи (3 ), має назву метод ітерації. Процес ітерації (3) добре сходиться, тобто число наближень, необхідних для отримання коренів системи (1) з заданою точністю, невелике, якщо елементи матриці малі за абсолютною величиною. Іншими словами, для успішного застосування процесу ітерації модулі діагональних коефіцієнтів системи (1) повинні бути більші у порівнянні з модулями недіагональних коефіцієнтів цієї системи (вільні члени при цьому ролі не грають)[2,3].

  1   2   3   4

скачати

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