Metodo di Runge-Kutta-Fehlberg

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.