Методи на Рунге-Кута

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

В математическия анализ, методите на Рунге-Кута са важна част от имплицитните и експлицитните итеративни методи за получаване на приближено решение на обикновени диференциални уравнения. Тези похвати са били въведени около 1900 г. oт немските математици К. Рунге и М. Кута.

Метод на Рунге-Кута от 4-ти ред[редактиране | редактиране на кода]

Методът на Рунге-Кута от 4-ти ред е най-често използваният, също известен като "РК", "Класически метод на Рунге-Кута" или просто "Метод на Рунге-Кута".

Дадена е следната начална задача (още се нарича "задача на Коши"):

Казано с думи, това означава, че стойностите, които получава y са функции на y и на t(time). В началото времето е , a y е . В уравнението y може да е скаларна или векторна променлива.

Методът на РК от 4-ти ред за тази задача е получен от следните формули:

където приближението с РК4 на , и

[1]
(Забележка: горните уравнения имат различни, но равнозначни дефиниции в различните текстове).[2]

Така новата стойност () се пресмята с помощта на текущата стойност() плюс стойност на четирите нараствания с определени тегла, където всяко нарастване е произведение от големината на интервала h и оценения наклон, зададен от функцията f от дясната страна на диференциалното уравнение.

  • е нарастване, основаващо се на наклона от началото на интервала, използвайки , Метод на (Ойлер) ;
  • е нарастване, основаващо се на наклона от междинна точка от интервала, използвайки  ;
  • е отново нарастване, основаващо се на налкона от междинна точка, но използвайки  ;
  • е нарастване, основаващо се на наклона в края на интервала, използвайки .

При усредняване на четирите нараствания се дава по-голямо тегло на нарастванията в междинните точки. Теглата са избрани така, че ако не зависи от и диференциалното уравнение има пръв интеграл, тогава РК4 e "правило на Симпсън".[3]

РК4 е метод от 4-ти ред, което означава, че грешката на всяка стъпка е от порядъка на , докато крайната натрупана грешка има ред .

Експлицитни методи на Рунге-Кута[редактиране | редактиране на кода]

Семейството на експлицитните методи на Рунге-Кута са обобщение на РК4 метода, споменат преди малко. Те са представени чрез:

където

[4]
(Забележка: горните уравнения имат различни, но равнозначни дефиниции в различните текстове).[2]

За да се специфицира определен метод, е нужно да се зададе цяло число s (брой етапи) и коефициентите aij (за 1 ≤ j < is), bi (за i = 1, 2, ..., s) и ci (за i = 2, 3, ..., s). Матрицата [aij] се нарича матрица на Рунге-Кута, където bi и ci са познати като тегла и възли. [5] Таблицата на Бутчер е следната:

0

Методът на Рунге-Кута е коректен, ако

Има и други съпътстващи изисквания, ако искаме метода да има определен ред p, което ознавача, че локалното грешката от закръгляване е O(hp+1). Това може да бъде извлечено от дефиницията за грешка от закръгляване. Например, 2-етапен метод е от 2-ри ред ако b1 + b2 = 1, b2c2 = 1/2, и a21 = c2.[6]

Примери[редактиране | редактиране на кода]

РК4 методът има следната структура. Неговата таблицата е както следва:[7]

0
1/2 1/2
1/2 0 1/2
1 0 0 1
1/6 1/3 1/3 1/6

Най-простият метод на Рунге-Кута е методът на Ойлер, представен с формулата . Това е единственият коректно поставен експлицитен метод на Рунге-Кута от един етап. Таблицата, която отговаря на тази формула е:

0
1

Методи от 2-ри ред с два етапа[редактиране | редактиране на кода]

Методът на междинната точка представлява пример за метод от 2-ри ред с два етапа:

Таблицата е:

0
1/2 1/2
0 1

TМетодът на междинната точка не е единствен метод на РК от 2-ри ред с два етапа. Всъщност, има семейство от такива методи, параметризирани с α и представени с формула

[8]

Таблицата на Бутчер е:

0

В това семейство при частният случай получаваме метода на междинната точка, а при метод на Хойн.[3]

Използване[редактиране | редактиране на кода]

Като пример, да разгледаме метода на РК от 2-ри ред с 2 етапа с α=2/3. Той се представя с таблицата:

0
2/3 2/3
1/4 3/4

със съответните уравнения:

Методът се използва за да реши началната задача:

със стъпка h=0.025, следователно методът трябва да направи 4 стъпки.

Изпълнението на метода е както следва:

Числените решения отговарят на подчертаните стойности.

Адаптивни методи на Рунге-Кута[редактиране | редактиране на кода]

Адаптивните методи са съставени, така че да оценяват локалната грешката от закръгляване на всяка РК-стъпка. Това става използвайки два метода в таблици, единия от ред , а другия от ред .

Стъпката от по-нисък ред се получава от:

където са същите като за метод от по-висок ред. Тогава грешката е :

което е. Таблицата на Бутчер за тови вид метод е разширена за да се въведат стойностите на :

0

Методът на Рунге-Кута-Фелберг използва два метода от 5-и и 4-ти ред. Неговата разширена таблица е:

0
1/4 1/4
3/8 3/32 9/32
12/13 1932/2197 −7200/2197 7296/2197
1 439/216 −8 3680/513 -845/4104
1/2 −8/27 2 −3544/2565 1859/4104 −11/40
16/135 0 6656/12825 28561/56430 −9/50 2/55
25/216 0 1408/2565 2197/4104 −1/5 0

Най-простият адаптивен метод на РК включва комбинирането на метод на Хойн, който е от 2-ри ред, с метод на Ойлер, който е от 1-ви ред. Неговата разширена таблица е:

0
1 1
1/2 1/2
1 0

Оценката на грешката се използва за контролиране на големината на стъпката.

Имплицитни методи на Рунге-Кута[редактиране | редактиране на кода]

Всички споменати досега методи на Рунге-Кута са експлицитни. За съжаление, експлицитните методи на Рунге-Кута са неподходящи за решаване на така наречените „stiff equations” (твърди уравнения), защото обхвата на абсолютната им устойчивост е малък, по-точно ограничен. [9]Този проблем е особено важен при решаването на частни диференциални уравнения. Неустойчивостта на експлицитните методи подбужда създаването на имплицитните методи. Имплицитен метод на РК има формата:

където

[10]

Разликата с експлицитния метод е, че при експлицитния метод сумата на j стига само до i - 1. Това се вижда и в таблицата. За имплицитен метод, матрицата на коефициенти не е непременно долно-триъгълна:[7]

Последиците от тази разлика са, че на всяка стъпка се решава система от алгебрични уравнения. Това значително повишава изчислителния разход . Ако метод със s етапа се използва за решаване на диференциално уравнение с m компонента, системата от алгебрични уравнения ще има ms компонента. За сравнение, при имплицитен s-стъпков линеен метод се решава система от алгебрични уравнения със само s компонента.[11]

Примери[редактиране | редактиране на кода]

Най-простият имплицитен метод на РК е представен с метод на Ойлер назад:

Таблицата е просто:

Тази таблица отговаря на формулите:

които могат да бъдат пренаредени за да се получи формула за метод на Ойлер назад, описан по-горе.

Друг пример за имплицитен метод на Рунге-Кута е правилото на трапеца. Съответната таблица е:

Методите на Гаус-Льожандър формират семейство методи, базирани на квадратурата на Гаус. Метод на Гаус- Льожандър със s етапа e от ред 2s. [12] Метод с два етапа (и 4-ти ред) има следната таблица:

[11]

Устойчивост[редактиране | редактиране на кода]

Предимството на имплицитните методи на Рунге-Кута пред експлицитните е по-голямата им устойчивост, особено когато се прилагат върху твърди уравнения. Разглеждаме линейното тестово уравнение y' = λy. Методът на РК, приложен за това уравнение, свежда решаването му до изпълняване на итерациите , където r е дадено чрез

[13]

където е е единичния вектор. Функцията r се нарича функция на устойчивостта.[14] Експлицитните методи имат строга ниско-триъгълна матрица А, която предполага, че det(IzA) = 1 и функцията на устойчивостта е полином. [15]

Численото решение на линейното тестово уравнение се разпада до нула ако |r(z)| < 1 при z=hλ. Множеството от такива стойности на z се нарича област на абсолютна устойчивост. В частност, методът трябва да бъде A-стабилен, ако всяко z с Re(z)<0 се намира в областта на абсолютната устойчивост. Функцията на устойчивостта на експлицитния метод на РК е полином, следователно експлицитните методи на РК никога не могат да бъдат A-стабилни.[15]

Извеждане на метода на Рунге-Кута от 4-ти ред[редактиране | редактиране на кода]

Методът на Рунге-Кута от ред може да бъде написан така:

където:

са нараствания получени чрез пресмятане на производните на в -тия ред.

Извеждането на метода на Рунге-Кута от 4-ти ред се постига чрез използване на общата формула със , както е описано по-горе, в началната точка, междинна точка и последната точка на всеки интервал , затова избираме:

и . Започваме с определянето на следните величини:

където and Ако задедем:

и имайки в предвид горните изрази можем да покажем, че следните равенства имат точност :

където:

е пълната производна на по отношение на времето t.

Ако изразим общата формула, използвайки това, което изведохме по-горе, получаваме:

И като сравним това с реда на Тейлър за около :

получаваме система от изисквания за коефициентите:

която решена дава .


Източници[редактиране | редактиране на кода]

  1. Press et al. 2007, с. 908Süli & Mayers 2003, с. 328
  2. а б Шаблон:Harvtxt, Шаблон:Harvtxt, Шаблон:Harvtxt and Шаблон:Harvtxt leave out the factor h in the definition of the stages. Шаблон:Harvtxt, Шаблон:Harvtxt and Шаблон:Harvtxt use the y-values as stages.
  3. а б Süli & Mayers 2003, с. 328
  4. Press et al. 2007, с. 907
  5. Iserles 1996, с. 38
  6. Iserles 1996, с. 39
  7. а б Süli & Mayers 2003, с. 352
  8. Süli & Mayers 2003, с. 327
  9. Süli & Mayers 2003, с. 349–351
  10. Iserles 1996, с. 41Süli & Mayers 2003, с. 351–352
  11. а б Süli & Mayers 2003, с. 353
  12. Iserles 1996, с. 47
  13. Hairer & Wanner 1996, с. 40–41
  14. Hairer & Wanner 1996, с. 40
  15. а б Iserles 1996, с. 60

Литература[редактиране | редактиране на кода]

Външни препратки[редактиране | редактиране на кода]

Шаблон:Numerical integrators

Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Runge–Kutta methods“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.