Контрольная работа: Дослідження однокрокових методів розвязання звичайних диференційних рівнянь
Название: Дослідження однокрокових методів розвязання звичайних диференційних рівнянь Раздел: Рефераты по информатике Тип: контрольная работа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Міністерство освіти і науки України Вінницький національний технічний університет Інститут АЕКСУ Кафедра АІВТ Контрольна робота з дисципліни: “Моделювання на ЕОМ” Дослідження однокрокових методів розв’язання звичайних диференційних рівнянь Виконав: ст. гр. 1АМ-04_____ Балко О.О. Перевірив: доцент каф.АІВТ_____ Кабачій В.В. 2007 Вступ 1 Короткі теоретичні відомості2 Алгоритми методів 2.1Блок-схеми алгоритмів розв'язку даного диференційного рівняння 3 Вхідні та вихідні дані1 4. Аналіз результатів моделювання 4.1 Розв’язок диференціального рівняння в Mathcad 5. Інструкція користувачу Висновки Література Додаток А. Лістинг програми Вступ На даний момент велика роль в розвитку сучасного світу відводиться підвищенню технічного рівня обчислювальної техніки, пристроїв і засобів автоматизації. Це передбачає розвиток виробництва і широке використання промислових роботів, систем автоматичного управління з використанням мікропроцесорів і мікро-ЕОМ, створення гнучких автоматизованих виробництв. Розв'язок цих задач потребує широкого упровадження в інженерну практику методів обчислювальної математики. Обчислювальна математика заснована на чисельних методах, придатних до застосування при розрахунках на ЕОМ. Сучасні ЕОМ дозволили дослідникам значно підвищити ефективність математичного моделювання складних задач науки і техніки. Нині методи дослідження проникають практично в усі сфери людської діяльності, а математичні моделі стають засобами пізнання. Значення математичних моделей неперервно зростає у зв'язку з тенденціями до оптимізації технічних пристроїв і технологічних схем планування експерименту. Реалізація моделей на ЕОМ здійснюється за допомогою різноманітних методів обчислювальної математики, яка неперервно удосконалюється. В даній роботі розглянуті однокрокові методи розв’язання звичайних диференційних рівнянь(на прикладі диференційного рівняння першого порядку), а саме прямий та зворотній методи Ейлера, та метод Рунге-Кутта. Розробленна програма дозволяє розв’язати вказане диференційне рівняння методами Ейлера (прямим та зворотним) та Рунге-Кутта, порівняти їх результати та визначити похибки 1. Короткі теоретичні відомостіНайбільш простим однокроковим методом, який потребує мінімальних затрат обчислювальних ресурсів, але дає змогу обчислювати результат із порівняно низькою точністю, є метод Ейлера. В цьому методі для оцінки наступної точки на кривій
де Цей процес можна розповсюдити на наступні кроки:
Метод Ейлера є методом першого порядку
де
для всіх Метод Ейлера, крім значної похибки зрізання часто буває нестійким (малі локальні похибки призводять до значного збільшення глобальної). Цей метод можна вдосконалити різними способами. Найбільш відомі два з них: виправлений метод Ейлера і модифікований метод Ейлера (в літературі зустрічаються інші назви цих методів, наприклад, модифікований метод Ейлера й удосконалений метод ламаних). Ітераційні формули для цих методів мають вигляд, відповідно:
І
Де
Це методи другого порядку, їх похибка має третій ступінь, що досягається покращенням апроксимації похідної. Ідея полягає у спробі зберегти або оцінити член другого порядку у формулі Тейлора. Однак збільшення точності вимагає додаткових витрат машинного часу на обчислення Принцип на якому побудований модифікований метод Ейлера, можна пояснити, користуючись рядом Тейлора і зберігаючи в ньому член з
Аналогічно обчисленню другої похідної в кінцево-різницевому вигляді можна обчислити більш високі похідні: значення n-ї за значеннями попередньої (n-1)-ї. Метод Рунге-Кутта дає набір формул для обчислення координат внутрішніх точок, які потрібні для реалізації цієї ідеї. Оскільки існує ряд способів знаходження цих точок, то метод Рунге-Кутта об’єднує цілий клас методів для розв’язання диференціальних рівнянь першого порядку. Найбільш розповсюджений класичний метод четвертого порядку точності:
Де
Метод Ейлера і його модифікації ще називають методами Рунге-Кутта першого і другого порядку. Метод Рунге-Кутта має значно більш високу точність, що дозволяє збільшити крок розв’язання. Його максималу величину визначає допустима похибка. Такий вибір часто здійснюється автоматично і включається як складова частина, вбудована в алгоритм, побудований за методом Рунге-Кутта. Раніше було відзначено, що помилка зрізання при використанні методу Рунге-Кутта n-го порядку
що відповідає точному значенню Отримаємо оціночне співвідношення:
|
|
![](images/25/8532577.png)
|
![](images/25/8532577.png)
![](images/25/8532578.png)
![](images/25/8532579.png)
|
![](images/25/8532580.png)
![](images/25/8532581.png)
![](images/25/8532577.png)
|
![](images/25/8532582.png)
|
![](images/25/8532583.png)
![](images/25/8532580.png)
|
![](images/25/8532584.png)
![](images/25/8532585.png)
![](images/25/8532586.png)
![](images/25/8532580.png)
![](images/25/8532587.png)
![](images/25/8532577.png)
![](images/25/8532588.png)
3 Вхідні та вихідні дані
Вхідними даними програми є: крок обчислення і задане диференціальне рівняння.
Вихідними даними програми є: графіки, таблиця з рішеннями диференціального рівняння і похибки обчислень.
4. Аналіз результатів моделювання
Розроблена програма дозволяє розв'язувати дане диференційне рівняння трьома методами. З результатів обчислень ми можемо перевірити функціональність програми і точність кожного з методів.
Прямий метод Ейлера:
Крок 0.1 | Крок 0.05 | Похибка |
1.000000 | 1.000000 | 0.000000 |
1.220000 | 1.227250 | 0.009667 |
1.469000 | 1.484968 | 0.030958 |
1.749900 | 1.776278 | 0.066128 |
2.065890 | 2.104621 | 0.117769 |
2.420479 | 2.473795 | 0.188856 |
2.817527 | 2.887984 | 0.282799 |
3.261280 | 3.351802 | 0.403495 |
3.756408 | 3.870337 | 0.555401 |
4.308049 | 4.449197 | 0.743598 |
Даний метод не є точним на що вказує глобальна похибка 0.743598.
Зворотній метод Ейлера :
Крок 0.1 | Крок 0.05 | Похибка |
1.000000 | 1.000000 | 0.000000 |
1.244444 | 1.239515 | 0.006572 |
1.523827 | 1.512468 | 0.021717 |
1.842030 | 1.822472 | 0.047795 |
2.203367 | 2.173528 | 0.087580 |
2.612630 | 2.570073 | 0.144322 |
3.075144 | 3.017020 | 0.221821 |
3.596827 | 3.519814 | 0.324504 |
4.184252 | 4.084490 | 0.457521 |
4.844725 | 4.717731 | 0.626846 |
Даний метод є більш точним за прямий метод Ейлера так як його глобальна похибка складає 626846.
Метод Рунге-Кутта
Крок 0.1 | Крок 0.05 | Похибка |
1.000000 | 1.000000 | 0.000000 |
1.229469 | 1.229644 | 0.000026 |
1.489718 | 1.489644 | 0.000103 |
1.783814 | 1.783663 | 0.000259 |
2.115130 | 2.114874 | 0.000524 |
2.487374 | 2.486981 | 0.000930 |
2.904625 | 2.904060 | 0.001513 |
3.371367 | 3.370593 | 0.002312 |
3.892533 | 3.891508 | 0.003370 |
4.473544 | 4.472224 | 0.004732 |
Даний метод є найточнішим серед прямого і зворотного методу Ейлера, його глобальна похибка дорівнює 0.004732.
Звідси можна зробити висновок; найбільш простим однокроковим методом, потребуючим мінімальних затрат розрахункових ресурсів, і який є дуже точним по відношенню до метода Ейлера є метод Рунге-Кутта. Метод Ейлера, крім значної похибки усічки, часто буває нестійким (малі локальні помилки приводять до значного збільшення глобальної).
4.1. Розв’язок диференціального рівняння в Mathcad
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Звіримо результати обчислень. Візьмемо найточніший метод Рунге-Кутта та результат отриманий в Mathcad відповідно: 4.472 та 4.603 похибка 0.131
Тобто можна зробити висновок що результати обчислень програми і обчислення Mathcad майже співпадають.
5. Інструкція користувачу
Для завантаження необхідно переписати з дискети файл kursova.exe і запустити його, для роботи програми потрібен графічний драйвер egavga.bgi
Після завантаження слід натиснути клавішу Enter потрібну кількість разів щоб обрати потрібний метод
Після натиснення клавіші Esc відбудеться вихід з програми.
Висновки
В результаті виконання даної курсової роботи ми наглядно оцінили кожний з методів розв'язку диференційного рівняння і прийшли до висновку, що найточнішим методом з найменшою глобальною похибкою є метод Рунге-Кутта , а прямий метод Ейлера і зворотній метод Ейлера, є не досить точними. Але всі ці методи є простими однокроковими методами, що потребують мінімальні затрати розрахункових ресурсів. Тому можна сказати, що методи Ейлера краще використовувати для попередніх(приблизних) розрахунків, а щоб отримати точний результат можна застосувати більш точний метод Рунге-Кутта.
Література
1. В.Т.Маликов, Р.Н.Кветный . Вычислительные методы и применение ЭВМ . Учебное пособие -- К.: Высш. шк. Главное издательство,1989.-213 с .
2. В.Е.Краскевич, К.Х.Зеленский, В.И.Гречко . Численные методы в инженерных исследованиях. -- К.: Высш. шк. Главное издательство, 1986.--263 с .