Metodi di Runge Kutta
Ciao ragazzi...
Sono ancora qui per chiedervi un disperato aiuto! Io sono un chimico, quindi di analisi numerica ci capisco davvero ben poco...
Ho provato a capire qualcosa sui metodi di Runge Kutta (II e IV ordine), ma senza successo... anche su internet ho trovato poco...
Quello che volevo chiedervi è se potevate spiegarmi a parole il più semplice possibile il metodo di Runge Kutta II ordine in particolare il significato di K1 e K2 e come si ottiene y(n+1).
Per quanto riguarda il metodo di Runge Kutta del IV ordine mi accontento di sapere come si ottiene graficamente senza le formule!
Vi ringrazio davvero molto!
Sono ancora qui per chiedervi un disperato aiuto! Io sono un chimico, quindi di analisi numerica ci capisco davvero ben poco...
Ho provato a capire qualcosa sui metodi di Runge Kutta (II e IV ordine), ma senza successo... anche su internet ho trovato poco...
Quello che volevo chiedervi è se potevate spiegarmi a parole il più semplice possibile il metodo di Runge Kutta II ordine in particolare il significato di K1 e K2 e come si ottiene y(n+1).
Per quanto riguarda il metodo di Runge Kutta del IV ordine mi accontento di sapere come si ottiene graficamente senza le formule!
Vi ringrazio davvero molto!
Risposte
Eh! sul metodo del IV ordine... proprio
ieri cercavo un'interpretazione grafica, Ma poi smisi _mi sembrò non fosse poi così "utile".
E' molto più semplice un interpretazione grafica per quello "del secondo ordine", ovvero "di Heun" (legg. "Hoin").
In generale, considera la successione:
$y_(i+1)=y_i +hA$.
$A$ è un coefficiente angolare.
Tutti i metodi di Runge-Kutta ottengono A come
combinazione lineare di valori calcolati di $f(x,y)$ per
$x$ compreso tra $x_i$ ed $x_(i+1)$, ed $y(x)$ di volta in volta approssimato
usando dei $K$ già calcolati.
Nel metodo di Heun il coefficiente angolare A
è la media aritmetica tra $f(x_i, y_i)$ ed
il valore per $f$ che hai se conideri $x=x_(i+1)$ ed $y(x_(i+1))=y"*"$, cioè
una "$y$" approssimata calcolata come per il metodo
di Eulero esplicito, cioè $y"*"=y_i+hf(x_i,y_i)$.
$y_(i+1)=y_i+h[(f(x_i,y_i)+f(x_(i+1), y_i+f(x_i,y_i)))/2]$
Graficamente: considera $x_i$ ed $y_i$ -che
hai dati; calcola il valore di $f(x_i, y_i)=K_1$.
Disegna la retta $r$ che passa per $(x_i,y_i)$ di coefficiente angolare $K_1$.
Questa retta all'ascissa $x_(i+1)$ avrà una ordinata che chiamerò appunto $y"*"$.
Ora calcola $K_2=f(x_(i+1),y"*")$.
-Puoi ora "tirare" la retta verticale per il punto
a metà tra $x_i$ ed $x_(i+1)$.
Questa retta inersecherà la retta $r$ in un punto.
Ora disegna la retta $r'$ che passa per quel punto ed ha coefficiente angolare $K_2$.
Il punto di intersezione tra $r"*"$ e la retta verticale per $x_(i+1)$ sarà il tuo $y_(i+1)$.
ieri cercavo un'interpretazione grafica, Ma poi smisi _mi sembrò non fosse poi così "utile".
E' molto più semplice un interpretazione grafica per quello "del secondo ordine", ovvero "di Heun" (legg. "Hoin").
In generale, considera la successione:
$y_(i+1)=y_i +hA$.
$A$ è un coefficiente angolare.
Tutti i metodi di Runge-Kutta ottengono A come
combinazione lineare di valori calcolati di $f(x,y)$ per
$x$ compreso tra $x_i$ ed $x_(i+1)$, ed $y(x)$ di volta in volta approssimato
usando dei $K$ già calcolati.
Nel metodo di Heun il coefficiente angolare A
è la media aritmetica tra $f(x_i, y_i)$ ed
il valore per $f$ che hai se conideri $x=x_(i+1)$ ed $y(x_(i+1))=y"*"$, cioè
una "$y$" approssimata calcolata come per il metodo
di Eulero esplicito, cioè $y"*"=y_i+hf(x_i,y_i)$.
$y_(i+1)=y_i+h[(f(x_i,y_i)+f(x_(i+1), y_i+f(x_i,y_i)))/2]$
Graficamente: considera $x_i$ ed $y_i$ -che
hai dati; calcola il valore di $f(x_i, y_i)=K_1$.
Disegna la retta $r$ che passa per $(x_i,y_i)$ di coefficiente angolare $K_1$.
Questa retta all'ascissa $x_(i+1)$ avrà una ordinata che chiamerò appunto $y"*"$.
Ora calcola $K_2=f(x_(i+1),y"*")$.
-Puoi ora "tirare" la retta verticale per il punto
a metà tra $x_i$ ed $x_(i+1)$.
Questa retta inersecherà la retta $r$ in un punto.
Ora disegna la retta $r'$ che passa per quel punto ed ha coefficiente angolare $K_2$.
Il punto di intersezione tra $r"*"$ e la retta verticale per $x_(i+1)$ sarà il tuo $y_(i+1)$.
errore gravissimooooooooo
"zlatanzlatan":
errore gravissimooooooooo
Ora sono di fretta e non ho letto il post precedente comunque chi ha fatto l'errore gravissimo e quale sarebbe l'errore gravissimo. Il tuo post è inutile senza queste informazioni. Quando avrò tempo darò un'occhiata alla discussione e fornirò qualche informazione.
Personalmente ho trovato fatto bene il libro di Butcher "Numerical Methods for Ordinary Differential Equations" (faccio riferimento alla prima edizione anche se immagino anche la seconda sia buona). Anche se forse è un po' troppo avanzato per il problema in se.