thumb|upright=1.5|Compararea metodelor Runge-Kutta pentru ecuația diferențială(cu roșu este soluția exactă) În analiza numerică metodele Runge–Kutta sunt o familie de metode iterative , care cuprind , utilizată în discretizarea timpului pentru soluțiile aproximative ale . Devries, Paul L.; Hasbun, Javier E. A first course in computational physics. Second edition. Jones and Bartlett Publishers: 2011. p. 215 Aceste metode au fost dezvoltate în jurul anului 1900 de matematicienii germani Carl Runge și Martin Wilhelm Kutta.
Metoda Runge–Kutta thumb|upright=1.5|Pantele utilizate în metoda Runge–Kutta clasică (RK4) Cea mai cunoscută metodă dintre metodele Runge–Kutta este cea denumită „RK4”, „metoda clasică Runge–Kutta” sau, simplu, „metoda Runge–Kutta”.
Fie o problemă cu valori inițiale:
Aici este o funcție necunoscută (scalară sau vectorială) de timp, care se dorește să fie aproximată. Se știe că viteza de variație este o funcție de și de La momentul inițial, valoarea corespunzătoare a lui este Sunt date funcția și condițiile inițiale
Se alege pasul și se definesc:;
pentru folosind
(Notă: Diferiți autori folosesc definiții diferite, dar echivalente., , , omit factorul h din definiția stadiilor. , , folosesc valorile y pentru stadii.)
Aici este aproximarea RK4 a a cărei valoare este determinată de valoarea actuală, plus media ponderată a patru incremente, unde fiecare increment este produsul dintre mărimea intervalului, și o pantă estimată specificată de funcția în membrul drept al ecuației diferențiale. este panta la începutul intervalului, folosind (metoda Euler); este panta în mijlocul intervalului, folosind și este tot panta la începutul intervalului, dar folosind acum și este panta la sfârșitul intervalului, folosind și
La calcularea mediei celor patru pante se acordă o pondere mai mare pantelor din mijloc. Dacă este independentă de astfel încât ecuația diferențială este echivalentă cu o integrală simplă, atunci RK4 este .
Metoda RK4 este o metodă de ordinul patru, ceea ce înseamnă că eroarea locală de trunchiere este de ordinul în timp ce eroarea totală acumulată este de ordinul
În multe aplicații practice funcția este independentă de (sistem invariant în timp, în special în fizică), iar incrementele lor nu sunt deloc calculate și nu sunt transmise funcției care este utilizată doar formula finală pentru
Metode Runge–Kutta explicite Familia de metode Runge–Kutta explicite este o generalizare a metodei RK4 menționate mai sus. Este dată de:
unde
(Notă: Diferiți autori folosesc definiții diferite, dar echivalente.)
Pentru a specifica o anumită metodă trebuie să se furnizeze numărul întreg (numărul de stadii) și coeficienții (pentru (pentru ) și (pentru ). Matricea [] se numește matricea Runge–Kutta, în timp ce și sunt cunoscute sub numele de ponderi și noduri. Aceste date sunt de obicei aranjate mnemonic în tabela Butcher (după John C. Butcher): {| style="text-align: center" cellspacing="0" cellpadding="3" | style="border-right:1px solid;" | |- | style="border-right:1px solid;" | || |- | style="border-right:1px solid;" | || || |- | style="border-right:1px solid;" | || || || |- | style="border-right:1px solid; border-bottom:1px solid;" | | style="border-bottom:1px solid;" | | style="border-bottom:1px solid;" | | style="border-bottom:1px solid;" | | style="border-bottom:1px solid;" | || style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || || || || ||
O dezvoltare în serie Taylor arată că metoda Runge–Kutta este consistentă dacă și numai dacă:
Există, de asemenea, cerințe însoțitoare dacă se impune ca metoda să aibă un anumit ordin ceea ce înseamnă că eroarea locală de trunchiere este Acestea pot fi obținute din definiția erorii de trunchiere. De exemplu, o metodă în două stadii are ordinul 2 dacă și O condiție populară pentru determinarea coeficienților este:
Totuși, această condiție în sine nu este nici necesară, nici suficientă pentru consistență. Ca un contraexemplu, fie orice schemă Runge–Kutta explicită în 2 stadii cu și și alese aleatoriu. Această metodă este consistentă și (în general) convergentă de ordinul întâi. Pe de altă parte, metoda într-un singur stadiu cu este inconsistentă și nu reușește să conveargă, chiar dacă este valabilă trivial.
În general, dacă o metodă Runge–Kutta explicită cu stadii este de ordinul atunci se poate demonstra că numărul de stadii trebuie să satisfacă și dacă atunci Totuși, nu se știe dacă aceste limite sunt exacte în toate cazurile. În unele cazuri se demonstrează că limita nu poate fi atinsă. De exemplu, Butcher a demonstrat că pentru nu există o metodă explicită cu stadii. Butcher a demonstrat, de asemenea, că pentru nu există o metodă explicită Runge–Kutta cu stadii. În general numărul minim exact de stadii pentru ca o metodă explicită Runge–Kutta să fie de ordinul rămâne o problemă deschisă. Câteva valori cunoscute sunt:
Limita demonstrabilă de mai sus implică faptul că nu se pot găsi metode de ordinele care necesită mai puține stadii decât metodele cunoscute pentru aceste ordine. Lucrarea lui Butcher demonstrează, de asemenea, că metodele de ordinul 7 și 8 au un minim de 9, respectiv 11 stadii. Un exemplu de metodă explicită de ordinul 6 cu 7 stadii poate fi găsit în lucrarea lui Butcher din 1964. Se cunosc și metode explicite de ordinul 7 cu 9 stadii și de ordinul 8 cu 11 stadii. Se găsesc liste cu aceste metode.
Exemple Metoda RK4 se încadrează în acest cadru. Tabala sa este: {| style="text-align: center" cellspacing="0" cellpadding="3" | style="border-right:1px solid;" | 0 |- | style="border-right:1px solid;" | 1/2 || 1/2 |- | style="border-right:1px solid;" | 1/2 || 0 || 1/2 |- | style="border-right:1px solid; border-bottom:1px solid;" | 1 || style="border-bottom:1px solid;" | 0 | style="border-bottom:1px solid;" | 0 || style="border-bottom:1px solid;" | 1 | style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || 1/6 || 1/3 || 1/3 || 1/6
O mică variație din 1901 a metodei Runge–Kutta se datorează tot lui Kutta și se numește regula 3/8. referindu-se la . Principalul avantaj al acestei metode este că aproape toți coeficienții de eroare sunt mai mici decât în metoda populară, dar necesită ceva mai multe operații în virgulă mobilă pe un pas de timp. Tabela sa Butcher este: {| style="text-align: center" cellspacing="0" cellpadding="3" | style="border-right:1px solid;" | 0 |- | style="border-right:1px solid;" | 1/3 || 1/3 |- | style="border-right:1px solid;" | 2/3 || −1/3 || 1 |- | style="border-right:1px solid; border-bottom:1px solid;" | 1 || style="border-bottom:1px solid;" | 1 | style="border-bottom:1px solid;" | −1 || style="border-bottom:1px solid;" | 1 | style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || 1/8 || 3/8 || 3/8 || 1/8
Totuși, cea mai simplă metodă Runge–Kutta este metoda Euler, dată de formula Aceasta este singura metodă Runge–Kutta explicită consistentă cu un singur stadiu. Tabala corespunzătoare este: {| style="text-align: center" cellspacing="0" cellpadding="3" | width="10" style="border-right:1px solid; border-bottom:1px solid;" | 0 | width="10" style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || 1
Metode de ordinul al doilea cu două stadii Un exemplu de metodă de ordinul al doilea cu două stadii corespunde : {| style="text-align: center" cellspacing="0" cellpadding="3" | style="border-right:1px solid;" | 0 |- | style="border-right:1px solid; border-bottom:1px solid;" | 1/2 || style="border-bottom:1px solid;" | 1/2 || style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || 0 || 1
Metoda punctului de mijloc nu este singura metodă Runge–Kutta de ordinul al doilea cu două stadii; există o familie de astfel de metode, parametrizate de α și date de formula:
Tabela sa Butcher este: {| style="text-align: center" cellspacing="0" cellpadding="8" | style="border-right:1px solid;" | 0 |- | style="border-right:1px solid; border-bottom:1px solid;" | || style="border-bottom:1px solid; text-align: center;" | || style="border-bottom:1px solid;" | |- | style="border-right:1px solid;" | || ||
În această familie dă metoda punctului de mijloc, este , iar este metoda lui Ralston.
Utilizare Ca exemplu, fie metoda Runge-Kutta de ordinul al doilea în două stadii cu α = 2/3, cunoscută și sub numele de metoda Ralston. Aceasta este dată de tabela: 0 2/3 2/3 1/4 3/4
cu ecuațiile corespunzătoare:
Această metodă este utilizată pentru a rezolva problema valorilor inițiale:
cu pasul astfel metoda necesită patru pași.
Metoda funcționează după cum urmează:
Soluțiile numerice corespund valorilor subliniate.
Metode Runge–Kutta implicite Metodele Runge–Kutta explicite sunt în general nepotrivite pentru rezolvarea deoarece zona lor de stabilitate absolută este mică; în special, este mărginită. Această problemă este deosebit de importantă în rezolvarea ecuațiilor cu derivate parțiale.
Instabilitatea metodelor Runge–Kutta explicite a motivat dezvoltarea metodelor implicite. O metodă Runge–Kutta implicită are forma:
unde;
Diferența față de o metodă explicită este că, într-o metodă explicită, suma pentru merge doar până la Acest lucru apare și în tabela Butcher: matricea coeficienților a unei metode explicite este triunghiulară inferior. Într-o metodă implicită suma pentru merge până la iar matricea coeficienților nu este strict triunghiulară, rezultând o tabelă Butcher de forma:
Consecința acestei diferențe este că la fiecare pas trebuie rezolvat un sistem de ecuații algebrice. Aceasta crește considerabil costul de calcul. Dacă se utilizează o metodă cu stadii pentru a rezolva o ecuație diferențială cu componente, atunci sistemul de ecuații algebrice are componente. Acest lucru poate fi comparată cu metoda liniară cu pași multipli implicită (cealaltă mare familie de metode pentru EDO): o metodă liniară cu pași multipli implicită cu pași trebuie să rezolve un sistem de ecuații algebrice cu doar componente, astfel dimensiunea sistemului nu crește pe măsură ce numărul de pași crește.
Exemple Cel mai simplu exemplu de metodă Runge–Kutta implicită este :
Tabela Butcher pentru asta este simplă:
Această tabelă Butcher corespunde formulei:
care poate fi rearanjată pentru a obține formula pentru metoda Euler înapoi menționată mai sus.
Un alt exemplu de metodă Runge–Kutta implicită este . Tabela sa Butcher este:
cu stadii are ordinul (astfel se pot construi metode de ordin arbitrar de mare). Metoda cu două stadii (deci de ordinul 4) are tabela Butcher:
Stabilitate Avantajul metodelor Runge–Kutta implicite față de cele explicite constă în stabilitatea lor mai mare, în special atunci când sunt aplicate la ecuații rigide. Fie ecuația de test liniară O metodă Runge–Kutta aplicată acestei ecuații se reduce la iterația , cu dat de:
unde este vectorul unitate. Funcția este funcția de stabilitate. Din formulă rezultă că este câtul a două polinoame de gradul dacă metoda are stadii. Metodele explicite au o matrice triunghiulară strict inferioară , ceea ce implică faptul că și că funcția de stabilitate este un polinom.
Soluția numerică a ecuației liniare de test descrește la zero dacă Mulțimea unor astfel de este domeniul stabilității absolute. Metoda este absolut stabilă dacă toate cu se află în domeniul stabilității absolute. Funcția de stabilitate a unei metode Runge–Kutta explicite este un polinom, deci metodele Runge–Kutta explicite nu pot fi niciodată A-stabile.
Dacă metoda este de ordinul atunci funcția de stabilitate satisface când Prin urmare, este interesant să se studieze coeficienții polinoamelor de grad dat care aproximează cel mai bine funcția exponențială. Acestea sunt cunoscute sub numele de . O aproximare Padé cu numărător de gradul și numitor de gradul este A-stabilă dacă și numai dacă