Metodi di integrazione numerica (ODE+PDE) Jost von Hardenberg – ISAC-CNR Integrazione numerica di equazioni differenziali Cerchiamo una soluzione (un’approssimazione numerica) per un’equazione differenziale ordinaria p.es Oppure per equazioni alle derivate parziali, es: date opportune condizioni iniziali e/o al contorno Metodi a differenze finite Sostituiamo al problema continuo una sua rappresentazione su una griglia discretizzata (nello spazio e nel tempo): - Problema ben posto - Consistenza Rappresentazione a differenze finite delle derivate Ottenibile da: Definizione classica derivata prima di una funzione u(x,y) in un punto: Espansione in serie di Taylor di u(x,y) attorno ad un punto Rappresentazione a differenze finite delle derivate Ottenibile da: Fit di un polinomio nell’intorno di un punto: ui ui+1 ui-1 x-x x x+x Integrazione numerica di eq. differenziali ordinarie NB: qualunque ODE di ordine > 1 può essere scritta come sistema di eq. 1. ordine. Es: Problema generico: ODE: Il metodo di Eulero + Err.ore Troncamento yn+1 f(y) yn t -Metodo accurato al 1. ordine - Poco stabile - Metodo esplicito - Metodo asimmetrico ODE: Runge-Kutta 2 k2 yn k1 t yn+1 y(t) k2 t+t/2 t+t - Metodo accurato al 2. ordine - Buona stabilità - Metodo esplicito - più simmetrico di Eulero ODE: Runge-Kutta 4 k2 yn k1 k2 k4 y(t) k3 - Metodo accurato al 4. ordine - Buona stabilità - Metodo esplicito t t+t/2 t+t Altri metodi Leapfrog …. molti altri metodi espliciti Predictor-corrector Metodi impliciti (maggiore stabilità, non necessariamente accuratezza) PDE, esempi Avvezione di uno scalare FT CS Equazione del calore Non è stabile! PDE: Condizioni al contorno Condizioni di Dirichlet eg. u=f su Condizioni di von Neumann: eg: u/n=f oppure u/s=g su Condizioni miste e.g: u/n+ku=f n s Analisi di stabilità D = soluzione discreta (infinita precisione) N = soluzione numerica (precisione finita) A = soluzione analitica Err. di discretizzazione = A - D Err. arrotondamento = N – D Come cresce l’errore di arrotondamento ? Analisi di stabilità di von Neumann Seguiamo un piccolo errore : y’=y+ nelle equazioni discrete Eq. lineari (linearizzate) per la crescita dell’errore Errori rappresentati come modi di Fourier: Sostituiamo e cerchiamo Altri metodi: Griglie staggered Metodi spettrali Metodi impliciti Volumi finiti ….. Metodi per equazioni ellittiche (rilassamento, multigriglia ….)