• Non ci sono risultati.

Equazioni Differenziali Ordinarie in Matlab

N/A
N/A
Protected

Academic year: 2021

Condividi "Equazioni Differenziali Ordinarie in Matlab"

Copied!
3
0
0

Testo completo

(1)

Equazioni Differenziali Ordinarie in Matlab

1

A. Sommariva2

Keywords: Problema di Cauchy. Metodi di Eulero esplicito. Metodo di Eulero implicito. Metodo di Crank-Nicolson. Esempi. Esercizi.

Revisione: 24 aprile 2020

1. Metodi di Eulero esplicito/implicito in Matlab Di seguito descriviamo i codici Matlab di • Eulero esplicito,

• Eulero implicito,

eseguiti da Atkinson, Han, Steward.

function [t,y]=eulero_esplicito(t0,y0,t_end,h,fcn) n = fix((t_end-t0)/h)+1; t = linspace(t0,t0+(n-1)*h,n)’; y = zeros(n,1); y(1) = y0; for i = 2:n

y(i) = y(i-1) + h*feval(fcn,t(i-1),y(i-1)); end

function [t,y]=eulero_implicito(t0,y0,t_end,h,fcn,tol) n = fix((t_end-t0)/h) + 1;

t = linspace(t0,t0+(n-1)*h,n)’; y = zeros(n,1); y(1) = y0; for i=2:n

yt1 = y(i-1) + h*feval(fcn,t(i-1),y(i-1)); count = 0; diff = 1;

while diff > tol && count < 10

yt2 = y(i-1) + h*feval(fcn,t(i),yt1);

diff = abs(yt2-yt1); yt1 = yt2; count=count+1; end

if count >= 10

(2)

• la routine in questione risolve l’equazione del metodo di Eulero implicito

z = un+ hf (xn+1, z)

tramite l’applicazione del metodo di punto fisso, ottenendo per k = 0, 1, . . . zk+1= un+ hf (xn+1, zk)

• quale valore iniziale z0 del metodo di punto fisso si sceglie quello fornito da

Eulero esplicito.

Esercizio 1.1. Si risolva utilizzando il metodo di Eulero esplicito con passi h uguali rispettivamente a0.2, 0.1, 0.05



y0(x) = (cos (y(x)))2, 0 ≤ x ≤ 10

y(0) = 0 (1)

la cui soluzione `e Y (x) = arctan(x).

Si calcolino (o plottino in scala semi-logaritmica) • l’errore assoluto rispetto la soluzione esatta; • l’errore relativo rispetto la soluzione esatta.

Per selezionati valori dix, ad esempio x = 10, si calcoli il rapporto con cui l’errore decresce quandoh `e dimezzato.

Esercizio 1.2. Modificando opportunamente il metodo di Eulero implicito, si implementi il me-todo di Crank-Nicolson.

Si risolva utilizzando il metodo di Crank-Nicolson con passih uguali rispettivamente a 0.2, 0.1, 0.05, con tolleranza pari a 10−6,



y0(x) = (cos (y(x)))2, 0 ≤ x ≤ 10

y(0) = 0 (2)

la cui soluzione `e Y (x) = arctan(x). Si calcolino (o plottino in scala semi-logaritmica) • l’errore assoluto rispetto la soluzione esatta;

• l’errore relativo rispetto la soluzione esatta.

Esercizio 1.3. Approssimare per λ = −100 il valore assunto dalla soluzione y del problema di Cauchy  y0(x) = λy(x), x ≥ 0 y(0) = 1 (3) nel puntox = 100. A tal proposito

• Si utilizzano i metodi di Eulero esplicito e Eulero implicito con passi h = 0.1, h = 0.05, h = 0.02, h = 0.01, h = 0.001.

• Al variare di h verificare quando |1 + hλ| < 1.

(3)

• Stampare gli errori assoluti ottenuti (in formato esponenziale, 1 cifra prima della virgola e 3 dopo la virgola).

• Si osservi che la mancata convergenza a 0 di Eulero implicito `e dovuta al metodo di Eulero esplicito come predittore (si veda il codice di Eulero esplicito).

Facoltativo 1.1. • Implementare i metodi di Adams-Bashforth e Moulton per p = 3. • Si consideri il problema di Cauchy



y0(x) = (cos (y(x)))2, 0 ≤ x ≤ 10

y(0) = 0 (4)

la cui soluzione `e Y (x) = arctan(x).

Approssimare con tali metodi la soluzione di (4) nell’intervallo[0, 10], in N punti equi-spaziatixn, conN = 2, 4, 8, 16, 32, descrivendone con un plot l’errore assoluto kun−

Ynk∞(doveYn= y(xn) e unl’approssimazione fornita dal metodo numerico inxn).

Quali valori iniziali si considerino quelli propri della soluzione esattaY (x) = tan−1(x) nei punti richiesti.

Riferimenti

Documenti correlati

Due classici metodi per risolvere il problema differenziale (1.2) sono il metodo di Eulero esplicito ed il metodo di Eulero implicito.. Denotiamo con I(x, x) il pi`u piccolo

• il metodo di Eulero esplicito, avendo ordine di consistenza 1, `e convergente con ordine di convergenza 1;.. • il metodo di Eulero implicito, avendo ordine di consistenza 1,

Steward, Numerical Solution of Ordinary Differential Equations, programs for the book , John Wiley and Sons,

Abbiamo già visto in una lezione precedente che il passo 1) si esegue con complessità polinomiale, con un test che verifica se n è potenza di opportuna base naturale ed

Il raggio di curvatura di una sezione piana obliqua la cui normale formi con la normale alla superficie un angolo θ è pari al raggio di curvatura della sezione normale avente

In questo capitolo discuteremo il calcolo delle variazioni e la sua applica- zione alla formulazione lagrangiana delle equazioni di moto sia per un sistema non vincolato sia per

Si consideri un punto materiale di massa M vincolato a muoversi sulla superficie di una sfera di raggio R centrata nell’origine di un sistema di assi cartesiani.. Si scrivano

L’ultimo capitolo contiene alcuni risultati parziali sul problema della regolarit` a delle geodetiche in questi spazi; dopo aver mostrato una propriet` a di alcune di esse, ispirati