ODE IV_02
function [tt, xm, vm] = funzione_massa_molla_smorzatore (m, my, k) end
ODE IV_06
function [t, y] = ode (dt, t8, y0) t=0:dt:t8; t=t1; Nt=length(t); y = zeros (Nt,1); y(1)=y0; for it = 2:Nt y(it)=y((it-1))+dt * ( y((it-1)+(it-1) - (it-1)); end end
METODO DI HEUN
Metodo più accurato del Metodo di Euler. Fino ad ora dobbiamo studiare problemi in questa forma. dy/dt=ε(y,t) es. = dy/dt = -αy ⎧dxm/dt=-vm ⎨ dm/dt=-k/m*xm^β*e^my*t*m/m2tomf
Con il Metodo di Euler sviluppiamo il seguente algoritmo: yn+1 = yn + Δt. [ε(sn, tn) ] → metodo esplicito Questa espressione si porta a fare degli errori: O(t)
ODE IV_02
function [tt, xm, vm] = funzione_massa_molla_smatore (m, my, k)
eul
ODE IV_06
function [t, y] = ode (dt, tgi, yo)t = 0:dt:tfi; t = t; Nt = length(t);y = zeros (Nt, 1);y(1)=yo;for it = 2:Nty(it) = y(it-1) + dt * (y(it-1) + t(it-1) - 1,1 * y(it-1));eudeud
METODO DI HEUN
24/10/2022
Metedo più accurato del Metodo di Eulero.Fino ad ora abbiamo studiato problemi in questa forma.dy/dt = f(y, t) es. = dy/dt = -y { dxm/dt = vm dvm/dt = -k/m * xm2 + cm * f2 }
Con il Metodo di Eulero sviluppiamo il seguente operativo:yit+1 = yt + Δt * [ f(ti, tti) ]
Questa descrizione riguarda è pari degli errori:O(1/t)
L'interpretazione geometrica del metodo di Eulero è:
L'errore è dato dal fatto che ci avvaliamo di una retta che ha pendenza che è quella iniziale della funzione.
Per ridurre l'errore devo ridurre il Δt.
Altri metodi sono quelli di Runge-Kutta e Adam Bashforth. Uno dei più semplici della categoria dei metodi di Runge-Kutta è il metodo di Heun.
L'idea dei metodi di Runge-Kutta è quello di fare un passo in avanti usando un punto "migliorato" e non quello iniziale (come invece facevamo con il Metodo di Eulero).
Metodo di Heun
Uso, cioè, una pendenza media (che a priori non sappiamo), quindi si usa prima la pendenza di partenza e calcolo un y1, che è un valore di Tentativo y1tr.
col il metodo di Eulero 1. In yi+1 calcolo la
pendenza, cioe’ alla fine del ST.
Sulla base del valore di tentativo yi+1 possiamo calcolare
la pendenza (o membro di destra RHS) alla fine del ST.
Ci calcoliamo pero’ una pendenza che non coincide con
quella vera, cioe’ effettiva sulla base di calcolo perche’
yfi+1 ≠ yi+1, ma ci da un idea di come si comporta
la funzione alla fine del ST.
Ora torno nel punto yi e considero una pendenza media
fra ___________ e ____________ . Quindi ci sara’ sempre un errore,
ma questo errore diventa più piccolo.
È un metodo "predictor-corrector"
Noi possiamo fare questo processo avanti-indietro piu’
volte —> processo di correzione per avere un valore della
pendenza media sempre piu’ accurato.
Cioe’ questo metodo si può applicare anche iterativamente
(devo sapere la tolleranza/soglia).
Implementazione su MATLAB
• Eulero:
for ct=0:1:NT
yct+1=yct+ΔT(RHSi)
Metodo di Heun
for it = 2:Nt
yE = yit-1 + Δt (RHSit-1)
yit = yit-1 + Δt * 1/2 (RHSit-1 + RHS yE it)
end
Solo il Metodo di Heun per la ODE semplice dy/dt = -σy
for it = 2:Nt
yE = y(it-1) + Δt * (-σ * y(it-1))
y(it) = y(it-1) + Δt * 1/2 ( -σ * y(it-1) + (-σ * yE) )
end
Un modo più raffinato per scrivere il metodo di Heun si potrebbe: e'
for it = 2:Nt
RHS_iu1 = -σ * y(it-1)
yE = y(it-1) + Δt * RHS_iu1
RHS_fiu = -σ * yE
y(it) = y(it-1) + Δt * 1/2 (RHS_iu1 + RHS_fiu)
end
Per il sistema massa molla smorzatore:
for
xmit = xmi t-1 + ...
vmit = vmit-1 + ...
end
{Eulero}
for
xm∈= ...
vm∈= ...
xm(i+1)=xm(i+1) ... RHS
vm(i+1
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti completi di Metodi numerici - Parte 2
-
Appunti di Metodi numerici
-
Appunti Metodi numerici completi
-
Appunti completi di Metodi numerici - Parte 3