Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lucia Gastaldi
Il problema di Cauchy
Problema di Cauchy
Sia I un intervallo di R, data f : [t0 , T ] × R → R, trovare
y : [t0 , T ] → R derivabile tale che
0
y (t) = f (t, y (t)) t ∈ [t0 , T ]
(C)
y (t0 ) = y0 .
Teorema
Se la funzione f è continua in [t0 , T ] × R e lipschitziana rispetto
a y , cioè esiste L > 0 tale che
page 2
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Definizione
Il problema di Cauchy si dice stabile se per ogni perturbazione
(ε0 , ε1 ) tale che:
page 3
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Proposizione
Se f : [t0 , T ] × R → R è continua su [t0 , T ] × R e lipschitziana
rispetto a y essendo L la costante di Lipschitz, cioè se vale
e L(T −t0 ) − 1
max |y (t) − z(t)| ≤ |ε1 | max |g (t)| + |ε0 |e L(T −t0 ) .
t∈[t0 ,T ] t∈I L
page 4
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 1
Dato N ∈ R. Si suddivida l’intervallo in N parti di ampiezza
h = (T − t0 )/N.
Scrivere un programma che realizzi il metodo di Eulero esplicito
mediante una function
function [t,u]=euleroesp(f,t0,T,y0,N)
dove
t, u sono i vettori che contengono i valori di tn e un per
n = 0, . . . , N.
f è il nome di una function che contiene l’espressione di
f (t, y ) in funzione di t, y.
t0, T sono gli estremi dell’intervallo I .
y0 è il valore iniziale.
N il numero dei passi da effettuare a passo costante.
page 6
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Traccia dell’esercizio
Calcolare h.
Calcolare i punti del vettore t.
Inizializzare il vettore u con il valore iniziale y0.
Ciclo for n=1:N
Calcolare il valore della componente u(n+1)
page 7
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 2
Sia N=[20 40 60 80 100 150 200 400].
Scrivere un programma di tipo script che per ogni valore di N:
calcola, usando la function dell’esercizio precedente, la
soluzione del seguente problema di Cauchy
0
y (t) = t − 2y 0 ≤ t ≤ 20
y (0) = 0.75.
per λ = −1, −5, −10. Verificare che per h < 2/|λ|, la soluzione
numerica tende a zero per n → ∞.
Esercizio 5
Risolvere con il metodo di Eulero esplicito l’equazione differenziale
10 − t 2
y 0 (t) = − y (t), t ∈ [0, 3]; y (0) = 1.
1 + t4
2
Riportare in un grafico la funzione |λ(t)| = 10−t1+t 4
e determinare
per quali valori di h la condizione di stabilità assoluta è soddisfatta
per ogni t ∈ [0, 3].
page 10
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
i
h
τn (h) = y 00 (ξn ).
r
2
|1 − hλ| > 1.
Osservazione
ad ogni passo si deve risolvere l’equazione non lineare
ξ − un − hf (tn+1 , ξ) = 0,
usando uno dei metodi per il calcolo degli zeri di una funzione.
page 11
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
La function euleroimp
[t,u]=euleroimp(f,t0,T,y0,N)
page 12
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Il metodo di Crank-Nicolson
h
un+1 = un + (f (tn , un ) + f (tn+1 , un+1 )).
2
Metodo implicito.
h2 000
Metodo del secondo ordine: τn (h) = − y (ξn ).
12
Regione di stabilità assoluta: ∀hλ < 0.
Derivazione: dalla formula di quadratura dei trapezi si ottiene:
Z tn+1
y (tn+1 ) = y (tn ) + f (τ, y (τ ))dτ
tn
∼ h
= y (tn ) + (f (tn , y (tn )) + f (tn+1 , y (tn+1 ))).
2
page 13
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
La function cranknic
[t,u]=cranknic(f,t0,T,y0,N)
page 14
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Il metodo di Heun
Metodo di Heun
h
un+1 = un + (f (tn , un ) + f (tn+1 , un + hf (tn , un )))
2
Metodo esplicito.
Metodo del secondo ordine:
τn (h) = C h2 y 000 (ξn ). −2
page 16
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 6
Analizzare il comportamento dell’errore in funzione di h per almeno
uno dei metodi seguenti: Eulero implicito, Heun, Crank-Nicolson e
Runge-Kutta. A tal scopo usare i comandi
[t,u]=euleroimp(f,t0,T,y0,N)
[t,u]=Heun(f,t0,T,y0,N)
[t,u]=cranknic(f,t0,T,y0,N)
[t,u]=RK4(f,t0,T,y0,N)
page 17
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 7
Plottare in scala bilogaritmica l’errore di approssimazione che si
ottiene risolvendo con il metodo di Runge-Kutta del 4o ordine la
seguente equazione differenziale:
y t +1
y0 = +5 per t ∈ [0, 1], y (0) = 0
t +1 1 + 25t 2
la cui soluzione esatta è y (t) = (t + 1) arctan(5t).
Usare i seguenti valori per il numero di passi
N=[10 20 40 80 125 250 500 750]
N=[N 1000 5000 7500 10000 10500 11000 11500 12000].
page 18
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
h
un+1 = un + (23f (tn , un ) − 16f (tn−1 , un−1 ) + 5f (tn−2 , un−2 ))
12
page 19
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
h
un+1 = un + (5f (tn+1 , un+1 ) + 8f (tn , un ) − f (tn−1 , un−1 ))
12
h
un+1 = un + (9f (tn+1 , un+1 ) + 19f (tn , un )
24
− 5f (tn−1 , un−1 ) + f (tn−2 , un−2 ))
page 20
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 21
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 22
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 9
Sono date le seguenti equazioni differenziali:
4y 2 4y 2
y0 = − 4y + t/2 y0 = − − 4y + t/2
1 + y2 1 + y2
y (0) = 1 y (0) = 1
page 23
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Problemi stiff
ode15s Metodo multistep basato su una formula di tipo BDF.
ode23s Metodo ad un passo.
Opzioni
odeset Crea o modifica le OPTIONS.
page 24
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
F=@(t,y) (1-t*y-t^2*y^2)/t^2;
Applicare un solutore mediante i comandi
[t,u] = ode23(@F,[t0 T],y0)
[t,u] = ode23(F,[t0 T],y0)
Usare il comando plot per vedere i risultati: plot(t,u)
page 25
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Input
odefun function in cui si valuta f (t, y )
tspan vettore contenente gli estremi di integrazione
y0 dato iniziale (vettore colonna)
bla
Output
t vettore colonna degli istanti t in cui viene
calcolata la soluzione approssimata
u array contenente la soluzione, le righe sono le
componenti di y ad un certo istante t.
page 26
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Argomenti addizionali
[t,u] = solver(odefun,tspan,y0,options)
page 27
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
odeset
page 28
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Porre: a = 1, b = 1, c = 2, d = 3
α = 0.5, 0.7, 1.4, 2.6
β=1
page 29
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 30
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Problema
Sia f : I × Rn → R. Consideriamo l’equazione differenziale:
page 31
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Osserviamo che
y2 (t) = y 0 (t) = y10 (t),
...
0
yn (t) = y (n−1) (t) = yn−1 (t).
page 32
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 33
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 34
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 10
Posto ωn = 1, e α = β = 0, calcolare, nell’intervallo [0, 50], la
soluzione dell’equazione differenziale mediante la function ode45 e
il metodo di Eulero esplicito con passo h = 0.02.. Considerare i
seguenti valori di δ nell’intervallo [0, 2]:
delta=[0,0.1,0.2,0.5,1,1.5,2]. Plottare le soluzioni ottenute
in un grafico in funzione di t e rappresentarle nel piano delle fasi.
Calcolare inoltre:
il valore finale;
la massima sovraelongazione: differenza fra il valore massimo
e il valore finale;
Istante di massima sovraelongazione Tm : istante in cui si
raggiunge il massimo.
page 35
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
find
Esempio
Posto x=linspace(0,2*pi) e y=sin(x), il comando
K=find(y==1)
trova l’indice K per cui si ha y(K)=1. La componente x(K) è
quindi il valore di x per cui vale sin(x(K))=1.
page 36
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Sistema stiff
Si consideri il sistema y 0 = Ay per t ∈ [0, 6] con y (0) = (1, 1)> e
0 1
A= con λ1 λ2 < 0.
−λ1 λ2 λ1 + λ2
λ2 − 1 1 − λ1
C1 = , C2 = .
λ2 − λ1 λ2 − λ1
page 37
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 38
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Oscillatori accoppiati
Consideriamo due oscillatori, ciascuno dei quali ha una frequenza
naturale data dalle costanti ω1 e ω2 . Lo stato degli oscillatori è
descritto dall’angoli di fase θ1 e θ2 . Le seguenti equazioni
descrivono l’accoppiamento dei due oscillatori:
θ10 = ω1 + k1 sin(θ2 − θ1 )
θ20 = ω2 + k2 sin(θ1 − θ2 ).
θ10 = 1 + sin(θ2 − θ1 )
θ20 = 1.5 + sin(θ1 − θ2 )
θ1 (0) = 3, θ2 (0) = 0.
Esercizio 12
page 41
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 13
page 42
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 14
page 43
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 44
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 45
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 46
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
A ω y (0) y 0 (0)
0 0 2.4 0
0.5 5.3 3.1 0
10 100 0.1 0
2 100 0.1 0
0.5 100 0.05 0
page 48
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
page 50
Il problema di Cauchy Metodi numerici Stabilità assoluta Function di Matlab per la soluzione di ODE Applicazioni
Esercizio 16
Ricondurre il sistema di 2 equazioni differenziali del secondo
ordine ad un sistema di 4 equazioni differenziali del primo
ordine.
Usare le function di Matlab ode45 oppure ode23s per
calcolare la soluzione.
Riportare l’orbita dell’Apollo in un grafico.
Osservato che con i valori di default l’orbita non è
perfettamente periodica, modificare la tolleranza relativa per
l’errore ponendo nelle opzioni RelTol=1.e-5.
Suggerimenti Usare le seguenti options per produrre il grafico
desiderato:
opt=odeset(’OutputFcn’,’odephas2’,’OutputSel’,[n m])
essendo n e m gli indici delle incognite associate a x(t) e a y (t).
page 51