In matematica, il
metodo di Runge-Kutta-Fehlberg (metodo RKF)
è un metodo efficace utilizzato per la soluzione numerica delle equazioni differenziali ordinarie.
Questo metodo si basa sull’approccio classico di Runge-Kutta e si distingue in particolare per il vantaggio di
consentire il controllo automatico della lunghezza del passo.
Il metodo è stato sviluppato dal matematico tedesco
Erwin Fehlberg.
L’idea fondamentale consiste nell’ottenere, all’interno dello stesso passo,
due diverse soluzioni approssimate di
quarto ordine e di
quinto ordine, stimando l’errore locale a partire dalla differenza tra esse.
In questo modo, la lunghezza del passo \(h\) può essere aumentata o ridotta
per ottenere la precisione desiderata nella soluzione.
Consideriamo il seguente problema ai valori iniziali:
\(y' = f(t,y)\), \(y(t_0)=y_0\)
L’obiettivo è determinare approssimativamente i valori della soluzione numerica
che soddisfa la condizione iniziale assegnata.
Nel metodo di Runge-Kutta-Fehlberg, a ogni passo vengono calcolati i seguenti sei valori intermedi:
\(k_1 = h f(t_n, y_n)\)
\(k_2 = h f\!\left(t_n+\displaystyle \frac{1}{4}h,\; y_n+\displaystyle \frac{1}{4}k_1\right)\)
\(k_3 = h f\!\left(t_n+\displaystyle \frac{3}{8}h,\; y_n+\displaystyle \frac{3}{32}k_1+\displaystyle \frac{9}{32}k_2\right)\)
\(k_4 = h f\!\left(t_n+\displaystyle \frac{12}{13}h,\; y_n+\displaystyle \frac{1932}{2197}k_1-\displaystyle \frac{7200}{2197}k_2+\displaystyle \frac{7296}{2197}k_3\right)\)
\(k_5 = h f\!\left(t_n+h,\; y_n+\displaystyle \frac{439}{216}k_1-8k_2+\displaystyle \frac{3680}{513}k_3-\displaystyle \frac{845}{4104}k_4\right)\)
\(k_6 = h f\!\left(t_n+\displaystyle \frac{1}{2}h,\; y_n-\displaystyle \frac{8}{27}k_1+2k_2-\displaystyle \frac{3544}{2565}k_3+\displaystyle \frac{1859}{4104}k_4-\displaystyle \frac{11}{40}k_5\right)\)
Utilizzando questi valori intermedi, si calcolano due diverse soluzioni approssimate per lo stesso passo.
Una di esse è di quarto ordine, mentre l’altra è di quinto ordine.
Soluzione approssimata di quarto ordine:
\(y_{n+1}^{(4)} = y_n + \displaystyle \frac{25}{216}k_1 + \displaystyle \frac{1408}{2565}k_3 + \displaystyle \frac{2197}{4104}k_4 - \displaystyle \frac{1}{5}k_5\)
Soluzione approssimata di quinto ordine:
\(y_{n+1}^{(5)} = y_n + \displaystyle \frac{16}{135}k_1 + \displaystyle \frac{6656}{12825}k_3 + \displaystyle \frac{28561}{56430}k_4 - \displaystyle \frac{9}{50}k_5 + \displaystyle \frac{2}{55}k_6\)
Qui \(h\) rappresenta la lunghezza del passo.
La differenza tra le due soluzioni viene utilizzata come indicatore approssimato dell’errore locale di troncamento:
\(\text{Errore} \approx \left| y_{n+1}^{(5)} - y_{n+1}^{(4)} \right|\)
Se questo errore rientra nei limiti di accettabilità, il passo viene accettato.
Se l’errore è elevato, il passo viene ridotto e il calcolo viene ripetuto.
Se invece l’errore è molto piccolo, per il passo successivo può essere scelto un valore di \(h\) più grande,
rendendo il calcolo più efficiente.
I principali vantaggi del metodo di Runge-Kutta-Fehlberg sono i seguenti:
- Produce simultaneamente due soluzioni di ordine diverso.
- Permette di stimare l’errore locale.
- Consente l’adattamento automatico della lunghezza del passo.
- È un metodo efficace sia dal punto di vista della precisione sia dell’efficienza computazionale.
Per questo motivo, il metodo RKF è ampiamente utilizzato in ingegneria, fisica e matematica applicata
per la soluzione dei problemi ai valori iniziali.