
- •Основи чисельних методів математики (з використанням Excel) Передмова
- •Розділ 1. Методи обчислень: предмет, основні поняття та застосування
- •§ 1. Предмет і застосування
- •§ 2. Основні поняття
- •1. Похибки наближень.
- •2. Граничні похибки. Похибки функції.
- •3. Похибки розв'язку.
- •4. Стійкість і коректність.
- •Питання, тести
- •Розділ 2. Інтерполяція функцій
- •§1. Задача інтерполювання
- •§2. Інтерполяційна формула Лагранжа
- •§3. Поділені різниці. Формула Ньютона з поділеними різницями
- •§4. Інтерполяційна формула за допомогою Excel
- •§5. Інтерполювання за схемою Ейткіна
- •§6. Скінчені різниці. Інтерполяційні формули Ньютона для рівновіддалених вузлів
- •§7. Інтерполювання із скінченими різницями за допомогою Excel
- •§8. Інші методи інтерполювання
- •Питання, тести
- •Завдання
- •Розділ 3. Чисельне диференціювання та інтегрування.
- •§ 1. Однобічні формули чисельного диференціювання
- •§ 2. Оцінки похибки чисельного диференціювання
- •§ 3. Чисельне інтегрування. Квадратурні формули
- •§ 4. Квадратурні формули Ньютона – Котеса
- •§ 5. Узагальнені квадратурні формули.
- •§ 6. Метод подвійного перерахунку.
- •1. R2n ( f ) ≈ (правило Рунге) (14)
- •§ 7. Метод кратного перерахунку за допомогою Excel
- •Питання, тести
- •Завдання
- •Розділ 4. Чисельні методи розв‘язування рівнянь з однією змінною
- •§ 1. Відокремлення коренів
- •§ 2. Метод дихотомії (поділу відрізка пополам)
- •§ 3. Ітераційні методи та оператор стиску.
- •§ 4. Похибки ітераційного процесу
- •§ 5. Реалізація методу простої ітерації за допомогою електронних таблиць
- •§ 6. Метод Ньютона. Порядок збіжності ітераційного процесу.
- •§ 7. Метод лінійного інтерполювання.
- •§ 8. Інші приклади ітераційних методів.
- •Питання, тести
- •Завдання
- •Розділ 5. Методи розв’язування систем лінійних рівнянь
- •§ 1. Метод Гаусса
- •Метод Гаусса в матричній формі
- •Елементарні операції над матрицею:
- •§ 2. Метод Гаусса за допомогою Excel
- •§ 3. Матричні операції в Excel
- •3. Множення матриць.
- •§ 4. Метод простої ітерації для слр
- •§ 5. Метод Зейделя
- •Питання, тести
- •Завдання
- •Розділ 6. Методи лінійного програмування
- •§ 1. Оптимізаційні задачі. Математичне програмування
- •§ 2. Геометричний зміст задач лінійного програмування. Графічний метод
- •§3. Канонічна форма задачі лінійного програмування. Опорні розв’язки
- •§4. Симплекс – таблиця
- •§5. Симплекс – метод.
- •§6. Розв’язування задач лінійного програмування за допомогою excel
- •§7 Приклади
- •§8. Пошук початкового опорного розв’язку. Метод штучного базису
- •Властивості допоміжної задачі.
- •Питання, тести
- •Завдання
- •Розділ 7. Чисельні методи розв’язування звичайних диференціальних рівнянь
- •§ 1. Метод Ейлера
- •§ 2. Метод Ейлера за допомогою Excel
- •§ 3. Методи Рунге – Кутта
- •§ 4. Подвійний перерахунок для методів Рунге – Кутта
- •§ 5. Кратний перерахунок для методів Рунге – Кутта за допомогою Excel
- •§ 6. Методи Рунге – Кутта з вищими порядками похибки
- •Питання, тести
- •Завдання
- •Іменний покажчик
- •Предметний покажчик
- •Література
§ 3. Методи Рунге – Кутта
Природно запитати: якщо в рекурентній формулі удосконаленого методу Ейлера
уk + ½ = уk + f(хk; уk); уk+1 = уk + f(хk + ; уk + ½)h замість записати : уk + ⅓ = уk + f(хk; уk); уk+1 = уk + f(хk + ; уk + ⅓)h, то це теж призведе до значного збільшення швидкості у порівнянні з методом Ейлера? Виявляється, що ні, тобто вибір параметру α = ½, а не α = ⅓ є вирішальним. Загальна відповідь на питання про найкращі параметри заснована на наступних формулах Рунге – Кутта.
У найбільш загальному вигляді задача ставиться так. Нехай відомим є значення yk = у(хk) розв’язку задачі Коші (1) в довільній точці хk, h – крок інтегрування, треба наближено обчислити у(хk+1) – точне значення розв’язку в наступній точці хk+1 = хk + h. В процесі обчислень фіксовані деякі числа (параметри) p1 , … , pq, α2 , …, αq, βij 0 < j < i ≤ q. Тоді
Означення 3. Формули для обчислення наближеного значення уk+1 розв’язку в точці хk+1
уk+1
=
yk
+
,
де
w1(h) = h f(xk,yk), w2(h) = h f(хk + α2h, yk + β21w1(h)),
…………………………………………………………………………………
wq(h) = h f(xk + αqh, yk + βq1w1(h) + βq2w2(h) + … + βqq-1wq-1(h))
називають формулами Рунге – Кутта. Відповідні ітераційні методи за цими рекурентними формулами називають методами Рунге – Кутта.
У цих формулах враховані практично всі можливі удосконалення методу Ейлера і треба так підібрати параметри, щоб збіжність відповідного методу була найшвидша можлива. Спочатку надамо точного змісту словам про найшвидшу збіжність методу. Величина φk+1(h) = уk+1 – у(хk+1) = yk + – у(хk + h) – це похибка наближеного значення уk+1 в точці хk+1. Якщо f(x, y) є достатньо гладкою функцією своїх аргументів, то w1(h), w2(h), … , wq(h) і φk+1(h) – такі ж гладкі функції свого аргументу h.
Означення 4. 1. Величину φk(h) = уk+1 – у(хk+1) = yk + – у(хk + h) називають похибкою методу Рунге – Кутта на кроці.
2. Якщо при даних фіксованих параметрах φk(0) = φk´(0) = … = φk(s)(0) = 0 для всіх достатньо гладких f(x, y), що визначають відповідну задачу Коші (1), а φk(s+1)(0) ≠ 0 для деякої гладкої f(x, y), то натуральне число s називають порядком точності методу.
Іншими словами, s є порядком точності методу, якщо похідні наближення уk+1 = yk + завжди співпадають з похідними точного розв’язку у(хk + h) при h = 0 до порядку s включно, а похідні порядку s + 1 для деяких задач Коші (1) уже не рівні між собою. Згідно з формулою Тейлора
φk(h)
=
hi
+
hs+1
=
hs+1
(0 < θ < 1). (4)
Отже,
hs+1
≤
φk(h)
≤
hs+1,
тобто величина похибки методу на кроці
має порядок s
+ 1: φk(h)
= О(hs+1).
Але з переходом від кроку до кроку ця
похибка систематично зростає і на
відрізку завдовжки одиниця сумарна
похибка методу є O(hs),
оскільки ітерацій з кроком інтегрування
h на такому
відрізку порядку
.
Таким чином, порядок точності методу
завжди на одиницю менший, ніж порядок
його похибки на кроці. Так порядок
точності методу Ейлера дорівнює одиниці,
бо на одному кроці похибка цього методу
має порядок h2,
а порядок точності удосконаленого
методу Ейлера дорівнює двом, оскільки
на одному кроці похибка цього методу
має порядок h3.
Очевидно, що збіжність методу буде найшвидшою, якщо порядок його точності буде найбільшим. Отже, наша мета – так підібрати параметри, щоб порядок точності виявився найбільшим можливим.
При q = 1 маємо лише один параметр p1 (оскільки для βij 0 < j < i ≤ q, звідки при q = 1 0 < j < 1, а такого натурального j не існує). Тому уk+1 = yk + p1w1(h) = yk + p1h f(xk,yk), φk(h) = уk+1 – у(хk+1) = yk + p1h f(xk,yk) – у(хk + h). Звідси φk(0) = 0; φk´(0) = p1 f(xk, yk) – у´(хk + h)׀h=0 = (p1 – 1) f(xk,yk), оскільки у´(хk + h)׀h=0 = у´(хk) = f(xk,yk); φk´´(0) = – у´´(хk). Очевидно, що рівність φk´(0) = 0 для всіх f(xk,yk) буде виконана лише за умови, що p1 = 1. За такої умови уk+1 = yk + h f(xk,yk), що співпадає з (1), тобто це формула методу Ейлера. Отже,
Висновок 1. 1) Метод Ейлера – це метод Рунге – Кутта з q = 1.
2) Метод Рунге – Кутта з q = 1 має перший порядок точності тоді і тільки тоді, коли це метод Ейлера.
3) Похибка методу Ейлера на кроці має вигляд φk(h) = – у´´(хk + θh)h2 (0 < θ < 1).
Пункт 3) випливає безпосередньо з (4), оскільки, очевидно, φk´´(h) = – у´´(хk + h), звідки φk´´(θh) = – у´´(хk + θh).
Розглянемо
тепер випадок q = 2.
Тоді маємо чотири параметри: p1,
p2,
α2,
β21.
Тому уk+1
= yk
+ p1w1(h)
+ p2w2(h)
= yk
+ p1h
f(xk,
yk)
+ p2h
f(
,
),
де
=
xk +
α2h,
= yk +
β21h
f(xk,
yk),
φk(h)
=
уk+1
– у(хk+1)
= yk
+
p1h
f(xk,
yk)
+
p2h
f(
,
)
– у(хk
+ h),
звідки
φk(0)
= 0. Обчислимо похідні функції φk(h).
φk´(h)
= p1
f(xk,
yk)
+
p2
f(
,
)
+ p2h
(
+
)
– у´(хk
+ h)
= p1
f(xk,
yk)
+
p2
f(
,
)
+ p2h
(
α2
+
β21
f(xk,
yk)).
Звідси, оскільки ׀h=0 = xk, ׀h=0 = yk, у´(хk) = f(xk, yk), то φk´(0) = p1 f(xk, yk) + p2 f(xk, yk) – у´(хk) = p1 f(xk, yk) + p2 f(xk, yk) – f(xk, yk) = (p1 + p2 – 1) f(xk, yk).
Отже, рівність φk´(0) = 0 для всіх f(xk,yk) буде виконана лише за умови, що p1 + p2 – 1 = 0.
φk´´(h)
= 2p2
(
α2
+
β21
f(xk,
yk))
+ p2h
(
α2
+
β21
f(xk,
yk))
– у´´(хk
+ h). Звідси,
оскільки
׀h=0
= xk,
׀h=0
= yk,
то
φk´´(0)
= 2p2
(
α2
+
β21
f(xk,
yk))
– у´´(хk).
Але
у´´(хk)
= (у´(хk))´
=
f(x, y(х))x
= xk,
y = yk
=
+
у´(хk)
=
+
f(xk,
yk).
Звідси
φk´´(0) = 2p2 ( α2 + β21 f(xk, yk)) – ( + f(xk, yk)) = (2p2α2 – 1) + f(xk, yk)(2p2β21 – 1) .
Отже, рівність φk´´(0) = 0 для всіх f(xk, yk) буде виконана лише за умов 2p2α2 – 1 = 0, 2p2β21 – 1 = 0. Рівність φk´(0) = 0 для всіх f(xk,yk) виконана за умови, що p1 + p2 – 1 = 0. Рівність φk(0) = 0 виконана автоматично завжди.
Висновок 2. 1) Метод Рунге – Кутта з q = 2 має другий порядок точності (тобто φk(0) = φk´(0) = φk´´(0) = 0) тоді і тільки тоді, коли
p
1
+ p2
= 1
p2α2 = (5).
p2β21 =
2) Якщо p2 = 1, то звідси p1 = 0, α2 = β21 = , уk+1 = уk + h f( , ), де = xk + h, = yk + h f(xk, yk). Це рекурентна формула удосконаленого методу Ейлера (3).
(Тут уk + ½ = ). (5) – це система трьох алгебраїчних рівнянь для визначення чотирьох невідомих. Очевидно, p2 ≠ 0, α2 ≠ 0, β21 ≠ 0, α2 = β21 . Вона має нескінчену множину розв’язків, що залежить від одного параметра, і кожний її розв’язок дає формули Рунге – Кутта другого порядку точності. Наприклад, якщо покласти p2 = , то звідси p1 = , α2 = β21 = 1, уk+1 = уk + h(f(xk, yk) + f( , )), де = xk + h, = yk + h f(xk, yk). Такий варіант методу Рунге – Кутта другого порядку точності називають удосконаленим методом Ейлера – Коші.
Апріорні оцінки похибок чисельних наближень уk до точних значень розв’язків у(хk) в точках заданої послідовності хk , які безпосередньо випливають з (4), як правило, значно завищені. Крім того, іноді оцінити значення дуже важко або й неможливо (тоді, наприклад, коли функцію f(xk, yk) задано графічно чи таблично). Всі ці недоліки апріорних оцінок можна усунути, застосувавши метод подвійного перерахунку, який дозволяє отримувати апостеріорні оцінки похибок чисельних наближень так само, як це було зроблено в попередньому розділі.