
- •Кафедра Iнформатики
- •«Наука вся - лишь море заблуждений, где нету дна, а правды нет и тени»
- •«Складні проблеми завжди мають прості, легкі для розуміння невірні розв'язання» (закон Гросмана) Формалізація алгоритму
- •«Ускладнювати просто. Спрощувати складно» (закон Мейера) Алгоритмічні системи
- •... Sk0 skj1 skj2 ... Qi sjk ... Skjr-1 skjr sk0 ..., k[1;n]
- •Відлагодження алгоритму
- •«Якщо факти не підтверджують теорію, то їх треба позбутися» (Закон Майєрса) Етапи розв’язання задач на комп’ютері
- •Математична модель
- •Інформаційна модель
- •«Перед тим, як увійти, подумай, як вийти» (Китайське прислів'я) Техноогії проектування алгоритмів
- •«Створіть систему, якою зможе скористатися навіть дурень, і тільки дурень захоче нею користуватися»
- •(Принцип Шоу)
- •Блок-схема алгоритму лінійної структури
- •Алгоритм розгалуженої структури
- •Блок-схема алгоритму розгалуженої структури
- •Алгоритми циклічної структури
- •Алгоритм циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Блок-схема алгоритму циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Алгоритм циклічної структури (параметр циклу є елементом масиву)
- •Блок-схема алгоритму циклічної структури (параметр циклу є елементом масиву)
- •Алгоритм складної циклічної структури
- •Блок-схема алгоритму складної циклічної структури
- •Алгоритм обліку суми і добутку
- •Блок-схема алгоритму обліку суми і добутку
- •Алгоритм пошуку мінімуму і максимуму
- •Блок-схема алгоритму пошуку мінімуму і максимуму
- •Алгоритми сортування наданих
- •«Маленька практика краща за велику теорію» (закон Букера)
- •Алгоритми розв’язання інженерних задач
- •Ізоляція кореня
- •Уточнення значення кореня
- •Блок-схема алгоритму методу хорд
- •Початок циклу
- •Кінець циклу
- •Алгоритм розв’язання системи лінійних рівнянь
- •1. Прямий хiд
- •2. Зворотній хiд
- •Блок-схема алгоритму методу Гауса
- •Алгоритми розв’язання диференціального рівняння
- •Алгоритми до методу Эйлера
- •Алгоритми до методу Рунге - Кутта
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь першого порядку
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь другого порядку
- •Алгоритм обліку визначеного інтегралу
- •Алгоритм до методу Ньютона - Котеса
- •Блок-схема алгоритму обліку визначеного інтегралу методом Ньютона - Котеса Функція «Інтеграл»
- •Алгоритми апроксимації і інтерполяції функції
- •Алгоритм до методу інтерполяції поліномами Лагранжа
- •Алгоритм до методу апроксимації та інтерполяції в-сплайнами
- •Блок-схеми алгоритмів інтерполяції і апроксимації функції
- •Алгоритм статистичної обробки результатів експерименту
- •Перспективи розвитку теорії алгоритмів «Як тільки теорія стає зрозумілою всім, її пора змінювати» (закон Джексо на)
Алгоритми до методу Эйлера
Найбільш простим методом, що потребує мінімальних витрат обчислювальних ресурсів, але має порівняно низьку точність, є метод Эйлера. У цьому методі для оцінки точки на кривій 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.