Calcolo numerico/Metodi Runge-Kutta

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Definizione generale

Questi metodi sono del tipo

yn+1=yn+hF(tn,yn,h;f)

e sono a un passo. F è definita come

F(tn,yn,h;f)=∑i=1sbi∗Ki

dove i Ki vengono chiamati stadi.

Definizione degli stadi

Gli stadi possono essere definiti come

Ki=f(tn+cih,yn+h∑j=1saijKj)

Nel secondo argomento compaiono nuovamente gli stadi, quindi questi metodi sono non lineari.

I coefficienti ci,bi,aij compaiono nella batcher array.

(c1a11…a1s…………csas1…assb1…bs)

In forma compatta:

(𝒄A𝒃)

I coefficienti indicano caratteristiche del metodo usato. In particolare deve valere la row sum condition, cioè

ci=∑j=1saij

se quest'uguaglianza non è verificata il metodo non funziona.

Si possono verificare tre casi:

  1. metodi espliciti (aij=0⟺j≥i): la sommatoria si ferma all'indice i−1, la diagonale principale e la parte triangolare superiore di A sono nulle; compare solo la dipendenza dagli stadi precedenti, che sono già stati calcolati;
  2. metodi semi-impliciti (aij=0⟺j>i):la diagonale principale non è nulla, ma la parte triangolare superiore di A lo è, compare la dipendenza dal passo attivo;
  3. metodi impliciti: A è una matrice piena.

Nel caso dei semi-impliciti dobbiamo risolvere il sistema:

Ki=f(tn+cih,yn+h∑j=1i−1aijKj+haiiKi)

per i=1,…,s, che è un sistema di s equazioni non lineari disaccoppiate.

Nel caso degli impliciti invece ho un sistema di equazioni non disaccoppiate dove ogni stadio coinvolge tutti gli altri, e le equazioni sono del tipo:

Ki=f(tn+cih,yn)+h∑j=1saijKj+haiiKi

Runge-Kutta 4 (esplicito)

Il Runge-Kutta 4 è definito nel seguente modo:

yn+1=yn+h/6(K1+2K2+2K3+K4)

dove

K1=f(tn,yn)

K2=f(tn+h/2,yn+h/2K1)

K3=f(tn+h/2,yn+h/2K2)

K4=f(tn+1,yn+hK3)

Se consideriamo un Runge-Kutta esplicito a s stadi, l'ordine massimo di convergenza è s, anche se si dimostra che non esistono Runge-Kutta espliciti a s stadi di ordine s per s>5.

Consistenza

Un metodo Runge-Kutta è consistente ovvero τh=maxn|tnh|→0 per h→0 se e solo se

∑i=1sbi=1

In questo caso 1 è l'unica radice del polinomio caratteristico e quindi la consistenza (e in questo caso la 0-stabilità) implica la convergenza.

Runge-Kutta 2

Consideriamo un Runge-Kutta a due stadi, s=2, esplicito. Supponiamo che

yn+1=y(tn)+h(b1K1+b2K2)

con K1=f(tn,y(tn)) e K2=f(tn+hc2,y(tn)+ha21K1).

Il blocco di Batcher è della forma:

(000c2A210b1b2)

Deve valere la condizione di somma sulle righe, quindi

a21=c2

e si ottiene

K2=f(tn+hc2,y(tn)+hc2K1)

e sostituendo l'espressione di K1:

K2=f(tn+hc2,y(tn)+hc2f(tn,y(tn))

Sviluppando rispetto a h:

K2=f(tn,y(tn))+c2hft(tn,yn)+hc2fy(tn,y(tn))+o(H2)

(ft,fy indicano le derivate parziali rispetto a t e a y) e sostituendo le espressioni degli stadi nell'espressione del metodo:

yn+1=y(tn)+hb1f(tn,y(tn))+hb2[f(tn,y(tn))+hc2ft(tn,y(tn))+hc2fy(tn,y(tn)+O(H2))

e associando i termini corrispondenti

yn+1=y(tn)+h(b1+b2)f(tn,y(tn))+h2b2c2(ft(tn,y(tn))+fy(tn,y(tn))+O(H2)

ma yn+1=y(tn)+hy′(tn)+h2/2y″(tn)+O(h3), quindi

y(tn)+hy′(tn)+h2/2y″(tn)+O(h3)=

=y(tn)+h(b1+b2)f(tn,y(tn))+h2b2c2(ft(tn,y(tn))+fy(tn,y(tn))+O(H2)

e

hy′(tn)+h2/2y″(tn)+O(h3)=

=h(b1+b2)f(tn,y(tn))+h2b2c2(ft(tn,y(tn))+fy(tn,y(tn))+O(H2)

Imponiamo che la soluzione esatta soddisfi lo schema numerico fino a un certo ordine, e confrontando i coefficienti a primo e secondo membro otteniamo:

{b1+b2=1b2c2=1/2

Ci sono infinite soluzioni possibili, quindi infiniti Runge-Kutta di tipo 2.

Passo di integrazione

Dato un problema di integrazione stiff, si deve sempre scegliere un passo di integrazione variabile. Nei metodi Runge-Kutta a un passo il passo può essere variato a piacere, mentre nei metodi multipasso questo non è vero.

I Runge-Kutta impliciti sono i metodi che raggiungono la massima potenza possibile. La loro teoria di convergenza viene trattata in maniera algebrica.

Template:Avanzamento