Metodo di Runge-Kutta di Quarto Ordine per Risolvere Equazioni Differenziali

Indice dei Contenuti

Introduzione

Viene presentato un calcolatore per risolvere equazioni differenziali del secondo ordine utilizzando un metodo numerico basato sul metodo di Runge-Kutta di Quarto Ordine [1] e un calcolatore basato su un metodo analitico per confronto e scopi educativi.
Il metodo di Runge-Kutta di quarto ordine applicato a un'equazione differenziale di primo ordine è presentato e poi lo stesso metodo viene applicato a un'equazione differenziale lineare del secondo ordine. Infine, viene incluso un tutorial interattivo per studiare gli effetti della dimensione del passo \( h \) utilizzato nel metodo di Runge-Kutta.

Metodo di Runge-Kutta di Quarto Ordine per un'Equazione Differenziale di Primo Ordine

Il metodo di Runge-Kutta di 4° ordine è un metodo numerico ampiamente utilizzato per risolvere equazioni differenziali ordinarie (ODE) della forma: \[ \dfrac{dy}{dt} = f(y, t) \] con una condizione iniziale \( y(0) = y_0 \). Il metodo di Runge-Kutta di 4° ordine approssima la soluzione \( y(t) \) in un momento futuro \( t + h \) (dove \( h \) è la dimensione del passo) basandosi sulle informazioni al tempo \( t \). Il metodo utilizza quattro passaggi intermedi per calcolare la pendenza in diversi punti all'interno dell'intervallo \([t, t+h]\) e li combina per ottenere una pendenza media ponderata, che viene poi utilizzata per stimare \( y(t+h) \). Ecco i passaggi coinvolti nel metodo di Runge-Kutta di 4° ordine:
Passaggio 1: \[ k_1 = h \cdot f(y_n, t_n) \] Qui, \( y_n \) e \( t_n \) sono i valori attuali di \( y \) e \( t \).
Passaggio 2: \[ k_2 = h \cdot f\left(y_n + \dfrac{k_1}{2}, t_n + \dfrac{h}{2}\right) \] Passaggio 3: \[ k_3 = h \cdot f\left(y_n + \dfrac{k_2}{2}, t_n + \dfrac{h}{2}\right) \] Passaggio 4: \[ k_4 = h \cdot f(y_n + k_3, t_n + h) \] Passaggio 5:
Aggiorna \( y \) e \( t \) Il metodo di Runge-Kutta di quarto ordine combina le quantità sopra (pendenze) per approssimare il valore di \( y \) alla fine dell'intervallo \([t, t+h]\). La media ponderata di queste pendenze viene calcolata utilizzando la formula: \[ \dfrac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4) \] Questa pendenza media viene quindi moltiplicata per \( h \) e aggiunta a \( y_n \) per aggiornare il valore di \( y \) a \( t_{n+1} \). \[ y_{n+1} = y_n + h (\dfrac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4)) \] \[ t_{n+1} = t_n + h \]

Metodo di Runge-Kutta per un'Equazione Differenziale di Secondo Ordine

Per un'equazione differenziale del secondo ordine della forma: \[ \dfrac{d^2y}{dt^2} = f(y, \dfrac{dy}{dt}, t) \] con condizioni iniziali: \[ y(0) = y_0 \] \[ \dfrac{dy}{dt}(0) = \dfrac{dy}{dt}_0 \] possiamo convertirla in un sistema di due equazioni differenziali di primo ordine introducendo una nuova variabile:
Sia \[ \dfrac{dy}{dt} = v \] Pertanto, l'equazione differenziale di secondo ordine può essere scritta come sistema come segue: \[ \dfrac{dy}{dt} = v \] \[ \dfrac{dv}{dt} = \dfrac{d^2y}{dt^2} = f(y, v, t) \] Possiamo quindi utilizzare il metodo di Runge-Kutta di 4° ordine per risolvere questo sistema di equazioni differenziali di primo ordine come segue:
Passaggio 1:
Calcola \( k_{1y} \) e \( k_{1v} \) \[ k_{1y} = h \cdot v \] \[ k_{1v} = h \cdot f(y_n, v_n, t_n) \]
Passaggio 2:
Calcola \( k_{2y} \) e \( k_{2v} \) \[ k_{2y} = h \cdot (v_n + \dfrac{k_{1v}}{2}) \] \[ k_{2v} = h \cdot f\left(y_n + \dfrac{k_{1y}}{2}, v_n + \dfrac{k_{1v}}{2}, t_n + \dfrac{h}{2}\right) \]
Passaggio 3:
Calcola \( k_{3y} \) e \( k_{3v} \) \[ k_{3y} = h \cdot (v_n + \dfrac{k_{2v}}{2}) \] \[ k_{3v} = h \cdot f\left(y_n + \dfrac{k_{2y}}{2}, v_n + \dfrac{k_{2v}}{2}, t_n + \dfrac{h}{2}\right) \]
Passaggio 4:
Calcola \( k_{4y} \) e \( k_{4v} \) \[ k_{4y} = h \cdot (v_n + k_{3v}) \] \[ k_{4v} = h \cdot f(y_n + k_{3y}, v_n + k_{3v}, t_n + h) \]
Passaggio 5:
Aggiorna \( y \) e \( v \) \[ y_{n+1} = y_n + \dfrac{1}{6}(k_{1y} + 2k_{2y} + 2k_{3y} + k_{4y}) \] \[ v_{n+1} = v_n + \dfrac{1}{6}(k_{1v} + 2k_{2v} + 2k_{3v} + k_{4v}) \] \[ t_{n+1} = t_n + h \]

Calcolatore del Metodo di Runge-Kutta

Ora presentiamo un calcolatore che approssima la soluzione delle equazioni differenziali del secondo ordine della forma \[ a \dfrac{d^2y}{dt^2} + b \dfrac{dy}{dt} + c y = 0 \] utilizzando il metodo di Runge-Kutta di quarto ordine descritto sopra, e la soluzione viene anche data analiticamente per confronto.
L'equazione differenziale sopra viene risolta anche analiticamente per fare confronti.
Sia \[ \dfrac{dy}{dt} = v \] Pertanto, dobbiamo applicare il metodo di Runge-Kutta di 4° ordine al seguente sistema. \[ \dfrac{dy}{dt} = v \] \[ \dfrac{dv}{dt} = \dfrac{d^2y}{dt^2} = \dfrac{1}{a} (- b \; v - c \; y ) \] Il calcolatore utilizza il metodo di Runge-Kutta di quarto ordine e risolve anche la stessa equazione differenziale analiticamente e confronta i risultati graficamente.

Inserisci Coefficienti e Condizioni Iniziali

Inserisci i coefficienti \(a, b \) e \( c \) così come le condizioni iniziali \( y(0) \) e \( dy/dt(0) \) e la dimensione del passo \( h \), quindi risolvi e confronta i grafici delle soluzioni numeriche e analitiche ottenute.
Nota
1) Puoi utilizzare il mouse per spostarti sopra i grafici per ottenere la lettura dei punti sui grafici e quindi confrontarli.
Lettura dei punti su un grafico
2) Utilizza il mouse per visualizzare un grafico alla volta o entrambi cliccando sui grafici nella legenda mostrata sul lato destro.
Legenda del grafico
3) Gli errori nell'uso del metodo di Runge-Kutta dipendono dalla dimensione del passo \( h \). Questo calcolatore consente di modificare \( h \) e quindi confronta i metodi numerico e analitico e studia l'effetto di \( h \) sugli errori dovuti all'approssimazione utilizzata nel metodo di Runge-Kutta di 4° ordine.
4) Puoi anche cambiare il numero \( n \) di passi utilizzati nei calcoli. Il grafico si estende da \( x = 0 \) a \( x = n \times h \).








Soluzioni:

Tutorial Interattivo: Effetti della Dimensione del Passo \( h \) sull'Approssimazione tramite il Metodo Runge-Kutta

Inserisci i seguenti valori per le costanti \( b , c \) e \( d \) come segue:
\( a = 1 \) , \( b = 0.5 \) e \( c = 5 \) che dovrebbero dare una funzione oscillante con ampiezza decrescente.
Ora inserisci i valori di \( h \) partendo da \( h = 0.01 \) e poi aumenta \( h \) fino a 1. Quali valori di \( h \) danno una migliore approssimazione alla soluzione rispetto al metodo analitico?

Ulteriori Riferimenti e Collegamenti

1 - https://personal.math.ubc.ca/~cbm/aands/abramowitz_and_stegun.pdf - Handbook of Mathematical Functions - di A. Abramowitz e I. Stegun - Pagina 875
2 - University Calculus - Early Transcendental - Joel Hass, Maurice D. Weir, George B. Thomas, Jr., Christopher Heil - ISBN-13 : 978-0134995540
3 - Calculus - Gilbert Strang - MIT - ISBN-13 : 978-0961408824
4 - Calculus - Early Transcendental - James Stewart - ISBN-13: 978-0-495-01166-8