Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование Методичка.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5.33 Mб
Скачать

Алгоритми до методу Эйлера

Найбільш простим методом, що потребує мінімальних витрат обчислю­вальних ресурсів, але має порівняно низьку точність, є метод Эйлера. У цьому методі для оцінки точки на кривій Y = f(X) використовується тільки один ліній­ний член формули Тейлора:

Y(Xo + h) = Y(Xo) + h · f (Xo,Yo)

, де f (Xo,Yo) - права частина вхідного диференціального рівняння. Цей процес можна розповсюдити на наступні кроки:

Yi+1 = Yi + h • f (Xi,Yi).

Метод Эйлера, крім значної помилки усікання (вона близька до h), часто буває хитливим (малі початкові помилки призводять до значного збільшення глобаль­них), тому на практиці користуються ітераційною формулою:

h h

Yi+1 = Yi + h • f [Xi + —, Yi + — • f (Xi, Yi)]

2 2

модифікованого метода Эйлера (мал. 22). Зменшення помилки методу при цьо­­му дося­гається за рахунок поліпшення апроксимації похідною. Ідея полягає у спробі оцінити член другого порядку у формулі Тейлора.

Y

h

h

h

X

Xn

0

Xn+1

Yn

(Xn+h,Yn+h·Y'n)

(Xn,Yn)

Мал. 22

Диференціальне рівняння другого порядку Y" = f (X,Y,Y') із початко­ви­ми умовами: Y(Xo) = Xo і Z(Xo) = Zo можна звести до системи двох рівнянь пер­шо­­го порядку:

Z' = f (X, Y, Z)

Y' = g (X, Y, Z) = Z

, причому Y(Xo) = Yo і Z(Xo) = Y'(Xo). Тоді ітераційна формула Эйлера пере­тво­рюється у вираз:

Yi = Yi + h · Zi

Zi = Zi + h · f (Xi, Yi, Zi)

, де f (Xi, Yi, Zi) - права частина вхідного диференціального рівняння.

Блок-схеми алгоритмів до методів Ейлера наведено на мал. 23, 24.

Алгоритми до методу Рунге - Кутта

Ще більш високої точності можна досягти при розрахунку вищих похід­них і зберіганні більшої кількості членів ряду Тейлора. Таким методом є метод Рунге - Кутта. Метод Рунге - Кутта дає набір формул для розрахунку коор­ди­нат внутрішніх точок, яких потребує реалізація ідеї прогнозування повод­жен­ня (ап­роксимації в кінцево-різницевому вигляді) другої і більш високих похід­них. Як правило, використовується метод четвертого порядку точності:

K1 + 2• K2 + 2• K3 + K4

Yi+1 = Yi + ———————————

6

, де:

h K1

K1 = h • f (Xi,Yi); K2 = h • f (Xi + —; Yi + —);

2 2

h K2

K3 = h • f (Xi + —, Yi + —); K4 = h • f (Xi + h, Yi + K3).

2 2

Метод Эйлера і його модифікації, по суті, є методами Рунге - Кутта першого і другого порядків. Метод Рунге - Кутта має достатньо високу точність (по­хибка близька до h4) і дозволяє збільшити крок інтегрування. Кожну з формул Рунге-Кутта можна використовувати для розв'язання диференціальних рівнянь більш високих порядків і, тому, для розв'язання систем диференціальних рів­нянь, ос­кі­льки рівняння порядку n можна звести до n диференціальних рівнянь першо­го по­рядку.

Розгляньмо розв'язання звичайного диференціального рівняння другого по­рядку Y" = f (X,Y,Y'). Нехай Z = Y', тоді:

Z' = f (X, Y, Z)

Y' = g (X, Y, Z) = Z.

Задача Коші у цьому випадку містить дві початкових умови: Y(Xo) = Yo і Z(Xo) = Zo. Формули ж Рунге-Кутта при цьому мають вигляд:

Yi+1 = Yi + K; Zi+1 = Zi + U;

K1 + 2• K2 + 2• K3 + K4 U1 + 2• U2 + 2• U3 + U4

K = ———————————; U = ——————————.

6 6

Тут:

K1 = h • g (Xi, Yi, Zi), U1 = h • f (Xi, Yi, Zi),

h K1 U1 h K1 U1

K2 = h • g (Xi + —; Yi + —; Zi + —), U2 = h • f (Xi + —; Yi + —; Zi + —),

2 2 2 2 2 2

h K2 U2 h K2 U2

K3 = h • g (Xi + —; Yi + —; Zi + —), U3 = h • f (Xi + —; Yi + —; Zi + ­—),

2 2 2 2 2 2

K4 = h • g (Xi + h; Yi + K3; Zi + U3), U4 = h • f (Xi + h; Yi + K3; Zi + U3).

Блок-схеми алгоритмів до методів Рунге - Кутта наведено на мал. 23, 24.