Методи на Рунге-Кута
В математическия анализ, методите на Рунге-Кута са важна част от имплицитните и експлицитните итеративни методи за получаване на приближено решение на обикновени диференциални уравнения. Тези похвати са били въведени около 1900 г. от немските математици Карл Рунге и Мартин Вилхелм Кута.
Метод на Рунге-Кута от 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 < i ≤ s), 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-ри ред с два етапа. Всъщност, има семейство от такива методи, параметризирани с α и представени с формула
Таблицата на Бутчер е:
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]Този проблем е особено важен при решаването на частни диференциални уравнения.
Неустойчивостта на експлицитните методи подбужда създаването на имплицитните методи. Имплицитен метод на РК има формата:
където
Разликата с експлицитния метод е, че при експлицитния метод сумата на j стига само до i – 1. Това се вижда и в таблицата. За имплицитен метод, матрицата на коефициенти не е непременно долно-триъгълна:[7]
Последиците от тази разлика са, че на всяка стъпка се решава система от алгебрични уравнения. Това значително повишава изчислителния разход. Ако метод със s етапа се използва за решаване на диференциално уравнение с m компонента, системата от алгебрични уравнения ще има ms компонента. За сравнение, при имплицитен s-стъпков линеен метод се решава система от алгебрични уравнения със само s компонента.[11]
Примери
[редактиране | редактиране на кода]Най-простият имплицитен метод на РК е представен с метод на Ойлер назад:
Таблицата е просто:
Тази таблица отговаря на формулите:
които могат да бъдат пренаредени за да се получи формула за метод на Ойлер назад, описан по-горе.
Друг пример за имплицитен метод на Рунге-Кута е правилото на трапеца. Съответната таблица е:
Методите на Гаус-Льожандър формират семейство методи, базирани на квадратурата на Гаус. Метод на Гаус-Льожандър със s етапа е от ред 2s. [12] Метод с два етапа (и 4-ти ред) има следната таблица:
Устойчивост
[редактиране | редактиране на кода]Предимството на имплицитните методи на Рунге-Кута пред експлицитните е по-голямата им устойчивост, особено когато се прилагат върху твърди уравнения. Разглеждаме линейното тестово уравнение y' = λy. Методът на РК, приложен за това уравнение, свежда решаването му до изпълняване на итерациите , където r е дадено чрез
където е е единичния вектор. Функцията r се нарича функция на устойчивостта.[14] Експлицитните методи имат строга ниско-триъгълна матрица А, която предполага, че det(I − zA) = 1 и функцията на устойчивостта е полином. [15]
Численото решение на линейното тестово уравнение се разпада до нула ако |r(z)| < 1 при z=hλ. Множеството от такива стойности на z се нарича област на абсолютна устойчивост. В частност, методът трябва да бъде A-стабилен, ако всяко z с Re(z)<0 се намира в областта на абсолютната устойчивост. Функцията на устойчивостта на експлицитния метод на РК е полином, следователно експлицитните методи на РК никога не могат да бъдат A-стабилни.[15]
Извеждане на метода на Рунге-Кута от 4-ти ред
[редактиране | редактиране на кода]Методът на Рунге-Кута от ред може да бъде написан така:
където:
са нараствания получени чрез пресмятане на производните на в -тия ред.
Извеждането на метода на Рунге-Кута от 4-ти ред се постига чрез използване на общата формула с , както е описано по-горе, в началната точка, междинна точка и последната точка на всеки интервал , затова избираме:
и . Започваме с определянето на следните величини:
където and Ако задедем:
и имайки предвид горните изрази можем да покажем, че следните равенства имат точност :
където:
е пълната производна на по отношение на времето t.
Ако изразим общата формула, използвайки това, което изведохме по-горе, получаваме:
И като сравним това с реда на Тейлър за около :
получаваме система от изисквания за коефициентите:
която решена дава .
Източници
[редактиране | редактиране на кода]- ↑ Press et al. 2007, с. 908; Süli & Mayers 2003, с. 328
- ↑ а б Шаблон: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.
- ↑ а б Süli & Mayers 2003, с. 328
- ↑ Press et al. 2007, с. 907
- ↑ Iserles 1996, с. 38
- ↑ Iserles 1996, с. 39
- ↑ а б Süli & Mayers 2003, с. 352
- ↑ Süli & Mayers 2003, с. 327
- ↑ Süli & Mayers 2003, с. 349 – 351
- ↑ Iserles 1996, с. 41; Süli & Mayers 2003, с. 351 – 352
- ↑ а б Süli & Mayers 2003, с. 353
- ↑ Iserles 1996, с. 47
- ↑ Hairer & Wanner 1996, с. 40 – 41
- ↑ Hairer & Wanner 1996, с. 40
- ↑ а б Iserles 1996, с. 60
Литература
[редактиране | редактиране на кода]- Ascher, Uri M., Petzold, Linda R. Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. Philadelphia, Society for Industrial and Applied Mathematics, 1998. ISBN 978-0-89871-412-8..
- Atkinson, Kendall A. An Introduction to Numerical Analysis. 2nd. New York, John Wiley & Sons, 1989. ISBN 978-0-471-50023-0..
- Butcher, John C. Numerical Methods for Ordinary Differential Equations. New York, John Wiley & Sons, 2003. ISBN 978-0-471-96758-3..
- Cellier, F., Kofman, E. Continuous System Simulation. Springer Verlag, 2006. ISBN 0-387-26102-8..
- Dahlquist, Germund. A special stability problem for linear multistep methods. BIT. Т. 3. 1963. DOI:10.1007/BF01963532. с. 27 – 43..
- Forsythe, George E., Malcolm, Michael A., Moler, Cleve B. Computer Methods for Mathematical Computations. Prentice-Hall, 1977. (see Chapter 6).
- Hairer, Ernst, Nørsett, Syvert Paul, Wanner, Gerhard. Solving ordinary differential equations I: Nonstiff problems. Berlin, New York, Springer-Verlag, 1993. ISBN 978-3-540-56670-0..
- Hairer, Ernst, Wanner, Gerhard. Solving ordinary differential equations II: Stiff and differential-algebraic problems. 2nd. Berlin, New York, Springer-Verlag, 1996. ISBN 978-3-540-60452-5..
- Iserles, Arieh. A First Course in the Numerical Analysis of Differential Equations. Cambridge University Press, 1996. ISBN 978-0-521-55655-2..
- Kaw, Autar, Kalu, Egwu. Numerical Methods with Applications. 1st. autarkaw.com, 2008..
- Section 17.1 Runge-Kutta Method // Numerical Recipes: The Art of Scientific Computing. 3rd. Cambridge University Press, 2007. ISBN 978-0-521-88068-8.. Also, Section 17.2. Adaptive Stepsize Control for Runge-Kutta Архив на оригинала от 2011-08-11 в Wayback Machine..
- Stoer, Josef, Bulirsch, Roland. Introduction to Numerical Analysis. 3rd. Berlin, New York, Springer-Verlag, 2002. ISBN 978-0-387-95452-3..
- Süli, Endre, Mayers, David. An Introduction to Numerical Analysis. Cambridge University Press, 2003. ISBN 0-521-00794-1..
Външни препратки
[редактиране | редактиране на кода]- Runge–Kutta 4th Order Method
- Runge Kutta Method for O.D.E.'s
- DotNumerics: Ordinary Differential Equations for C# and VB.NET – Initial-value problem for nonstiff and stiff ordinary differential equations (explicit Runge–Kutta, implicit Runge–Kutta, Gear's BDF and Adams–Moulton).
- GafferOnGames Архив на оригинала от 2012-09-05 в Wayback Machine. – A physics resource for computer programmers
- PottersWheel – Parameter calibration in ODE systems using implicit Runge–Kutta integration
Тази страница частично или изцяло представлява превод на страницата Runge–Kutta methods в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.
ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни. |