• Non ci sono risultati.

Equazioni differenziali ordinarie.

N/A
N/A
Protected

Academic year: 2021

Condividi "Equazioni differenziali ordinarie."

Copied!
65
0
0

Testo completo

(1)

Equazioni differenziali ordinarie.

Alvise Sommariva

Universit`a degli Studi di Padova Dipartimento di Matematica Pura e Applicata

17 maggio 2014

(2)

Problema di Cauchy

Si consideri ilproblema di Cauchy



y0(x ) = f (x , y (x )), x ≥ x0

y (x0) = y0

(1)

dove f `e a valori in Rn e definita in un sottoinsieme Ω di R × Rn,

con (x0, y0) ∈ Ω. Di seguito supporremo che tale problema abbia

(3)

Esempi

Esempio 1.



y0(x ) = y (x ), x ≥ 0

y (0) = 1 (2)

la cui soluzione `e exp (x ). E’ un problema di Cauchy con

f (x , y (x )) = y (x ). Esempio 2.    y10(x ) = −y2(x ), x ≥ 0 y20(x ) = y1(x ), x ≥ 0 y1(0) = 1, y2(0) = 0 (3)

la cui soluzione `e y (x ) = (y1(x ), y2(x )) = (cos (x ), sin (x )). E’ un

problema di Cauchy con y = (y1, y2), x0 = 0, y (x0) = (1, 0) e

f (x , y (x )) = f (x , y1(x ), y2(x )) = (−y2(x ), y1(x )).

(4)

Teorema di Cauchy in piccolo

Sia B(y0) la palla chiusa di Rn di centro y0 e raggio  e sia

Sδ,,x0,y0 ≡ [x0− δ, x0+ δ] × B(y0) ⊆ R × R

n, δ,  > 0.

Ricordiamo che la funzione f `e L-lipschitziana rispetto la seconda

variabile in Sδ,,x0,y0 se L > 0 e

|f (x, z1)−f (x , z2)| ≤ L|z1−z2|, ∀x ∈ [x0−δ, x0+δ], ∀z1, z2∈ B(y0).

Vale il seguenteteorema di esistenza ed unicit`a (in piccolo)

Teorema

Siano Ω un aperto di R × Rn contenente (x0, y0), f : Ω → Rn

continua e L-lipschitziana (rispetto alla seconda variabile) in Sδ,,x0,y0 (per qualche δ,  > 0).

Allora esiste un intervallo aperto contenente x0 nel quale `e definita

(5)

Teorema di Cauchy in grande

Accanto a tale teorema esiste quello di esistenza ed unicit`a (in

grande)

Teorema

Siano Ω = [x0, x0+ a] × Rn, f : Ω → Rn continua e L-lipschitziana

(rispetto la seconda variabile) in Ω.

Allora il problema di Cauchy (1) ha una e una sola soluzione in [x0, x0+ a].

Si noti che

I Nel teorema di Cauchy in piccolo Ω `e aperto, mentre in quello

in grande `e chiuso.

I Il teorema di Cauchy in piccolo fornisce l’esistenza e unicit`a

locale della soluzione, mentre quello in grande `e globale.

(6)

Metodo di Eulero esplicito

Indichiamo con I(x , x ) il pi`u piccolo intv. aperto contenente x e x

(cio`e (x , x ) oppure (x , x )). Assumendo che la soluzione sia sufficientemente regolare, abbiamo dalla formula di Taylor per x ≈ x , ξ ∈ I(x , x ) e (1)

y (x ) = y (x ) + y0(x )(x − x ) +y

00(ξ)(x − x )2

2

≈ y (x) + y0(x )(x − x ) = y (x ) + f (x , y (x ))(x − x ) (4)

Di conseguenza se si desidera calcolare la soluzione nei punti

xk+1 = x0+ kh = xk+ h con k > 0, ponendo x = xk+1, x = xk

(7)

Metodo di Eulero esplicito

Il metodo diEulero esplicito consiste nell’approssimare y (xk+1) con

yk+1 definito da yk+1 = yk + h · f (xk, yk), y0= y (x0). (6) Essendo y (xk+1) = y (xk) + y0(xk)(x − xk) + y00(ξ)(xk+1− xk)2 2

si osserva immediatamente che applicando il metodo di Eulero esplicito ponendo yk = y (xk), si ha per qualche ξ in (xk, xk+1), in

virt`u del fatto che y0(xk) = f (xk, y (xk))

y (xk+1) − yk+1 = y (xk) + y0(xk)(xk+1− xk) (7) + y 00(ξ)(x k+1− xk)2 2 − (y (xk) + y 0 (xk)(xk+1− xk)) = y 00(ξ)(x k+1− xk)2 2 .

(8)

Metodo di Eulero implicito

Similmente al caso di Eulero esplicito, se poniamo invece x = xk,

x = xk+1 abbiamo

y (xk) ≈ y (xk+1) + f (xk+1, y (xk+1))(xk− xk+1), (8)

e quindi

y (xk+1) = y (xk) + h · f (xk+1, y (xk+1)). (9)

Il metodo di Eulero implicito consiste nell’approssimare y (xk+1)

con yk+1 definito da

yk+1= yk + h · f (xk+1, yk+1), y0 = y (x0). (10)

Evidentemente ad ogni iterazione si richiede di risolvere un’eqz. nonlineare nella variabile z del tipo

z = yk + h · f (xk+1, z)

la cui soluzione pu`o essere calcolata utilizzando ad esempio col

(9)

Osservazione

Il problema di Cauchy `e definito da



y0(x ) = f (x , y (x )), x ≥ x0

y (x0) = y0

(11)

dove f `e a valori in Rn e definita in un sottoinsieme Ω di R × Rn,

con (x0, y0) ∈ Ω. Quindi a priori i metodi di Eulero esplicito

yk+1= yk + h · f (xk, yk), y0= y (x0) (12)

e Eulero implicito

yk+1 = yk+ h · f (xk+1, yk+1), y0 = y (x0) (13)

possono essere utilizzati per sistemi di equazioni differenziali, in

quanto la sequenza `e ben definita.

(10)

Analisi convergenza

Supponiamo di analizzare il problema di Cauchy nell’intervallo

compatto I = [x0, xfin]. Sia y la soluzione esatta di un fissato

problema di Cauchy (1) e u(h) l’approssimazione fornita da un

metodo numerico, campionando la soluzione nei punti xs = x0+ sh, con Nh = xfin− x0.

Un tale metodo si diceconvergente se

∀n, ky − u(h)k

∞≤ C (h)

con C (h) infinitesimo rispetto ad h quando h tende a 0. Se C (h) = O(hp)

per qualche p > 0 allora si dice che il metodo converge conordine

(11)

Analisi convergenza

Se un metodo per la soluzione di problemi di Cauchy ha la forma

yn+1= p X j =0 ajyn−j + h p X j =−1 bjf (xn−j, yn−j)

allora, posto yn= y (tn) il valore della sol. del problema di Cauchy

in tn (cf. [1, p.112]), si definisce τn(h) = 1 h · (yn+1− ( p X j =0 ajyn−j + h p X j =−1 bjf (xn−j, yn−j))).

si chiamaerrore locale di troncamentodel metodo, mentre

τ (h) = max

n=0,...|τn(h)|

si chiamaerrore globale di troncamentodel metodo. Un metodo

per cui τ (h) tende a 0, quando h → 0 si diceconsistente.

(12)

Analisi convergenza

Nota.

(13)

Analisi convergenza

Consideriamo il metodo di Eulero esplicito, con ascisse equispaziate

per un prefissato passo h. Sia yn= y (xn), con y sol. del problema

di Cauchy, xn= x0+ nh e

u∗n= yn−1+ h · f (xn−1, yn−1), un= un−1+ h · f (xn−1, un−1).

e osserviamo che

en= yn− un= (yn− un∗) + (un∗− un) (14)

Il metodo converge se entrambi i termini a secondo membro di (14) convergono a 0 per h → 0. Osserviamo che

I la prima sequenza un∗ parte dal valore assunto dalla soluzione

in xn−1,

I la seconda seq. un parte da valori che a priori non coincidono

con yn−1= y (xn−1).

(14)

Analisi convergenza

Se la derivata seconda di y esiste ed `e continua allora abbiamo

mostrato che per quanto concerne la sequenza di Eulero esplicito,

|yn− un∗|= |yn− (yn−1+ h · f (xn−1, yn−1))| =(h2/2) · |y00(ξn)|

per qualche ξn∈ (tn−1, tn).

Osserviamo che in questo caso, poich`e

u∗n= yn−1+ h · f (xn−1, yn−1),

abbiamo che

(15)

Analisi convergenza

Se la derivata seconda di y esiste ed `e continua, posto

M = maxx ∈I|y00(x )|, per il metodo di Eulero esplicito,

|τn(h)| = |yn−un∗|/h = (1/h)·(h2/2)·|y 00 (ξn)| = (h/2)·|y00(ξn)| ≤ Mh/2. e quindi τ (h) = max n=0,...|τn(h)| ≤ Mh/2.

Quindi sotto queste ipotesi il metodo di Eulero esplicito risulta

consistente.

Osserviamo ora che essendo

en= yn− un= (yn− un∗) + (un∗− un) (15)

abbiamo

|en| = |yn− un| ≤ |yn− un∗| + |un∗− un| ≤ h|τ (h)| + |un∗− un| (16)

(16)

Analisi convergenza Eulero esplicito, caso Lipschitziano

Consideriamo ora il termine u∗n− un.

Sef `e L-Lipschitziana (rispetto al secondo argomento) allora |f (x, y1) − f (x , y2)| ≤ L|y1− y2| e si mostra che |un∗− un| ≤ (1 + hL)|en−1|. Infatti da u∗n= yn−1+ h · f (xn−1, yn−1), un= un−1+ h · f (xn−1, un−1)

ricaviamo dalla L-lipschitzianit`a

|u∗n− un| = |(yn−1+ h · f (xn−1, yn−1)) − (un−1+ h · f (xn−1, un−1))|

= |(yn−1− un−1) + h · (f (xn−1, yn−1) − f (xn−1, un−1))|

≤ |yn−1− un−1| + h|f (xn−1, yn−1) − f (xn−1, un−1))|

(17)

Analisi convergenza Eulero esplicito, caso Lipschitziano

Da en:= yn− un, |yn− un∗| ≤ h|τ (h)|, |un∗− un| ≤ (1 + hL)|en−1|

|en| ≤ h|τ (h)| + (1 + hL)|en−1|

≤ h|τ (h)| + (1 + hL)(h|τ (h)| + (1 + hL)|en−2|)

= (1 + (1 + hL))h|τ (h)| + (1 + hL)2|en−2|

Di conseguenza, ragionando induttivamente abbiamo da 1 + s + . . . + sk = (1 − sk+1)/(1 − s) ed essendo |e0| = 0, |en| ≤ (1 + (1 + hL) + . . . + (1 + hL)n−1)h|τ (h)| + (1 + hL)n|e0| ≤ 1 − (1 + hL) n 1 − (1 + hL) h|τ (h)| + (1 + hL) n|e 0| = (1 + hL)n− 1 L |τ (h)|

(18)

Analisi convergenza Eulero esplicito, caso Lipschitziano

Notiamo che per γ > 0 exp (γ) = ∞ X k=0 γk k! ≥ 1 X k=0 γk k! = 1 + γ (17)

e quindi (1 + γ)n≤ (exp(γ))n= exp(nγ) implica che per γ = hL si

ha essendo nh = xn− x0 (1 + hL)n≤ exp (nhL) = exp (L(xn− x0)). Cos`ı da |en| ≤ (1 + hL)n− 1 L |τ (h)|

si ottiene che essendo x0 < xn≤ xfin

|en| ≤ exp (L(xn− x0)) − 1 L τ (h) ≤ exp (L(xfin− x0)) − 1 L · Mh 2

e di conseguenza, da (14), possiamo dire che il metodo diEulero

(19)

Analisi convergenza Eulero esplicito, caso dissipativo

Se invece di essere L-lipschitziana, f `e L-dissipativa, cio`e

−L ≤ ∂f ∂y ≤ 0, abbiamo da u∗n= yn−1+ h · f (xn−1, yn−1), un= un−1+ h · f (xn−1, un−1) f (xn−1, un−1) = f (xn−1, yn−1) + ∂f ∂y(ξ)(un−1− yn−1) che per qualche ξ ∈ I(un−1, yn−1)

un− un∗ = (un−1+ h · f (xn−1, un−1)) − (yn−1+ h · f (xn−1, yn−1)) = (un−1− yn−1) + h · (f (xn−1, un−1) − f (xn−1, yn−1)) = (un−1− yn−1) + h ∂f ∂y(ξ)(un−1− yn−1) = (1 + h∂f ∂y(ξ)) · (un−1− yn−1). (18)

(20)

Analisi convergenza Eulero esplicito, caso dissipativo

Da

un− un∗= (1 + h

∂f

∂y(ξ)) · (un−1− yn−1). (19)

abbiamo che se 0 < h ≤ 2/L (non restrittivo per mostrare la conv. visto che si studia il comportamento per h → 0) allora

(21)

Analisi convergenza Eulero esplicito, caso dissipativo

Da en:= yn− un, |yn− un∗| ≤ h|τ (h)|, |un∗− un| ≤ |en−1|

|en| ≤ h|τ (h)| + |en−1|

≤ h|τ (h)| + (h|τ (h)| + |en−2|)

= 2h|τ (h)| + |en−2|

Di conseguenza, ragionando induttivamente abbiamo che essendo

|e0| = 0, nh ≤ Nh = xfin − x0, |τ (h)| ≤ Mh/2

|en| ≤ nh|τ (h)| + |e0|

≤ (xfin − x0)|τ (h)| ≤ (xfin − x0)Mh/2

e di conseguenza possiamo dire che il metodo diEulero esplicito

converge con ordine 1.

(22)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Consideriamo il metodo di Eulero implicito un= un−1+ hf (tn, un), u0 = y0.

Per prima cosa calcoliamo l’errore globale di troncamento. Se

g ∈ C2(a, b), per qualche ξ ∈ (a, b) si ha

Z b

a

g (x )dx = (b − a)g (b) − h2g(1)(ξ)/2

e quindi essendo h = xn− xn−1, se la soluzione `e suff. regolare

(23)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Ricordiamo che yn = y (tn) `e la soluzione del problema di Cauchy

mentre un= un−1+ hf (tn, un), u0 = y0. Definiamo un∗ := yn−1+ hf (tn, yn), u∗0 = y0. Come in precedenza yn− un= (yn− un∗) + (un∗− un)

e quindi per la disuguaglianza triangolare |yn− un| ≤ |yn− un∗| + |u

∗ n− un|.

Studiamo separatamente i termini al secondo membro. Osserviamo che

|yn− un∗| = |yn− (yn−1+ hf (tn, yn))| = h|τn(h)|

(24)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Studiamo |un∗− un| ricordando che

un∗ := yn−1+ hf (tn, yn), u∗0 = y0,

un:= un−1+ hf (tn, un), u0= y0.

Di conseguenza, dalla lipschitzianit`a (rispetto la seconda variabile)

|u∗n− un| = |yn−1+ hf (tn, yn) − un−1− hf (tn, un)|

= |yn−1− un−1+ hf (tn, yn) − hf (tn, un)|

≤ |yn−1− un−1| + h|f (tn, yn) − f (tn, un)|

(25)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

In definitiva, essendo |yn− un| ≤ |yn− un∗| + |un∗− un|, |yn− un∗| = |yn− (yn−1+ hf (tn, yn))| = h|τn(h)|, |un∗− un| ≤ |yn−1− un−1| + hL|yn− un|, deduciamo che |yn− un| ≤ h|τn(h)| + |yn−1− un−1| + hL|yn− un|.

Visto che siamo interessati ad analizzare l’errore per h → 0, non `e

restrittivo supporre hL < 1 e portando hL|yn− un| a primo membro

e dividendo ambo i membri per 1 − hL > 0 abbiamo, posto en:= yn− un, |en| = |yn− un| ≤ (1/(1 − hL))(h|τn(h)| + |yn−1− un−1|) = h|τn(h)| 1 − hL + |en−1| 1 − hL (23)

(26)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Con ragionamenti simili a quelli utilizzati per mostrare la

(27)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Notiamo che se hL < 1 allora s = 1/(1 − hL) > 1 e che

n X k=1 sk = s n+1− 1 s − 1 ≤ sn+1 s − 1 Ora s − 1 = 1 1 − hL− 1 = hL 1 − hL > 0 (25)

e da (1 + x )k ≤ exp(kx) per x > 0, abbiamo

sn+1 = (1 + (s − 1))n+1≤ exp((n + 1)(s − 1)) = exp(hL(n + 1) 1 − hL ) = exp( L(xn+1− x0) 1 − hL ) (26) e quindi n X k=1 sk ≤ (1 − hL) exp( L(xn+1−x0) 1−hL ) hL

(28)
(29)

Facoltativo. Analisi convergenza Eulero implicito, caso

Lipschitziano

Notiamo che τn(h) = h|y00(ξ)|/2 e che se y00`e continua per il

teorema di Weierstrass |y00| ha massimo nel compatto [x0, xfin],

diciamo M. Di conseguenza

τ (h) = max(τn(h)) ≤ Mh/2.

Ricordando che |e0| = 0, che xfin = x0+ Nh abbiamo

|en| ≤ h (1 − hL) exp(L(xn+1−x0) 1−hL ) hL |τ (h)| + exp( L(xn− x0) 1 − hL )|e0| ≤ h(1 − hL) exp( L(xn+1−x0) 1−hL ) hL Mh 2 + exp( L(xfin − x0) 1 − hL )|e0| ≤ (1 − hL) exp( L(xN−x0)+hL 1−hL ) L Mh 2 (27)

e quindi |en| → 0 per h → 0, per cui Eulero implicito converge.

(30)

Metodo di Crank-Nicolson

Supponiamo di dover risolvere il problema di Cauchy 

y0(t) = f (t, y (t)), t ≥ t0

y (t0) = y0

(28)

Osserviamo che se tn+1 = tn+ h allora ricordando la formula del

(31)

Metodo di Crank-Nicolson

Da

y (tn+1) ≈ y (tn) + (h/2)(f (tn, y (tn)) + f (tn+1, y (tn+1))) (29)

si introduce il metodo implicito (detto diCrank-Nicolsono dei dei

trapezi)

un+1≈ un+ (h/2)(f (tn, un) + f (tn+1, un+1)) (30)

per risolvere numericamente il problema di Cauchy (28). Si osservi che ad ogni iterazione, essendo il metodo implicito, bisogna risolvere una equazione nonlineare.

(32)

Assoluta stabilit´

a

Nell’ambito delle equazioni differenziali ordinarie, esistono vari criteri di stabilit´a. Un classico problema `e quello di vedere se un

metodo `e assolutamente stabile. Definito il problema di Cauchy



y0(x ) = λy (x ), x ≥ 0

y (0) = 1 (31)

per un certo λ ∈ C con <(λ) < 0, visto che l’unica soluzione `e y (x ) = exp (λx ) si cerca di definire il passo h cosicch`e il metodo numerico per la soluzione del problema di Cauchy (1) abbia lo stesso comportamento asintotico di exp (λx ).

Laregione di assoluta stabilit`a e’ composta dagli hλ, per cui il

metodo numerico con passo h `e tale da avere lo stesso

(33)

Assoluta stabilit´

a

Ricordiamo a tal proposito che dalla formula di Eulero, se z = a + ib = <(z) + =(z) allora

exp (z) = exp (a) · (cos (b) + i sin (b)).

Quindi se <(λ) < 0, visto che | cos (=(λx )) + i sin (=(λx ))| = 1 e x > 0 abbiamo

| exp (λx)| = |exp(<(λx))|| cos (=(λx)) + i sin ((=(λx)))|

= |exp (<(λx))| → 0, perx → ∞.

Visto il comportamento asintotico di exp (λx ), se u(h)(xn) `e

l’approssimazione della soluzione in xn fornita da un metodo

numerico a passo h, si desidera sia u(h)(xn) → 0 per n → +∞.

(34)

Assoluta stabilit´

a: Eulero esplicito

Nel caso del metodo di Eulero esplicito,

un= un−1+ hf (xn−1, un−1) = (1 + hλ)un−1, u0= 1.

Si verifica facilmente che questa equazione alle differenze (di ordine 1) ha quale unica soluzione

un= (1 + hλ)n

e che

un→ 0 se e solo se |1 + hλ| < 1

(35)

Assoluta stabilit´

a: Eulero esplicito

Di conseguenza, fissato λ, il metodo risulta stabile se e solo se si

sceglie un passo sufficientemente piccolo, cio`e minore di 1/|λ|.

Un problema di Cauchy 

y0(x ) = λy (x ), x ≥ 0

y (0) = 1 (32)

si dicestiff, quando <(λ)  0 (cio`e <(λ) `e molto grande in valore assoluto).

In questo caso, si deve scegliere un passo h molto piccolo affinch`e

la soluzione di Eulero esplicito tenda a 0.

(36)

Assoluta stabilit´

a: Eulero implicito

Nel caso del metodo di Eulero implicito,

un= un−1+ hf (xn, un) = un−1+ hλun, u0 = 1.

Portando a primo membro hλun, dividendo i membri per 1 − hλ

un= un−1 1 − hλ. Si verifica che un= 1 (1 − hλ)n e che un→ 0 se e solo se 1 |1 − hλ| < 1.

Essendo <(λ) < 0, si vede facilmente che |1−hλ1 | < 1 per qualsiasi

h. Questa propriet`a suggerisce di applicare Eulero impl. invece di

Eulero espl. per risolvere num. un problema di Cauchy.

(37)

Assoluta stabilit´

a: metodo di Crank-Nicolson

Nel caso del metodo di Crank-Nicolson, da f (x , y ) = λy un = un−1+ (h/2)(f (xn, un) + f (xn−1, un−1)) = un−1+ (h/2)λ(un+ un−1), u0 = 1 (33) Quindi, (1 −hλ 2 )un= un−1+ hλ 2 un cio`e 2 − hλ 2 · un= 2 + hλ 2 · un−1 e di conseguenza un= 2 + hλ 2 − hλun−1

(38)

Assoluta stabilit´

a: metodo di Crank-Nicolson

Da

un=

2 + hλ

2 − hλun−1

si verifica facilmente che questa equazione alle differenze ha quale unica soluzione un= (2 + hλ)n (2 − hλ)n e che un→ 0 se e solo se |2 + hλ| |2 − hλ| < 1.

Da <(λ) < 0, |2+hλ2−hλ| < 1 per ogni h. Infatti, se λ = a + ib, a < 0 |2 + hλ| |2 − hλ| = |2 + h(a + ib)| |2 − h(a + ib)| = |(2 + ha) + ib| |(2 − ha) + ib| = p(2 + ha)2+ b2 p(2 − ha)2+ b2 < 1

in quanto (2 + ha)2 < (2 − ha)2, qualora a < 0.

(39)

Facoltativo: Assoluta stabilit´

a. Una nota

Nota.

Stabilire la stabilit`a per il problema di Cauchy 

y0(x ) = f (x , y (x )), x ≥ x0

y (x0) = y0 (34)

`e in generale complicato. Se invece consideriamo



y0(x ) = λy (x ) + g (x ), x ≥ x0

y (x0) = y0 (35)

la questione `e pi`u semplice. Ricordiamo che la soluzione di (35) `e y (x ) = c · exp (λx ) + Z x x0 exp (λ(x − t))g (t)dt con c = exp (−λx0)y (x0)

(40)

Facoltativo: Assoluta stabilit´

a. Una nota

Sia y la soluzione di  y0(x ) = λy (x ) + g (x ), x ≥ x0 y (x0) = y0 (36) e y quella di  y0(x ) = λy (x ) + g (x ), x ≥ x0 y (x0) = y0+  (37) Posto z= y− y , da (36), (38),  z0(x ) = λz(x ), x ≥ x0 y (x0) =  (38)

(41)

Facoltativo: Assoluta stabilit´

a. Una nota

Di solito nelle applicazioni ci si interessa al caso λ < 0 o complesso

con parte reale negativa. In questi casi z→ 0 per n → ∞ e quindi

l’effetto delle perturbazioni si annulla per valori grandi di x .

Si desidera che il metodo numerico goda delle stesse propriet`a e la

risposta la si ha nuovamente dallo studio della regione di stabilit`a .

(42)

Metodi linear multistep (LM)

Posto h > 0, xn= x0+ nh ed n ≥ 0, un metodo si dice linear

multistep(abbr. LM), se `e del tipo

un+1= p X j =0 ajun−j+ h p X j =−1 bjf (xn−j, un−j), n = p, p + 1, . . . (39)

noti i valori uk ≈ y (xk) per k < p e supposto ap, bp6= 0.

Si dimostra che un metodo LM `e consistentese e solo se

p X j =0 aj = 1, − p X j =0 jaj + p X j =−1 bj = 1

e inoltre che se y ∈ Cq+1 per qualche q ≥ 1, il metodo haordine q

(43)

Metodi linear multistep (LM)

Nota.

Si osservi che per metodi a pi`u passi non essendo noti valori

approssimati della soluzione nei punti x0, . . ., xp, usualmente li si

fornisce utilizzando un metodo a meno passi, come ad esempio Eulero implicito.

Nota.

I metodi gi`a proposti sono di questo tipo:

I Eulero esplicito: a0= 1, b−1 = 0, b0= 1;

I Eulero implicito: a0 = 1, b−1= 1, b0 = 0;

I Eulero esplicito: a0= 1, b−1 = 1/2, b0 = 1/2;

Applicando i teoremi precedenti si vede, come noto che

I Eulero esplicitoha ordine di consistenza 1,

I Eulero implicito ha ordine di consistenza 1,

I il metodo dei trapeziha ordine di consistenza uguale a2.

(44)

Metodi linear multistep: Adams

Da y0(x ) = f (x , y (x )) e y (xn+1) = y (xn−m) + Rxn+1 xn−my 0(x ) dx ricaviamo che y (xn+1) = y (xn−m) + Z xn+1 xn−m f (x , y (x )) dx .

Se `e nota una approssimazione della soluzione nei punti

xn+γ, . . . , xn+γ−p e se Pp(x ) `e il polinomio che interpola le coppie

(xn+γ−k,f (xn+γ−k, un+γ−k)), si ha

y (xn+1) = y (xn−m) +

Z xn+1

xn−m

Pp(x ) dx

e quindi facilmente un metodo per quadratura numerica dell’integrale.

I Se m = 0, γ = 0 si hanno metodi espliciti (Adams-Bashforth);

(45)

Esempi LM: Adams-Bashforth

I Adams-Bashforth (p=0): un+1= un+ hfn, τn+1 = (h/2)y(2)(ξn). I Adams-Bashforth (p=1): un+1= un+ h2(3fn− fn−1), τn+1 = (5h2/12)y(3)(ξn). I Adams-Bashforth (p=2): un+1= un+12h(23fn− 16fn−1+ 5fn−2), τn+1 = (3h3/8)y(4)(ξn). I Adams-Bashforth (p=3): un+1= un+24h(55fn− 59fn−1+ 37fn−2− 9fn−3), τn+1 = (251h4/720)y(5)(ξn). Nota.

Si noti che sono effettivamente metodiesplicitia p + 1 passi.

(46)

Esempi LM: Adams-Moulton

I Adams-Moulton (p=0): un+1 = un+ hfn+1, τn+1 = (−h/2)y(2)(ξn). I Adams-Moulton (p=1): un+1 = un+h2(fn+1+ fn), τn+1 = (−h2/12)y(3)(ξn). I Adams-Moulton (p=2): un+1 = un+12h(5fn+1+ 8fn− fn−1), τn+1 = (−h3/24)y(4)(ξn). I Adams-Moulton (p=3): un+1= un+24h(9fn+1+ 19fn− 5fn−1+ fn−2), τn+1 = (−19h4/720)y(5)(ξn). Nota.

(47)

Convergenza LM

Si supponga che i dati iniziali siano calcolati in modo che η(h) = max

i =0,...,p|y (xi) − ui| → 0, per h → 0

e che il metodo siaconsistente. Supponiamo inoltre che

aj ≥ 0, j = 0, . . . , p

mentre il passo di discretizzazione h sia tale h ≤ 1/(2c), c = L

p

X

j =−1

|bj|,

dove L `e la costante di Lipschitz di f .

Allora il metodo LMconvergeed inoltre esistono C1, C2 positive

tali che per ogni n

|y (xn) − un| ≤ C1η(h) + C2τ (h).

(48)

Barriere LM

Definizione

Un metodo numerico `e detto A-stabile se la sua regione di stabilit`a

assoluta contiene tutto il semipiano negativo.

Valgono le seguenti barriere di stabilit`a (Dahlquist, 1963)

Teorema

Nessun metodo LM esplicito `e A-stabile.

Teorema

(49)

Predictor-corrector

In generale un metodo LM implicito ha propriet`a di stabilit`a

migliori rispetto ad un LM esplicito e questo ne suggerisce l’utilizzo.

Purtroppo ad ogni iterazione bisogna risolvere una equazione nonlineare.

Un approccio comunemente utilizzato `e quello del

predictor-corrector. Consiste nell’utilizzare il metodo di punto fisso con una certa scelta del punto iniziale.

Nel caso di un metodo di Adams implicito (dettocorrector), si

utilizza ad esempio un metodo di Adams esplicito (dettopredictor).

(50)

Esempio Predictor-corrector

Consideriamo i seguenti metodi di Adams (porremo fi = f (xi, ui)).

(51)

Runge-Kutta

Consideriamo un metodo numerico che definisca una sequenza un

t.c.

y (xn+1) ≈ un+1= un+ hF (xn, un; h)

con

F (x , y ; h) = γ1f (x , y ) + γ2f (x + αh, y + βhf (x , y ))

e determiniamo i parametri γ1, γ2, α, β cos`ı da ottenere un

metodo del second’ordine. Ricordiamo che questo significa che

τ (h) sia O(h2). Per ottenere questo risultato usiamo la formula di

Taylor bivariata. Denotate con fx, fy le derivate parziali rispetto al

primo e secondo argomento di f , abbiamo

f (x +αh, y +βhf (x , y )) = f (x , y )+αhfx(x , y )+βhfy(x , y )f (x , y )+O(h2)

(52)

Runge-Kutta

Per definizione di errore locale di troncamento: τ (x , h) = (y (x + h) − u(x + h))/h

con u(x + h) calcolata dal metodo qualora u(x ) = y (x ). Da

f (x +αh, y +βhf (x , y )) = f (x , y )+αhfx(x , y )+βhfy(x , y )f (x , y )+O(h2)

abbiamo che

F (x , y ; h) = γ1f (x , y ) + γ2f (x + αh, y + βhf (x , y ))

= γ1f (x , y ) + γ2(f (x , y ) + αhfx(x , y ) + βhfy(x , y )f (x , y ))

(53)

Runge-Kutta

Facilmente, dalla formula di Taylor

y (x + h) − y (x) = hy(1)(x ) + (h2/2)y(2)(x ) + O(h3) = hf (x , y ) + (h2/2)(fx(x , y ) + fy(x , y )f (x , y )) + O(h3) = φ1(x , h) + O(h3) (41) Ma `e pure u(x + h) − y (x ) = hF (x , y ; h) = h(γ1f (x , y ) + γ2(f (x , y ) + αhfx(x , y ) + βhfy(x , y )f (x , y ))) + O(h3) = h(γ1+ γ2)f (x , y ) + h2γ2(αfx(x , y ) + βfy(x , y )f (x , y ))) + O(h3) = φ2(x , h, γ1, γ2, α, β) + O(h3) (42)

(54)

Runge-Kutta

Se φ1(x , h) ≡ φ2(x , h, γ1, γ2, α, β) allora da y (x + h) − y (x ) = φ1(x , h) + O(h3) u(x + h) − y (x ) = φ2(x , h, γ1, γ2, α, β) + O(h3)

sottraendo membro a membro

y (x + h) − u(x + h) = (φ1(x , h) − φ2(x , h, γ1, γ2, α, β)) + O(h3)

= O(h3) (43)

e quindi si determina un metodo avente ordine di consistenza 2, poich`e τn(h) = O(h2) per ogni n e quindi τ (h) = O(h2).

Affinch`e φ1(x , h) = φ2(x , h, γ1, γ2, α, β), per confronto tra (40),

(41), (42), necessita

(55)

Runge-Kutta

Vediamo alcuni metodi in cui

γ1+ γ2 = 1, γ2α = 1/2, γ2β = 1/2.

Metodo diHeun(α = 1):

un+1= un+

h

2(f (xn, un) + f (xn+ h, un+ hf (xn, un))).

Metodo diEulero modificato(α = 1/2):

un+1= un+ hf (xn+

h 2, un+

h

2f (xn, un)).

(56)

Runge-Kutta

La scelta particolare di un maggior numero di vincoli permette, con qualche fatica, di calcolare un metodo di ordine 4. Posto

un+1= un+ h · f1+ 2f2+ 2f3+ f4 6 ove f1 = f (tn, un) f2 = f (tn+ h 2, un+ h · f1 2 ) f3 = f (tn+ h 2, un+ h 2f2) f4 = f (tn+ h, un+ h · f3) (44)

(57)

Metodi di Eulero esplicito in Matlab

Di seguito descriviamo i codici Matlab di Eulero esplicito e implicito, eseguiti da Atkinson, Han, Steward.

f u n c t i o n [ t , y]= eulero_esplicito ( t0 , y0 , t_end , h , fcn ) n = f i x( ( t_end−t0 ) /h ) +1;

t = l i n s p a c e( t0 , t0+(n−1)∗h , n ) ’ ; y = z e r o s( n , 1 ) ;

y ( 1 ) = y0 ;

f o r i = 2 : n

y ( i ) = y ( i−1) + h∗f e v a l( fcn , t ( i−1) , y ( i−1) ) ;

end

(58)

Metodo di Eulero implicito in Matlab

f u n c t i o n [ t , y]= eulero_implicito ( t0 , y0 , t_end , h , fcn , tol )

n = f i x( ( t_end−t0 ) /h ) + 1 ; t = l i n s p a c e( t0 , t0+(n−1)∗h , n ) ’ ;

y = z e r o s( n , 1 ) ; y ( 1 ) = y0 ;

f o r i =2: n

yt1 = y ( i −1) + h∗f e v a l( fcn , t ( i−1) , y ( i−1) ) ; count = 0 ; d i f f = 1 ;

w h i l e d i f f > tol && count < 10

yt2 = y ( i −1) + h∗f e v a l( fcn , t ( i ) , yt1 ) ;

d i f f = a b s( yt2−yt1 ) ; yt1 = yt2 ; count=count +1;

(59)

Metodo di Eulero implicito in Matlab

Osserviamo che

I 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.

I quale valore inizialedel metodo di punto fisso si sceglie il

valore fornito da Eulero esplicito.

(60)

Esercizio 1. Eulero esplicito

Si risolva utilizzando il metodo di Eulero esplicito con passi h uguali rispettivamente a 0.2, 0.1, 0.05



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

y (0) = 0 (45)

la cui soluzione `e Y (x ) = tan−1(x ).

Si calcolino (o plottino in scala semi-logaritmica)

I l’errore assoluto rispetto la soluzione esatta;

I l’errore relativo rispetto la soluzione esatta.

Per selezionati valori di x , ad esempio x = 10, si osservi il rapporto

(61)

Esercizio 2. Crank-Nicolson

Modificando opportunamente il metodo di Eulero implicito, si implementi il metodo di Crank-Nicolson.

(62)

Esercizio 3. Assoluta stabilit´

a

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

I 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.

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

I Si osservi che la mancata convergenza a 0 di Eulero implicito

`

(63)

Esercizio 4. Metodi di Adams

I Implementare i metodi di Adams-Bashforth e Moulton per

p = 3.

I Si consideri il problema di Cauchy



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

y (0) = 0 (47)

la cui soluzione `e Y (x ) = tan−1(x ).

Approssimare con tali metodi la soluzione di (47) nell’intervallo [0, 10], in N punti equispaziati xn, con

N = 2, 4, 8, 16, 32, descrivendone con un plot l’errore assoluto kyn− unk∞ (dove yn= y (xn) e un l’approssimazione fornita

dal metodo numerico).

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

(64)

Esercizio Facoltativo: Confronto di metodi.

Si risolva utilizzando il metodo di Eulero esplicito, implicito e quello dei trapezi, con passi h uguali rispettivamente a 0.5, 0.1, 0.01



y0(x ) = λy (x ) + (1 − λ) cos(t) − (1 + λ)sin(t), 0 ≤ x ≤ 5

y (0) = 1

(48)

Sapendo che la soluzione `e Y (x ) = sin(x ) + cos(x )

(65)

Bibliografia

K.E. Atkinson, W. Han, D.E. Steward Numerical Solution of Ordinary Differential Equations, Wiley, (2009). V. Comincioli, Analisi Numerica, metodi modelli applicazioni, Mc Graw-Hill, 1990.

Riferimenti

Documenti correlati

• 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).

quale valore iniziale del metodo di punto fisso si sceglie il valore fornito da Eulero esplicito... Si calcolino (o plottino in

L’ordine di una equazione differenziale ordinaria ` e il massimo ordine di derivazione che

Un sistema per ridurre l’errore insito nel metodo di Eulero consiste nell’inserire nella soluzione i termini di ordine superiore della serie di Taylor. Relativamente semplice

Vi `e da osservare che anche quando i coefficienti dell’equazione differenziale (e quindi dell’equazione caratteristica) sono reali, pu`o darsi che l’integrale generale risulti

INTEGRALE GENERALE Fissando i parametri si ottiene una soluzione particolare dell'equazione differenziale e viene chiamata INTEGRALE PARTICOLARE.. Nel caso

Per ricordarla meglio per` o presentiamo un metodo per ricavarsi la formula, piuttosto oscura,

Fioravante PATRONE http://www.diptem.unige.it/patrone homepage Dipartimento di Ingegneria della Produzione, http://tdg.dima.unige.it web teaching Termoenergetica e Modelli