Метод Рунге — Кутти

Матеріал з testwiki
Версія від 15:57, 10 червня 2024, створена imported>Олюсь
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон:Диференціальні рівняння Методи Рунге — Кутти — важлива група чисельних методів розв’язування (систем) звичайних диференціальних рівнянь. Названі на честь німецьких математиків Карла Рунге і Мартіна Кутти, які відкрили ці методи.

Класичний метод Рунге — Кутти 4-го порядку

Метод Рунге — Кутти 4-го порядку настільки широко розповсюджений, що його часто називають просто методом Рунге — Кутти або RK4.

Розглянемо задачу Коші для системи диференціальних рівнянь довільного порядку, що записується у векторній формі як

y=f(x,y),y(x0)=y0.

Тоді значення невідомої функції в точці  xn+1 обчислюється відносно значення в попередній точці  xn за формулою:

yn+1=yn+h6(k1+2k2+2k3+k4),
 xn+1=xn+h

де  h — крок інтегрування, а коефіцієнти kn розраховуються таким чином:

k1=f(xn,yn),
k2=f(xn+h2,yn+h2k1),
k3=f(xn+h2,yn+h2k2),
k4=f(xn+h,yn+hk3).

Це метод 4-го порядку, тобто похибка на кожному кроці становить  O(h5), а сумарна похибка на кінцевому інтервалі інтегрування є величиною  O(h4).

Прямі методи Рунге — Кутти

Група прямих методів Рунге — Кутти є узагальненням методу Рунге — Кутти 4-го порядку. Наближення задається формулами

yn+1=yn+hi=1sbiki,

де

k1=f(xn,yn),
k2=f(xn+c2h,yn+a21hk1),
k3=f(xn+c3h,yn+a31hk1+a32hk2),
ks=f(xn+csh,yn+as1hk1+as2hk2++as,s1hks1).

Конкретний метод визначається числом  s і коефіцієнтами  bi,aij і  ci. Ці коефіцієнти часто впорядковують в таблицю

0
c2 a21
c3 a31 a32
cs as1 as2 as,s1
b1 b2 bs1 bs

Для коефіцієнтів методу Рунге — Кутти мають справджуватись умови j=1i1aij=ci для i=2,s.

Якщо ми хочемо, щоб метод мав порядок  p, то варто так само забезпечити умову y¯(h+x0)y(h+x0)=O(hp+1), де y¯(h+x0) — наближення, отримане за методом Рунге — Кутти. Після багаторазового диференціювання ця умова перетвориться в систему поліноміальних рівнянь, розв'язки якої є коефіцієнтами методу.

Прямі методи розв'язку жорстких диференціальних рівнянь та їх систем неефективні внаслідок різкого збільшення кількості кроків обчислень (при зменшенні кроку інтегрування h) чи зростання похибки при недостатньо малому кроці h.

Нехай похибка має порядок k. Наближене значення y(x), обчислене у точці x із величиною кроку h, позначається Y(x,h). Тоді у точці x=x0+2nh

y(x)Y(x,h)A2nhk+1A(xx0)hk,y(x)Y(x,2h)An(2h)k+1=A(xx0)2khk,

тобто Y(x,2h)Y(x,h)A(xx0)(12k)h та, відповідно,

y(x)Y(x,h)Y(x,h)Y(x,2h)2k1.

Помилка при кроці h виражається через наближені значення при кроках h та 2h.

Багатокрокові методи використовують для обчислення наступного значення yj+1 лише інформацію з напівінтервалу [yj,yj+1). Багатокрокові методи базуються на заміні диференціального рівняння

y(x)f(x,y(x))=0,y(a)=s

за сталого кроку h різницевим рівнянням порядку k

j=0kaj(k)yhj=0kbj(k)f(xk+j,yk+j)=0,ak(k)0,(a0(k))2+(b0(k))20,n=0,1,...,

y0=s,y1,...,yk1 - задані значення.

Кожний спосіб такого типу визначається поліномами

pk(z)=ak(k)zk+ak1(k)zk1+...+z0(k),σk(z)=bk(k)zk+bk1(k)zk1+...b0(k).

Якщо степінь σk менше степені pk, то говорять про явний (або відчинений) метод, якщо степені рівні, то про неявний (зачинений).


Приклад розв'язання в середовищі MATLAB

Розв'язання систем диференціальних рівнянь методом Рунге-Кутти є одним з найбільш поширених числових методів розв'язання в техніці. В середовищі MATLAB/Octave (досить поширена і зручна мова програмування для технічних обчислень) реалізований один з його різновидів — метод Дорманда-Принса.

Див. також

Література

  • William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Numerical Recipes in C. Cambridge, UK: Cambridge University Press, 1988. (Розділи 16.1 і 16.2.).