Professional Documents
Culture Documents
Metodi Numerici
per le Equazioni Differenziali
Dott. Marco Caliari
a.a. 2012/13
La versione pi`
u aggiornata (al 9 agosto 2013) si trova
allindirizzo
http://profs.sci.univr.it/caliari/aa1213/equazioni differenziali/dispense.pdf
Indice
0
Preliminari
8
8
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
14
15
16
19
21
. . . . . . . . . . . . . . . . . . . 22
7 Esponenziale di matrice
7.1 Formula delle variazioni delle costanti . . .
7.2 Calcolo di exp(A) . . . . . . . . . . . . . . .
7.2.1 Matrici piene, di modeste dimensioni
7.2.2 Matrici sparse, di grandi dimensioni .
8 Esercizi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
24
24
26
28
INDICE
BVPs
30
9 Introduzione
31
10 Differenze finite
10.1 Differenze finite centrate del secondo ordine . . . . . . .
10.2 Convergenza per un problema modello . . . . . . . . . .
10.2.1 Unicit`a . . . . . . . . . . . . . . . . . . . . . . . .
10.2.2 Esistenza . . . . . . . . . . . . . . . . . . . . . .
10.2.3 Regolarit`a . . . . . . . . . . . . . . . . . . . . . .
10.2.4 Esistenza ed unicit`a per il problema discretizzato
10.2.5 Consistenza . . . . . . . . . . . . . . . . . . . . .
10.2.6 Propriet`a di A . . . . . . . . . . . . . . . . . . . .
10.2.7 Stabilit`a . . . . . . . . . . . . . . . . . . . . . . .
10.2.8 Convergenza . . . . . . . . . . . . . . . . . . . . .
10.3 Altre differenze finite . . . . . . . . . . . . . . . . . . . .
10.3.1 Su nodi non equispaziati . . . . . . . . . . . . . .
10.3.2 Non centrate . . . . . . . . . . . . . . . . . . . .
10.3.3 Di ordine pi`
u elevato . . . . . . . . . . . . . . . .
10.4 Condizioni al bordo . . . . . . . . . . . . . . . . . . . . .
10.4.1 Condizioni di Dirichlet . . . . . . . . . . . . . . .
10.4.2 Condizioni di Neumann . . . . . . . . . . . . . .
10.4.3 Importanza delle condizioni al bordo . . . . . . .
10.5 Un esempio: lequazione della catenaria . . . . . . . . . .
10.5.1 Iterazioni di punto fisso . . . . . . . . . . . . . . .
10.5.2 Metodo di Newton . . . . . . . . . . . . . . . . .
10.6 Norme ed errori . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
32
35
35
36
36
37
38
38
38
39
40
40
41
41
41
41
42
43
44
45
45
46
11 Metodo di shooting
48
11.1 Metodo di bisezione . . . . . . . . . . . . . . . . . . . . . . . . 48
11.2 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . . . 49
11.3 Problema ai limiti con frontiera libera . . . . . . . . . . . . . . 50
12 Equazione di Poisson
52
12.1 Equazione di Poisson bidimensionale . . . . . . . . . . . . . . 52
12.1.1 Condizioni al bordo di Dirichlet . . . . . . . . . . . . . 52
12.1.2 Condizioni al bordo miste . . . . . . . . . . . . . . . . 54
13 Metodi variazionali
56
13.1 Un problema modello . . . . . . . . . . . . . . . . . . . . . . . 56
13.1.1 Metodo di approssimazione variazionale . . . . . . . . . 58
INDICE
13.1.2 Estensione al caso bidimensionale
13.2 Metodi spettrali . . . . . . . . . . . . . .
13.2.1 Trasformata di Fourier . . . . . .
13.2.2 Trasformata di Fourier discreta .
13.3 Metodi di collocazione . . . . . . . . . .
13.3.1 Condizioni al bordo . . . . . . . .
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
66
68
69
76
77
14 Esercizi
81
83
ODEs
15 Introduzione
84
15.1 Riduzione in forma autonoma . . . . . . . . . . . . . . . . . . 85
15.2 Equazioni di ordine superiore al primo . . . . . . . . . . . . . 85
16 Metodi ad un passo
16.1 Metodo di Eulero . . . . . . . . . . . . . .
16.2 Metodo dei trapezi . . . . . . . . . . . . .
16.3 theta-metodo . . . . . . . . . . . . . . . .
16.3.1 Risoluzione di un metodo implicito
16.3.2 Newton inesatto e passo variabile .
16.3.3 Caso lineare . . . . . . . . . . . . .
16.4 Verifica dellimplementazione . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
86
86
88
90
92
94
95
95
17 Metodi multistep
17.1 Metodi di Adams-Bashforth . . . . . . .
17.2 Metodi lineari multistep . . . . . . . . .
17.2.1 Metodi BDF . . . . . . . . . . . .
17.3 Consistenza e stabilit`a . . . . . . . . . .
17.4 Influenza degli errori di arrotondamento
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
97
97
99
101
103
108
.
.
.
.
.
18 Metodi di Runge-Kutta
18.1 Metodi di RungeKutta espliciti . . . . . . . . . . . . . . . .
18.2 Un esempio di metodo di RungeKutta implicito . . . . . . .
18.3 Metodi di Runge-Kutta embedded . . . . . . . . . . . . . . .
110
. 110
. 115
. 118
19 A-stabilit`
a
19.1 A-stabilit`a dei metodi di Runge-Kutta espliciti . . . . .
19.2 A-stabilit`a dei metodi lineari multistep . . . . . . . . .
19.3 Equazioni stiff . . . . . . . . . . . . . . . . . . . . . . .
19.3.1 Risoluzione di un metodo implicito per problemi
122
. 124
. 126
. 127
. 129
. . .
. . .
. . .
stiff
INDICE
20 Integratori esponenziali
130
21 Esercizi
133
PDEs
22 Equazioni ADR
22.1 Equazione del calore . . . . . . . . . . . . . . . . .
22.1.1 Esistenza di una soluzione . . . . . . . . . .
22.1.2 Unicit`a della soluzione . . . . . . . . . . . .
22.2 Metodo di Fourier . . . . . . . . . . . . . . . . . . .
22.3 Metodo delle linee . . . . . . . . . . . . . . . . . . .
22.3.1 Differenze finite . . . . . . . . . . . . . . . .
22.3.2 Condizioni al bordo di Dirichlet . . . . . . .
22.3.3 Condizioni al bordo di Neumann (costanti) .
22.4 Equazione di trasporto-diffusione . . . . . . . . . .
22.4.1 Stabilizzazione mediante diffusione artificiale
22.4.2 Elementi finiti . . . . . . . . . . . . . . . . .
22.4.3 Errori spaziali e temporali . . . . . . . . . .
22.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . .
136
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
137
. 137
. 137
. 140
. 141
. 142
. 143
. 144
. 145
. 145
. 147
. 150
. 151
. 152
Temi desame
154
Bibliografia
166
Bibliografia
167
Parte 0
Preliminari
Capitolo 1
Interpolazione polinomiale a
tratti
Data una funzione f : [a, b] R e uninsieme {xi }m
i=1 [a, b] di nodi ordinati
(xi1 < xi ), consideriamo linterpolante polinomiale a tratti pck1 f di grado
k 1. Su ogni intervallo [xi , xi+1 ] di lunghezza hi = xi+1 xi essa `e il
polinomio di grado k 1
ai,1 (x xi )k1 + ai,2 (x xi )k2 + . . . + ai,k1 (x xi ) + ai,k .
(1.1)
1.1
Dati i vettori [x1 , . . . , xm ]T e [f1 , . . . , fm ]T , nellintervallo [xi , xi+1 ] linterpolante lineare a tratti coincide con il polinomio di grado uno
fi+1 fi
(x xi ) + fi
hi
Pertanto, si costruisce la corrispondente struttura pp con il comando
> pp = mkpp(x,[(f(2:m)-f(1:m-1))./h,f(1:m-1)])
8
1.1.1
Errore di interpolazione
f (n) ()
(x x1 ) (x x2 ) . . . (x xn )
n!
f ()
(x xi )(x xi+1 )
2
(1.2)
e pertanto
|f (x) pc1 f (x)|
f () h2
,
[xi ,xi+1 ]
2 4
max
x [xi , xi+1 ]
f ()
[(x xi+1 ) + (x xi )]
2
e pertanto
|f (x) (pc1 f ) (x)|
f ()
2h,
[xi ,xi+1 ]
2
max
da cui
kf (pc1 f ) k hkf k
x [xi , xi+1 ]
Capitolo 2
Formule di quadratura
gaussiana
Dato un intervallo (a, b) (eventualmente anche non limitato) e una funzione
peso w(x) non negativa su (a, b), si considera il prodotto scalare
(f, g) =
f (x)g(x)w(x)dx
con lipotesi
Z
k0
Allora, esiste ununica famiglia {pj (x)}j , pj (x) polinomio di grado j, ortonormale rispetto al prodotto scalare
Z
pj (x)pi (x)w(x)dx = ij
ove Ln (x) `e il polinomio di Lagrange che vale 1 in xn e zero in tutti gli altri
nodi, costituiscono una formula di quadratura gaussiana esatta fino al grado
polinomiale 2m 1, cio`e
Z
pj (x)w(x)dx =
m
X
pj (xn )wn ,
n=1
10
0 j 2m 1
11
In particolare
ij =
pj (x)pi (x)w(x)dx =
m
X
n=1
0 i, j m 1
Nel caso in cui (a, b) sia limitato, esiste ununica formula di quadratura esatta
fino al grado polinomiale 2m 3 che usa come nodi x1 = a, xm = b e gli zeri
m1
{
xn }n=2
del polinomio di grado m 2 della famiglia di polinomi ortogonali
rispetto alla funzione peso w(x)(x a)(b x). In questo caso si ha, in
particolare,
ij =
pj (x)pi (x)w(x)dx =
m
X
pj (
xn )pi (
xn )wn ,
n=1
0im3
0j m1
p
La famiglia {j (x)}m
e ovviamente ortonormale
j=1 , ove j (x) = pj1 (x) w(x) `
rispetto al prodotto scalare
(f, g) =
f (x)g(x)dx
e per essa valgono le osservazioni fatte sopra riguardo al calcolo degli integrali.
2.1
f (x)
dx
1 x2
j1
+ (n 1),
2
1nm
12
+ (n 1)
(2n 1)
2
xn = cos
= sin
,
m
2
2m
1nm
(la seconda formula produce nodi anche numericamente simmetrici) e i corrispondenti pesi di quadratura sono costanti e valgono
wn =
,
m
1nm
(n 1)
(n 1)
= sin
,
xn = cos
m1
2
m1
1nm
e i corrispondenti pesi
per n = 1 o n = m
2(m 1)
wn =
per 2 n m 1
m1
Capitolo 3
Metodi iterativi per sistemi di
equazioni lineari
I metodi iterativi per la soluzione del sistema lineare
Ax = b
(3.1)
Una strategia generale per costruire la successione {x(l) }l `e basata sullo splitting A = P M , ove P `e non singolare. Assegnato x(1) , il termine x(l+1) `e
calcolato ricorsivamente come
P x(l+1) = M x(l) + b,
l1
(3.2)
B = P 1 M = I P 1 A ,
3.1
Metodi di Richardson
14
(3.3)
In questo contesto, P viene chiamata matrice di precondizionamento o precondizionatore di A e viene scelta in modo che la matrice di iterazione
B = I P 1 A abbia un raggio spettrale minore di 1 e la risoluzione di
(3.3) sia facile.
Una generalizzazione dello schema (3.3) `e il metodo di Richardson: dato
x(1) , x(l+1) `e calcolato ricorsivamente come
P (x(l+1) x(l) ) = r(l) ,
ove `e un opportuno parametro di accelerazione. Dati x(1) e r(1) = bAx(1) ,
lalgoritmo per calcolare x(l+1) `e
P z (l) = r(l)
x(l+1) = x(l) + z (l)
(3.4)
3.1.1
15
l =
z (l) r(l)
T
z (l) Az (l)
z (l) r(l)
l =
z (l) Az (l)
(l+1)
x
= x(l) + l z (l)
(3.5)
3.1.2
p(i) Ap(j) = 0,
i 6= j
l+1 =
p(l+1)
z (l+1) r(l+1)
T
z (l) r(l)
(l+1)
=z
+ l+1 p(l)
(3.6)
16
3.1.3
Test darresto
(3.7)
che coincide con il precedente nel caso in cui come x(1) venga scelto il vettore
di zeri.
Capitolo 4
Memorizzazione di matrici
sparse
Sia A una matrice sparsa di ordine N con m elementi diversi da zero. Esistono
molti formati di memorizzazione di matrici sparse. Quello usato da GNU
Octave `e il Compressed Column Storage (CCS). Consiste di tre array: un
primo, data, di lunghezza m contenente gli elementi diversi da zero della
matrice, ordinati prima per colonna e poi per riga; un secondo, ridx, di
lunghezza m contenente gli indici di riga degli elementi di data; ed un terzo,
cidx, di lunghezza N + 1, il cui elemento i-esimo (i < N + 1) `e la posizione
dentro data del primo elemento della colonna i e lelemento (N +1)-esimo `e il
numero totale di elementi diversi da zero incrementato di uno. Per esempio,
alla matrice
1 0 0 0
0 2 3 0
A=
4 0 5 6
0 0 0 7
corrispondono i vettori
data = [1, 4, 2, 3, 5, 6, 7]
ridx = [1, 3, 2, 2, 3, 3, 4]
cidx = [1, 3, 4, 6, 8]
Talvolta, soprattutto in linguaggi di calcolo con array che iniziano dallindice
0, gli array ridx e cidx hanno elementi decrementati di uno.
In GNU Octave, il formato CCS e limplementazione del prodotto matrice-vettore sono automaticamente usati dalla function sparse e dalloperatore *, rispettivamente.
17
18
4.1
v11
v21
V = ..
.
v12
v22
..
.
v13
v23
..
.
vN 1 vN 2 vN 3
v12 v23 0
0
...
0
v11 v22 v33
0
...
0
..
...
...
.
0
v
v
21
32
. .
..
...
...
..
.. ...
.
0 . . . 0 vN 2 1 vN 1 2 vN 3
0
... ...
vN 1 1 vN 2
Capitolo 5
Sistemi tridiagonali
La risoluzione di sistemi tridiagonali
Ax = b
con
a1
b1
0
A=
...
0
0
c1 0 . . .
...
0
a2 c 2
0
...
0
..
... ... ...
...
.
..
... ... ...
...
.
... ...
bn2 an1 cn1
... ... 0
bn1 an
1 0 ... ... 0
1 c1 0
...
0
1 1 0
0 2 c2 . . .
. . . 0
0
.
.
..
... ... ... .
... ... ...
. , U = ..
.
L=0
. .
. . . . . . . . ...
..
0 . . . . . . n1 cn1
0 . . . 0 n1 1
0 ... ...
0
n
con
1 = a1
k1 = bk1 /k1 ,
k = ak k1 ck1 , k = 2, 3, . . . , n
20
e
xn = yn /n
xk = (yk ck xk+1 )/k , k = n 1, n 2, . . . 1
con un ulteriore costo O(2n) flops. GNU Octave usa automaticamente questo
algoritmo per le matrici tridiagonali.
Capitolo 6
Metodo di Newton per sistemi
di equazioni non lineari
Consideriamo il sistema di equazioni non lineari
f1 (x1 , x2 , . . . , xN ) = 0
f2 (x1 , x2 , . . . , xN ) = 0
..
fN (x1 , x2 , . . . , xN ) = 0
che pu`o essere riscritto, in forma compatta,
f (x) = 0 .
Dato x(1) , il metodo di Newton per calcolare x(r+1) `e
J (r) x(r) = f (x(r) )
(6.1)
Jij =
fi (x(r) )
(r)
xj
(6.2)
22
f = @(x) ... % f
J = @(x) ... % jacobiano di f
x0 = ... % guess iniziale
x = x0;
errest = -J(x) \ f(x);
while (norm(errest,inf) > Newt_tol)
x = x + errest;
errest = -J(x) \ f(x);
end
6.1
Capitolo 7
Esponenziale di matrice
Data una matrice quadrata A RN N , si definisce
exp(A) =
X
Aj
j=0
j!
7.1
t>0
(7.1)
Infatti, si ha
(tt0 )a
y (t) = ae
y0 +a
t0
23
24
Si osservi che
Z t
(t )a
t0
ove
t
1 (t )a
ae
d = e
=
a
t0
t0
(tt
)a
0
1
e
1
= 1 e(tt0 )a = (t t0 )
=
a
(t t0 )a
= (t t0 )1 ((t t0 )a) ,
1
d =
a
(t )a
ez 1 X z j
1 (z) =
=
z
(j + 1)!
j=0
e, analogamente,
Z
(7.3)
t0
ove
2 (z) =
ez 1 z X z j
=
z2
(j + 2)!
j=0
(7.4)
t>0
7.2
Calcolo di exp(A)
Come per la risoluzione di sistemi lineari, non esiste il modo per calcolare
exp(A), ma diversi modi, ognuno adatto a particolari situazioni.
7.2.1
25
(7.5)
z2 z3
+
+ . . . (b1 z + 1) = a1 z + a2
1+z+
2
6
z2
b1 z + 1 + b1 z 2 + z +
+ o(z 2 ) = a1 z + a2
2
da cui
1 = a2
b 1 + 1 = a1
b1 + 1 = 0
2
Lapprossimazione di Pade si estende banalmente al caso matriciale. Considerando sempre il caso p = q = 2, si ha
exp(A) B = (b1 A + I)1 (a1 A + a2 I) ,
cio`e B `e soluzione del sistema lineare (b1 A + I)B = a1 A + a2 I.
Lapprossimazione di Pade `e accurata solo quando |z| < 1/2 (o, nel caso
matriciale, kAk2 < 1/2). Per la funzione esponenziale esiste una tecnica,
chiamata scaling and squaring che permette di aggirare il problema. Si usa
infatti la propriet`a
j
2
j 2
ez = ez/2 = ez/2
26
Se |z| > 1/2, allora |z|/2j < 1/2 per j > log2 (|z|) + 1. Si calcola dunque
j
lapprossimazione di Pade di ez/2 e poi si eleva al quadrato j volte. Per la
funzione 1 vale
z
1
1 (z) = (ez/2 + 1)1
2
2
Anche lapprossimazione di Pade matriciale ha costo O(N 3 ). In GNU Octave
si usa una variante di questa tecnica nel comando expm.
7.2.2
27
|m i | = max
[a,b]
m1
Y
i=1
| i | ,
Capitolo 8
Esercizi
1. Implemetare le functions [data,ridx,cidx] = full2ccs(A) e [A] =
ccs2full(data,ridx,cidx) e le functions che, dati data, ridx e cidx,
implementano i prodotti matrice vettore Ax e AT x.
2. Si risolvano 6 sistemi lineari con le matrici di Hilbert di ordine N =
4, 6, 8, 10, 12, 14 (hilb(N)) e termine noto scelto in modo che la soluzione esatta sia il vettore [1, 1, . . . , 1]T usando il comando \ di GNU
Octave, il metodo del gradiente precondizionato e il metodo del gradiente coniugato precondizionato. Per questi ultimi due, si usi una
tolleranza pari a 106 , un numero massimo di iterazioni pari a 2000,
il precondizionatore diagonale e un vettore iniziale x(1) di zeri. Si riporti, per ogni N , il numero di condizionamento della matrice, lerrore
in norma infinito rispetto alla soluzione esatta e il numero di iterazioni
dei metodi iterativi.
3. Risolvere il sistema non lineare
(
f1 (x1 , x2 ) = x21 + x22 1 = 0
f2 (x1 , x2 ) = sin(x1 /2) + x32 = 0
con il metodo di Newton (6.1). Si usi una tolleranza pari a 106 , un
numero massimo di iterazioni pari a 150 e un vettore iniziale x(1) =
[1, 1]T . Si risolva lo stesso sistema non lineare usando sempre la matrice
Jacobiana relativa al primo passo e aggiornando la matrice Jacobiana
ogni r iterazioni, ove r `e il pi`
u piccolo numero di iterazioni che permette
di ottenere la stessa soluzione con la tolleranza richiesta calcolando solo
due volte la matrice Jacobiana.
4. Si implementi una function [a,b] = padeexp(p) che restituisce i coef28
29
ficienti dellapprossimazione razionale di Pade (7.5) (con p = q) per la
funzione esponenziale.
Parte 1
BVPs
(Problemi ai limiti)
30
Capitolo 9
Introduzione
Consideriamo il seguente problema ai limiti (boundary value problem)
u(b) = u
b
u (b) = u
b
Con ununica notazione si pu`o scrivere
u(b) + u (b) =
b
b
b
x (a, b)
31
Capitolo 10
Differenze finite
10.1
da cui
u(xi+1 ) u(xi1 )
(1)
i
2h
2
(1)
xi ) `e lerrore locale (u(3) (
xi ) + u(3) (
xi ) = 2u(3) (
xi ), per
ove i = h6 u(3) (
un opportuno xi , per il teorema dei valori intermedi). Analogamente, sia
u C 4 ([a, b]). Si ha
(1)
u (xi ) = u(xi ) i
h3
h4
h2
u (xi ) + u(3) (xi ) + u(4) (
xi )
2
6
24
h2
h3 (3)
h4 (4)
da cui
(2)
u (xi ) = 2 u(xi ) i
(2)
(10.1)
10
diff12.m
0.1
0.01
10
20
50
100
ui = f (xi , ui , ui ),
u 1 = ua
u = u
m
b
2im1
34
diff12ns.m
0.1
0.01
0.001
10
20
50
100
u1
61
6
6 u2 7
7
6
6
6 u3 7
1 6
7
6 0
6
7=
6
6
.
.
7
6
2h 6 ..
.
7
6 .
6
6
5
4u
m1
4 0
um
...
1
..
.
...
0
..
.
0
1
..
0
..
.
1
.
0
07
7
.7
.. 7
7
7,
7
07
7
15
2
3
2 u 1
61
6 2 u 2 7
6
7
6
6
6 2 u 3 7
1 6
7
6
60
7= 2 6
6
..
7
6
h 6 ..
.
7
6
6.
6
5
42 u
m1
40
2 u m
...
1
..
.
...
2
..
.
0
1
..
.
1
0
..
.
2
07
7
.7
.. 7
7
7
7
07
7
15
ove la prima e lultima riga devono essere trattate a parte, solitamente per
includere le condizioni al bordo. Le matrici relative alle approssimazione
della derivata prima e seconda possono essere costruite con i comandi
> toeplitz(sparse(1,2,-1/(2*h),1,m),sparse(1,2,1/(2*h),1,m));
e
> toeplitz(sparse([1,1],[1,2],[-2/h^2,1/h^2],1,m));
rispettivamente.
10.2
35
u(b) = u
b
x (a, b)
(10.2)
con q, g C 0 ([a, b]), q(x) 0 per x [a, b]. La funzione q(x) dipende dal
materiale di cui `e fatta la trave e g(x) `e la densit`a di carico trasversale. La soluzione u(x) rappresenta il momento flettente. Vogliamo studiare lesistenza,
lunicit`a e la regolarit`a della soluzione analitica.
10.2.1
Unicit`
a
Se u1 (x) e u2 (x) sono due soluzioni di (10.2), allora z(x) = u1 (x) u2 (x)
soddisfa il problema omogeneo
z (x) + q(x)z(x) = 0,
z(a) = 0
z(b) = 0
x (a, b)
(10.3)
z (x)z(x)dx +
q(x)z(x)2 dx =
a
a
Z b
Z b
b
q(x)z(x)2 dx =
z (x) dx +
= [z (x)z(x)]a +
a
a
Z b
Z b
=
z (x)2 dx +
q(x)z(x)2 dx
0=
Poiche le funzioni integrande sono non negative, si ha che deve essere necessariamente z(x) 0.
Dunque, u1 (x) u2 (x).
36
10.2.2
Esistenza
z1 (a) z2 (a)
z1 (b) z2 (b)
`e non singolare.
La soluzione generale di u (x) + q(x)u(x) = g(x) `e u(x) = c1 z1 (x) +
c2 z2 (x) + s(x) (s(x) soluzione particolare che si ottiene dalla tecnica delle
variazioni delle costanti, cio`e supponendo s(x) = c1 (x)z1 (x) + c2 (x)z2 (x),
c1 (x) e c2 (x) da ricavare). La soluzione di (10.2) si ottiene imponendo
(
c1 z1 (a) + c2 z2 (a) = ua s(a)
c1 z1 (b) + c2 z2 (b) = ub s(b)
cio`e risolvendo un sistema lineare non singolare che ammette dunque (unica)
soluzione.
10.2.3
Regolarit`
a
u() = 1
37
+ q i u i = gi , 2 i m 1
h2
u1 = u a
um = u b
ove qi = q(xi ) e gi = g(xi ).
10.2.4
Esistenza ed unicit`
a per il problema discretizzato
1
0
...
1 2 + q2 h2
1
1 0
1
2 + q3 h2
...
...
h2 ...
0
...
0
0
...
...
...
0
...
...
1
...
0
...
1
0
2 + qm1 h2
0
0
u1
ua /h2
u2 g2
0
..
u3 g3
.
.. = ..
0 . .
1 um1 gm1
um
ub /h2
1
6
6
6
6
6
1 6
6
h2 6
6
6
6
6
4
2 + q 2 h2
2 + q 3 h2
..
.
..
.
0
0
..
.
0
...
...
...
...
0
..
..
...
..
.
..
.
0
...
1
0
1
..
..
2 + qm2 h2
1
0
.
..
0
0
1
2 + qm1 h2
2
3 2
3
u2
g2 + ua /h2
7
76 u 7 6
7
g
3
76 3 7 6
7
76 . 7 6
7
.
76 . 7 6
7
.
76 . 7 6
.
7
76
=6
7
76 . 7
.
7
6
7
76 . 7 6
.
7
76 . 7 6
.
7
74
5
7 um2 5 4
gm2
5
2
um1
gm1 + ub /h
cio`e
Au = g
(10.4)
38
z T Az =
i=2
10.2.5
Consistenza
h2
u(x1 ) = ua
u(xm ) = ub
da cui si deduce che il metodo numerico `e consistente di ordine 2.
10.2.6
Propriet`
a di A
` possibile usare
A `e una matrice simmetrica e diagonalmente dominante. E
i metodi iterativi, semi-iterativi e diretti senza pivoting per la soluzione del
sistema lineare. Inoltre, `e una M -matrice, cio`e i suoi elementi extra-diagonali
sono non positivi e la sua inversa ha elementi non negativi.
10.2.7
Stabilit`
a
39
v (x) = 1
v(a) = 0
v(b) = 0
x[a,b]
(b a)2
8
10.2.8
Convergenza
40
(2)
(2)
ove h = [2,h , . . . , m1,h ]T , si deduce eh = A1 h . Combinando i risultati di consistenza e stabilit`a, si ottiene, per il problema (10.2) discretizzato
mediante differenze finite centrate del secondo ordine,
keh k
(b a)2 h2 (4)
ku k
8
12
10.3
10.3.1
da cui
u(xi+1 ) u(xi1 ) 1 h2i h2i1
1 h3i1 + h3i (3)
u (xi ) =
u (xi )
u (xi )+
hi1 + hi
2 hi1 + hi
6 hi1 + hi
+ O(max{h4i1 , h4i })
u (xi )
u(xi+1 )u(xi )
i1 )
u(xi )u(x
hi
hi1
hi1 +hi
2
u (x1 )
u (x2 )
u (x3 )
..
.
0
..
.
0
1
h2 +h3
h11
+h2
u (xm1 )
u (xm )
..
.
...
0
..
1
h2 +h3
1
h1 +h2
..
1
hm2 +hm1
...
..
.
..
.
0
0
..
.
u(x1 )
u(x2 )
u(x3 )
..
.
1
u(xm1 )
hm2 +hm1
u(xm )
41
10.3.2
Non centrate
2u(x
)
+
u(x
)
1
2
3
u (x1 ) =
+ O(h) =
h2
2u(x1 ) 5u(x2 ) + 4u(x3 ) u(x4 )
=
+ O(h2 )
h2
u (x1 ) =
10.3.3
Di ordine pi`
u elevato
10.4
Condizioni al bordo
10.4.1
Condizioni di Dirichlet
u (x) = 1, x (a, b)
u(a) = ua
u(b) = u
b
42
2 1
0 0
1 2 1 0
h2 ... . . . . . . . . .
0 0 1
0
bordo diventa
0
1
u1
0 u2 1
. . . .. .. ..
. . .
. = .
...
. .
0
. .
2 1 um1 1
1
um
1 0
0 0
1 2 1 0
.
.
.
.
1
0 . . . . . . . .
h2 ... . . . . . . . . . . . .
0 0 1 2
0
ai nodi al bordo
0
u1
ua /h2
u2 1
0
..
.. ..
. . .
. = .
. .
0
. .
1 um1 1
0 1
um
ub /h2
M 1
0 0 0
u1
M ua
1 2 1 0 0 u2 1
. . . . . . . . . . . . .. .. ..
1
. . .
0
0 0 1 2 1 um1 1
0 0 0
1 M
um
M ub
Per poter usare lalgoritmo di Choleski, `e inoltre necessario che la matrice
sia definita positiva. Conviene allora considerare il problema u (x) = 1.
10.4.2
Condizioni di Neumann
u2 u 0
2h
43
u(x)
u3
u2
u1
u0
y = ua (x x2 ) + u2
h
x0
h
a = x1
x2
x3
=
h2
2h
h2
2h
2u2 2u1 2hua
ua = 1
=
h2
da cui
10.4.3
2u2 2u1
2ua
=
1
+
+ ua
h2
h
x (1, 1)
44
u (1) = 1
u (1) = 1
10.5
u
(x)
=
1 + u (x)2 ,
u(1) = 1
u(1) = 1
x (1, 1)
u1
1
q
u1 2
u2
1 + u32h
.
.
..
A .
=b
..
um um2 2
um1
1+
2h
1
um
ove
1
1
1
0
A = 2 .
h ..
0
0
0
0 0 0
2 1 0 0
. . . . . . . . . . . . ..
.
,
... ... ... ...
0
0 1 2 1
0 0
0 1
e b = [1/h2 , 0, . . . , 0, 1/h2 ]T .
0
1
1
0
B=
2h ...
0
0
0
0
...
...
0
1
...
...
0
0
0
0
... ...
... ...
1 0
0
0
0
0
..
1
0
10.5.1
45
Si pu`o tentare di risolvere il sistema di equazioni F (u) = 0 mediante iterazioni di punto fisso, che consistono nel risolvere il sistema lineare
q
Au(r+1) = 1 + (Bu(r) )2 + b
10.5.2
Metodo di Newton
Volendo applicare il metodo di Newton (a convergenza quadratica) `e necessario calcolare lo jacobiano di F (u), che risulta essere
JF (u(r) ) = A D(u(r) )B
ove
(r)
p (Bu )i
, i=j
dij (u(r) ) =
1 + (Bu(r) )2i
0,
i=
6 j
errore
h2
0.9
u(x)
0.8
0.7
1e-4
0.6
0.5
0.4
-1
-0.5
0.5
1e-5
20
30
40
50
60
catenaria.m
46
dF (r)
F (u(r) + v) F (u(r) )
(u )v = lim
0
du
10.6
Norme ed errori
, che risulta
Si preferisce usare la norma infinito, oppure la norma kuk2 ba
m
essere una approssimazione mediante quadratura con formula dei rettangoli
della norma in L2 di u(x).
102
fsc.m
h2
103
104
105
106
10
102
m
103
47
kem k =
kem k
Si ricava
Capitolo 11
Metodo di shooting
` possibile trasformare il problema (9.1) in un sistema differenziale del primo
E
ordine
y (t) = f (t, y(t)), t (a, b]
y (a) = s
2
Dato s, il sistema sopra pu`o essere risolto con un opportuno metodo per
problemi ai valori iniziali. Poiche s `e il valore della derivata prima di u(x), tale
metodo di risoluzione prende il nome di shooting. Chiamiamo y1 (t | y2 (a) = s)
(da leggersi valore di y1 in t dato che y2 in a vale s) la prima componente
della soluzione. Si dovr`a ovviamente trovare s tale che y1 (t | y2 (a) = s) =
u(x), t = x [a, b]. In particolare, dovr`a essere y1 (b | y2 (a) = s) = ub .
Introduciamo allora la funzione
F (s) = y1 (b | y2 (a) = s) ub
Si tratta di risolvere lequazione (in generale non lineare) F (s) = 0.
11.1
Metodo di bisezione
Dati due valori s1 e s2 per cui F (s1 )F (s2 ) < 0, `e possibile applicare il metodo
di bisezione per trovare lo zero di F (s). Poiche la soluzione di (11.1) `e
48
49
11.2
Metodo di Newton
u(x | u (a) = s) =
y1 (t | y2 (a) = s)
s
s
u (a) = s
x (a, b)
u (x) =
f (x, u(x), u (x))
s
s
da cui, scambiando lordine di derivazione
v (x) = fu (x, u(x), u (x))v(x) + fu (x, u(x), u (x))v (x),
x (a, b)
u(a | u (a) = s) = 0
s
v (a) =
u (a | u (a) = s) = 1
s
v(a) =
v (a) = 1
x (a, b)
50
y1 (t) = y2 (t)
y3 (t) = y4 (t)
y1 (a) = ua
y2 (a) = s
y3 (a) = 0
y4 (a) = 1
11.3
Un caso particolarmente interessante per lapplicazione del metodo di shooting `e quello a frontiera libera (free boundary)
u (x) = f (x, u(x), u (x)),
u(s) =
u (s) =
u(b) = ub
x (s, b)
(11.2)
u(x | s + h) u(x | s)
v(x) =
u(x | s) = lim
h0
s
h
51
v (s) = lim
Capitolo 12
Equazione di Poisson
Di particolare interesse `e lequazione di Poisson
2 u(x) = f (x),
x Rd
12.1
12.1.1
u(a, y) = Da (y)
u(b, y) = Db (y)
u(x, c) = Dc (x)
u(x, d) = D (x)
d
53
k = (j 1)mx + i
u13
u14
u15
u16
u9
u10
u11
u12
u5
u6
u7
u8
u1
u2
u3
u4
2
..
.
..
...
...
...
...
...
..
..
..
..
0
...
..
1
0
..
2
1
3
0
.7
.7
.7
7
7
7
7
07
7,
7
7
7
07
7
7
7
15
2
2
6
6
6
61
6
6
6
1 6 0
6
Ay =
6
2
hy 6
6
6 0
6
6 .
6 .
4 .
0
2
2
..
.
..
...
...
...
...
...
..
..
..
0
...
..
1
0
..
.
..
2
1
3
0
.7
.7
.7
7
7
7
7
07
7
7
7
7
07
7
7
7
15
2
ove Ax Rmx mx e Ay Rmy my . Poi, le righe di indice, diciamo k, corrispondente ad un nodo al bordo vanno sostituite con il vettore della base
54
canonica ek , diviso per h2x + h2y . Il termine noto `e [b1 , b2 , . . . , bmx my ]T , ove
Da (yj )
se xi = a, k = (j 1)mx + i
h2x +h2y
Db (yj )
se xi = b, k = (j 1)mx + i
bk = h2x +h2y
D (x )
se yj = c, k = (j 1)mx + i
h2xc+hi2y
Dd (xi )
se yj = d, k = (j 1)mx + i
h2 +h2
x
Alternativamente, si pu`o sostituire il solo termine diagonale delle righe corrispondenti ad un nodo al bordo con un coefficiente M/(h2x + h2y ), M 1
e moltiplicare per M il corrispondente elemento nel termine noto. Questa
procedura permette di assegnare, di fatto, le condizioni al bordo di Dirichlet,
mantenendo la matrice A simmetrica.
In GNU Octave, la corretta numerazione dei nodi avviene con i comandi
> x = linspace(a,b,mx);
> y = linspace(c,d,my);
> [X,Y] = ndgrid(x,y);
e la costruzione della matrice A tramite il comando kron.
12.1.2
u(b, y) = Db (y)
55
ove
2
6
6
61
6
6
6
6
1 6 0
6
Ax =
6
h2
x 6
6
6 0
6
6 .
6 .
4 .
0
2
...
...
...
..
..
..
..
..
..
..
0
...
1
0
..
...
...
2
1
.
.
3
0
.7
.7
.7
7
7
7
7
07
7,
7
7
7
07
7
7
7
15
2
2
6
6
61
6
6
6
6
1 6 0
6
Ay =
6
h2
y 6
6
6 0
6
6 .
6 .
4 .
0
2
2
..
..
...
...
...
..
..
..
..
0
...
1
0
...
...
..
..
2
2
3
0
.7
.7
.7
7
7
7
7
07
7
7
7
7
07
7
7
7
15
2
1
1
[2, 5, 4, 1, 0, . . . , 0] + 2 [0, . . . , 0, 2, 2] [1, 0, . . . , 0]
2
hx
hy
(si pu`o verificare che lo stencil [2, 5, 4, 1]/h2x `e unapprossimazione al secondo ordine della derivata seconda). Il termine noto `e [b1 , b2 , . . . , bmx my ]T ,
ove
Db (yj )
se xi = b, k = (j 1)mx + i
h2 +h2
x
bk =
Dc (xi )
2
2
hx +hy
f (xi , yj ) +
f (xi , yj ) +
2Na (yi )
hx
2Nd (xi )
hy
se yj = c, k = (j 1)mx + i
se xi = a, k = (j 1)mx + i, j 6= 1, j 6= my
se yj = d, k = (j 1)my + i, i =
6 mx
Capitolo 13
Metodi variazionali
13.1
u (x) = g(x),
x (0, 1)
u(0) = u(1) = 0
(13.1)
u (x) = g (x),
x (0, 1)
u(0) = u(1) = 0
(13.2)
ove
0
1
g (x) = 2
0 x < 21
1
x 21 +
2
1
+<x1
2
56
57
La soluzione di (13.2) `e
1
1
0x
x
2
2
2
1
1 1
1
1
u (x) =
x
+
x +
4
2
4
2
2
1 (1 x)
+x1
2
2
v(x)w(x)dx
v V
(13.3)
u (x)v(x)dx =
g(x)v(x)dx = (g, v)
0
u (x)v(x)dx = u (x)v(x) +
0
u (x)v (x)dx = (u , v )
Per quanto visto per il problema modello (10.2), se g C 0 (0, 1), la soluzione di (13.1) esiste ed `e unica. Per quanto appena dimostrato, essa `e
soluzione anche di (13.3). Ritornando al problema modello (13.1), ove per`o
non facciamo ipotesi su g, la soluzione classica, quella di classe (almeno) C 2 ,
si chiama soluzione forte del problema (13.1), mentre la soluzione di (13.3)
58
u (x)v (x)dx =
u (x)v (x)dx +
u (x)v (x)dx +
u (x)v (x)dx =
0
=
=
1
+
2
1
u (x)v(x)dx
1
v(x)dx =
2
2
1
+
2
1
+
2
1
+
2
u (x)v(x)dx
g (x)v(x)dx =
1
+
2
u (x)v(x)dx =
g (x)v(x)dx
Qualora si trovi una soluzione debole, ha per`o senso verificare se per caso
non sia anche forte. Infatti, se u V `e soluzione di (13.3) e u C 2 ([0, 1])
(da notare che C 2 ([0, 1]) V ) e g `e continua allora 0 = (u , v ) (g, v) =
(u , v) (g, v) = (u + g, v) per ogni v V . Poiche u + g `e continua, si
deduce u (x) = g(x) per 0 < x < 1.
Per quanto visto, la formulazione variazionale (13.3) del problema (13.1)
`e in realt`a le pi`
u fisica: pensando al problema della trave, essa permette
di descrivere, per esempio, anche il caso in cui la densit`a di carico g(x)
non sia continuo. Basta infatti che sia possibile calcolare (g, v), v V e
dunque basta, per esempio, che g sia continua a tratti. Quindi, in generale,
`e possibile come modello per un fenomeno fisico la sola formulazione debole.
La soluzione debole, se esiste, `e unica: infatti, se u1 e u2 sono due soluzioni
di (13.3), allora
(u1 u2 , v ) = 0, v V
e in particolare per v = u1 u2 . Dunque
Z 1
(u1 (x) u2 (x))2 dx = 0
0
u1 (x)
e quindi
13.1.1
u2 (x)
59
u (x)i (x)dx =
m
X
uj j
j=1
, i
m
X
(j , i )
uj = Au = (g, i )
j=1
ove A = (aij ) = (j , i ) e u = [
u1 , . . . , um ]T . Calcoliamo ora wT Aw per
w = [w1 , . . . , wm ]T . Si ha
!
m
m
X
X
T
w Aw =
(i , j )wj
wi
i=1
j=1
m
X
i=1
! m
! ! Z
X
wi i (x) ,
wj j (x)
=
j=1
m
X
!2
wj j (x)
j=1
dx 0
P
e lunica possibilit`a per avere 0 `e che
wj j (x) sia costante e dunque nullo
(poiche nullo ai bordi). Dunque, A `e definita positiva.
La matrice A, che risulta essere simmetrica e definita positiva, si chiama
matrice di rigidezza (stiffness matrix) e il vettore (g, i ) vettore di carico
(load vector). Vale poi il seguente risultato:
Teorema 4. Se u `e soluzione di (13.3) e u di (13.4), allora
ku uk inf ku vk
vVm
ove kvk =
(v , v ).
(13.5)
60
v Vm
e quindi la tesi.
Per definizione, u `e allora la proiezione ortogonale della soluzione esatta
u sul sottospazio Vm , tramite il prodotto scalare hu, vi = (u , v ).
La scelta di Vm caratterizza il metodo. Da un lato bisogna considerare
la regolarit`a della soluzione richiesta. Dallaltro la difficolt`a di assemblare la
matrice di rigidezza e di risolvere il sistema lineare.
Stabilit`
a e consistenza
La consistenza del metodo di Galerkin discende dal fatto che se u V , allora
(u , v ) = (g, v),
v Vm
Z 1
p
p
2
2 (
u
,
u
)
(
u , u )
2x
u
(x)
u
(x)dx
u
(x)
u
(x)dx
da cui
cio`e
2x
u(x)
u (x)dx =
1 Z
x
u (x) dx = u (x)x
2
u2 (x)dx
p
p
p
p
(
u, u) 2 (
u, u) (
u , u ) = 2 (
u, u) (
u , u )
p
(
u, u) 2k
uk
(
u , u ) = (g, u)
61
p
k
uk 2 (g, g)
v Vm
p
k
u uk 2 (
g g, g g)
e cio`e che piccole variazioni sui dati producono piccole variazioni sulle soluzioni.
Metodo degli elementi finiti (FEM)
1
j1
h1
x1
hj1
x2
xj2
xj1
xj
j+1
hj
hm1
xj+1
xm
, xj1 x xj
hj1
j (x) = xj+1 x , x x x
j
j+1
hj
0,
altrimenti
e
hj1
1
j (x) =
0,
altrimenti
62
x2 x , x1 x x2
h1
1 (x) =
0,
altrimenti
1, x <x<x
1
2
h1
1 (x) =
0,
altrimenti
x xm1 , xm1 x xm
hm1
m (x) =
0,
altrimenti
m (x) =
hm1
0,
Dunque, nellapprossimazione
u(x) =
m
X
uj j (x)
j=1
(x)i (x)dx
=
=
m
X
j=1
m
X
uj
j (x)i (x)dx
m
X
uj
j=1
uj aij =
xi +hi
xi +hi
xi hi1
j (x)i (x)dx =
g(x)i (x)dx
xi hi1
j=1
Siccome il supporto di j (x) `e [xj1 , xj+1 ], gli unici elementi non nulli aij
sono aii , ai i1 e ai+1 i = ai i+1 . Per 1 < i < m,
Z
xi
2
1
1
1
dx +
dx =
+
aii =
=
hi1
hi
hi1 hi
xi
xi hi1
Z xi
1
1
1
ai i1 = (i1 , i ) =
dx =
= ai1 i
hi1 hi1
hi1
xi hi1
(i , i )
xi +hi
63
Per i = 1 e i = m, si ha invece
2
1
1
a11 =
dx =
h1
h1
Zx1x2
1 1
1
dx = = a12
a21 =
h1 h1
h1
x2 h1
Z xm
1
1
1
am m1 =
dx =
= am1 m
hm1 hm1
hm1
xm hm1
2
Z xm
1
1
amm =
dx =
hm1
hm1
xm hm1
Z
x1 +h1
Per quanto riguarda il calcolo di (g, i ) si pu`o ricorrere alla formula del punto
medio: per 1 < i < m `e
Z xi
Z xi+1
x xi1
xi+1 x
g(x)
g(x)
gi = (g, i ) =
dx +
dx
hi1
hi
xi1
xi
xi + xi+1 hi
xi1 + xi hi1
+g
g
2
2
2
2
Per i = 1 e i = m si ha invece
Z x2
x2 x
x1 + x2 h1
g(x)
dx g
g1 = (g, 1 ) =
h1
2
2
x1
Z xm
xm1 + xm hm1
x xm1
dx g
gm = (g, m ) =
g(x)
hm1
2
2
xm1
Lapprossimazione di
Z xi
xi1
g(x)i (x)dx =
xi
xi1
g(x)
x xi1
dx
hi1
hi1
x
2g
(
)
i1
i1
i1
= O(h2i1 ), i1 (xi1 , xi )
g
(
)
+
i1
24
hi1
hi1
g(xi1 ) + g(xi )
xi1 + xi
+ O(h2i1 ) = gi1 + O(h2i1 )
=
g
2
2
64
Z xi
xi1 + xi
hi1
i (x)dx = i
hi1 =
2
2
xi1
la formula del punto medio viene di solito sostituita dalla formula equivalente
(nel senso dellordine di approssimazione)
Z xi +hi
Z xi
hi
hi1
+ gi
i (x)dx = gi1
i (x)dx + gi
gi = (g, i ) gi1
2
2
xi
xi hi1
per 1 < i < m e da
g1 = (g, 1 ) = g1
x1 +h1
x1
gm = (g, m ) = gm1
1 (x)dx = g1
Z
h1
2
xm
m (x)dx = gm1
xm hm1
hm1
2
..
.
u
i i1
+
gi hi
1
1
1
1
+
0
.
.
.
0
0 . . . 0 hi1
ui = gi1 hi1
hi1
hi
hi
2
.
ui+1
..
..
.
e dunque molto simile (il termine noto `e diverso, anche se dello stesso ordine)
a quella della discretizzazione con differenze finite del secondo ordine. Pertanto, `e naturale aspettarsi, sotto opportune ipotesi di regolarit`a, che lerrore,
nella norma indotta dal prodotto scalare, rispetto alla soluzione analitica
tenda a zero come h2 , h = maxj hj (e ci`o giustifica, a posteriori, la scelta
della formula di quadratura). Facilmente, usando la disuguaglianza (13.5) e
i risultati della Sezione 1.1.1, si pu`o dimostrare
s
Z 1
c
[u (x) (pc1 u) (x)]2 dx hku k
ku uk ku p1 uk =
0
65
u (x)i (x)dx =
g(x)i (x)dx, 1 i m
u (x)i (x) +
0
u (0) +
u (x)1 (x)dx =
0
g(x)1 (x)dx
g(x)1 (x)dx
u (x)1 (x)dx = u0 +
0
Da notare che il problema con due condizioni di Neumann non `e ben definito,
in quanto se u(x) `e soluzione, allora lo `e anche u(x) + k.
Ovviamente, lo spazio Vm pu`o essere costituito da funzioni molto pi`
u
regolari (per esempio polinomi di grado superiore).
Vediamo un approccio pi`
u generale allimplementazione del metodo degli
elementi finiti. Supponiamo di avere l elementi {j }lj=1 (nel caso unidimensionale, sono gli intervalli) ad ognuno dei quali sono associati due nodi. Con
1
x1 x2
j1
xj1
j
xj
l
xj+1
xm
1jl
Zj
1
j,k j,3k =
j,k (x)j,3k (x)dx = , k = 1, 2
hj
j
66
g(xj,1 ) + g(xj,2 )
2
Pertanto si ha
aij = 0, 1 i, j m, gi = 0, 1 i m
for j = 1, . . . , l
for k = 1, 2
aj,k j,k = aj,k j,k + j,k j,k , gj,k = gj,k + gj
aj,k j,3k = aj,k j,3k + j,k j,3k
hj
2
end
end
13.1.2
13.2
Metodi spettrali
Sia
u(x) =
uj j (x)
Se tale limite `e finito per ogni k, allora la serie si dice convergere esponenzialmente oppure spettralmente. Significa che |uj | decade pi`
u velocemente di
67
m
X
uj j (x)
j=1
j (x)i (x)w(x)dx = ji
uj
j=1
Lj (x)i (x)w(x)dx =
g(x)i (x)w(x)dx,
1im
uj
m
X
n=1
m
X
n=1
1im
(13.6)
In tal caso si parla di metodi pseudospettrali. I coefficienti uj che si trovano
risolvendo il sistema lineare si chiamano solitamente soluzione nello spazio
spettrale.
Dati i coefficienti, si ricostruisce la soluzione nello spazio fisico
P
u
(x).
Detta F la matrice
j j j
F = (fij ) = i (xj ) wj
w1 u(x1 )
u1
w2 u(x2 )
u2
= F T ..
..
.
.
um
wn u(xn )
68
g(x1 ) w1
g1
g(x2 )w2
g2
.. = F
..
gn
g(xn ) wn
Solitamente le funzioni {j (x)}j sono polinomi ortonormali rispetto alla funzione peso w(x). La soluzione u(x), per`o, potrebbe non essere efficacemente
approssimata da polinomi, per esempio se deve soddisfare particolari condizioni al contorno (tipo vanishing boundary conditions, condizioni al bordo
periodiche o altro). Pu`o essere utile allora la decomposizione
u(x)
m
X
j=1
m
X
p
uj j (x) w(x) =
uj j (x)
j=1
13.2.1
Trasformata di Fourier
j (x) =
ba
Allora,
j (x)k (x)dx = jk
ei2(jk)(xa)/(ba)
ba
(13.7)
69
j (x)k (x)dx =
ei2(jk)y
(b a)dy = 0 ,
ba
poiche lintegrale delle funzioni sin e cos in un intervallo multiplo del loro periodo `e nullo. La famiglia di funzioni {j }j si dice ortonormale nellintervallo
[a, b] rispetto al prodotto scalare
(j , k ) =
j (x)k (x)dx
ei(n1)2(jk)/m = mjk ,
n=1
1 j, k m
(13.8)
ei(n1)2(jk)/m =
n=1
m1
X
n=0
ei2(jk)/m
1 cos(2(j k))
1 ei2(jk)
=
=0
i2(jk)/m
1e
1 ei2(jk)/m
poiche m + 1 j k m 1.
13.2.2
Sia u una funzione da [a, b] a C tale che u(a) = u(b). Supponiamo che u si
possa scrivere (ci`o `e vero, per esempio, per funzioni di classe C 1 ) come
+
X
u(x) =
uj j (x),
j=
uj C
(13.9)
j=
j=
uj
(13.10)
j (x)k (x)dx = uk
70
|u(x)|2 dx =
+
X
|uj |2
(identit`a di Parseval)
j=
uj j (x) dx =
uj j (x) dx =
u(x)
a
a
j=1
jJ
!
!
Z b X
X
uk k (x) dx =
uj j (x)
=
a
X
jJ
jJ
kJ
|uj |2
Z
1 b
1
u(x)j (x)dx =
uj =
(u(b) u(a)) +
u (x)j (x)dx =
j a
j b a
a
Z b
1
1
1
u (x)j (x)dx
(u(b) u(a)) 2
(u (b) u (a)) + 2
=
j a
j b a
j b a
2
= O (j 1 m/2)
b
uj = O (j 1 m/2)k
Si ha dunque
X
71
La seconda approssimazione da fare `e utilizzare una formula di quadratura per il calcolo di uj . Riportiamo per comodit`a la formula di quadratura
trapezoidale a m+1 nodi equispaziati xn = (ba)yn +a, ove yn = (n1)/m,
n = 1, . . . , m + 1 per funzioni periodiche:
!
Z b
m
m
X
ba
baX
g(x)dx
g(x1 ) + 2
g(xn ) + g(xm+1 ) =
g(xn )
2m
m n=1
a
n=2
Usando la (13.8), abbiamo
mjk =
m
X
i(n1)2(jk)/m
n=1
m
X
i(jk)2yn
n=1
m
X
ei(jk)2(xn a)/(ba) =
n=1
m
X
ei(j1m/2)2(xn a)/(ba) ei(k1m/2)2(xn a)/(ba)
=
= (b a)
ba
ba
n=1
Z b
m
X
j (x)k (x)dx
= (b a)
j (xn )k (xn ) = m
a
n=1
u(x)
uj =
dx =
ba
a
Z 1
b a X
u(xn )eimyn ei(j1)2yn = uj
m
n=1
ove x = (b a)y + a.
La funzione (serie troncata di Fourier)
u(x) =
m
X
m/21
uj j (x) =
j=1
k=m/2
k=m/2
m/21
uk+1+m/2
eik2(xa)/(ba)
ba
72
m
X
u
j j (xn ) =
j=1
!
m
ba X
ei(j1m/2)2(xn a)/(ba)
=
u(xk )eimyk ei(j1)2yk
=
m
ba
j=1
m
X
k=1
m
m
X
1 X
u(xk )eim(k1)/m eim(n1)/m
ei(j1)2(k1)/m ei(j1)2(n1)/m =
=
m
j=1
1
m
k=1
m
X
u(xk )ei(kn)
m
X
ei(j1)2(nk)/m =
j=1
k=1
1
u(xn )m = u(xn ) .
m
X
X
|uj |2
uj j (x) dx 2
u(x)
a
j=1
jJ
La trasformazione
,
.
.
.
,
u
]
/
b a pu`o essere scritto come prom
1 2
imy1
dotto matrice-vettore F m[u(x1 )e
, u(x2 )eimy2 , . . . , u(xm )eimym ]T , ove
r
ei(j1)2yk
xk a
ba
F = (fjk ), fjk =
.
= j+m/2
ba
m
m
=
vn =
vj j (xn ) =
vj
ba
j=1
j=1
!
m
m
1 X i(j1)2yn
=
eimyn .
vj e
b a m j=1
73
La trasformazione
[
v1 , v2 , . . . , vm ]T [v1 , v2 , . . . , vm ]T
si chiama anti-trasformata di Fourier discreta. Se i vj sono i coefficienti di
Fourier di una funzione v(x), la propriet`a di interpolazione comporta vn =
v(xn ). Ma, in generale, non `e vero che
v(x) =
m
X
vj j (x)
j=1
m T
] /m pu`o essere scritto
Il vettore b a [v1 eimy1 , v2 eimy2 , . . . , vm eimy
T
come prodotto matrice-vettore F [
v1 , v2 , . . . , vm ] / m, ove F denota, come in GNU Octave, la trasposta coniugata di F . Alternativamente,
il comando ifft applicato al vettore [
v1 , v2 , . . . , vm ] produce il vettore b a
[v1 eimy1 , v2 eimy2 , . . . , vm eimym ]/m, mentre, se applicato al risultato del comando
ifftshift applicato al vettore [
v1 , v2 , . . . , vm ], produce il vettore
b a [v1 , v2 , . . . , vm ]/m.
Da notare che F = F 1 .
Applicazione ad un problema modello
102
fourier.m
ordine 1
ordine 2
ordine 4
ordine 8
errore
104
106
errore in norma-2
108
1010
1012
1014
1016
1018
1
10
100
74
1
u (x) + u(x) =
, x (, )
sin x + 2
u() = u()
(13.11)
ei(j1m/2)2(xa)/(ba)
ba
m
X
uj j (x)
j=1
k (x)dx +
m
X
uj j (x) k (x)dx =
j=1
g(x)k (x)dx
da cui
m
X
uj
j=1
j (x)k (x)dx
m
X
uj
j=1
Poiche
j (x)
j (x)k (x)dx =
g(x)k (x)dx
i(j 1 m/2)2
ba
j (x) = 2j j (x)
gk
,
1 2k
1km
1km
e quindi
u(x)
m
X
uj j (x)
j=1
75
u(b) = 0
m
2
+ 1 | m2 + 1 j|
,
m
+1
2
1jm
1
2
http://math-atlas.sourceforge.net/
http://xianyi.github.com/OpenBLAS/
76
max{ 2 +1+k,m}
2
X
X
k=0
uj j (x)
+1k
j= m
2
m
2
+1
Si ricorda che se una serie `e convergente, allora il limite delle medie delle sue
troncate `e la somma della serie.
Valutazione di un polinomio trigonometrico
Supponiamo di conoscere i coefficienti uj , j = 1, . . . , m e di voler valutare la
funzione
m
X
u(x) =
uj j (x)
j=1
1k
nm
2
nm
nm
+1k m
2
2
nm
m
+1k n
2
Uk = uk nm
2
Uk = 0
Si avr`a
u(xk ) =
m
X
uj j (xk ) =
j=1
n
X
e
Uj
i(j1n/2)2(xk a)/(ba)
j=1
n
1
=
ba n
n
X
Uj ei(j1)2yk
j=1
ba
einyk
Oppure si pu`o costruire la matrice F relativa ai nodi (ci`o funziona anche per
nodi non equispaziati). Infine, si pu`o usare la trasformata di Fourier non
equispaziata NFFT.
13.3
Metodi di collocazione
Si assume comunque
u(x) =
m
X
j=1
uj j (x)
77
uj Lj (xn ) = g(xn ),
1nm
j=1
(13.12)
ove gli {xn } sono i nodi della quadratura gaussiana relativa alla famiglia {j }
`e la stessa del problema di Galerkin
m
X
j=1
uj
Lj (x)i (x)w(x)dx =
g(x)i (x)w(x)dx
j=1
1nm
j=1
=
=
m
X
j=1
m
X
uj
m
X
n=1
n=1
1im
13.3.1
Condizioni al bordo
Consideriamo il problema
Lu(x) = g(x)
u(a) = ua
u (b) = u
b
78
uj Lj (xn ) = g(xn ),
j=1
m
X
uj j (a) = ua
j=1
uj j (b) = ub
1nm2
j=1
Anche in questo caso il metodo di collocazione pu`o essere visto come un metodo di Galerkin pseudospettrale: basta prendere come nodi di collocazione
gli m 2 nodi di quadratura gaussiana. Si ha poi
! m2
m2
m
X
X
X
L
(x
)
(x
)w
=
u
j=1
n=1
n=1
m
X
uj j (a) = ua
j=1
uj j (b) = ub
j=1
Collocazione GaussLobattoChebyshev
I polinomi di Chebyshev sono definiti da
Tj (x) = cos(j arccos(x)),
e soddisfano
Z
Tj (x)Ti (x)
dx =
2
1 x2
1 x 1
i=j=0
i = j 6= 0
i 6= j
(lo si vede con il cambio di variabile x = cos e applicando le formule di Werner, oppure integrando per parti due volte). I nodi di (Gauss)Chebyshev
Lobatto sono xn = cos((n 1)/(m 1)), 1 n m. Possiamo allora
definire la seguente famiglia di funzioni ortonormali
r
r
1
2
1 (x) =
T0 (x), j (x) =
Tj1 (x), 2 j m
79
1
2
, 2 (x) =
x, 3 (x) = 2x2 (x) 21 (x),
1 (x) =
2
, 3 (x) = 22 (x) + 2x2 (x),
1 (x)
= 0,
2 (x)
1 (x1 )
2 (x1 )
T0 = ..
.
m (x1 )
1 (x1 )
(x1 )
2
T1 = ..
.
m (x1 )
1 (x1 )
(x1 )
2
T2 = ..
.
m (x1 )
1 (x2 ) . . . 1 (xm )
2 (x2 ) . . . 2 (xm )
..
..
.
...
.
m (x2 ) . . . m (xm )
1 (x2 ) . . . 1 (xm )
2 (x2 ) . . . 2 (xm )
..
..
.
...
.
m (x2 ) . . . m (xm )
1 (x2 ) . . . 1 (xm )
2 (x2 ) . . . 2 (xm )
..
..
.
...
.
m (x2 ) . . . m (xm )
u (1) = u
b
80
bordo) `e
T
T2 +
q(x1 )
q(x2 )
...
g(x1 )
u1
u2 g(x2 )
T
T0 .. = ..
. .
q(xm )
um
g(xm )
u1
u(x1 )
u2
u(x2 )
.. = TT
0 ..
.
.
um
u(xm )
Capitolo 14
Esercizi
1. Si risolva il problema ai limiti
u (x) = u(x) + x,
u(0) = 0
u(1) = 0
x (0, 1)
(14.1)
u(/2) = 1
x (0, /2)
u(/2) = 1
x (0, /2)
82
u (x) = cos(u(x)),
u(0) = 0
u(1) = 1
x (0, 1)
d
d
dx (1 + x) dx u(x) = 1,
u(0) = 0
u(1) = 0
x (0, 1)
Si mostri inoltre lordine del metodo mediante un grafico logaritmicologaritmico dellerrore in norma infinito rispetto alla soluzione esatta.
u(1) = 1
x (0, 1)
Visto landamento della soluzione, si implementi uno schema di differenze finite su nodi non equispaziati secondo una distribuzione di tipo
coseno. Si confrontino gli errori rispetto alla soluzione analitica.
Parte 2
ODEs
(Equazioni differenziali
ordinarie)
83
Capitolo 15
Introduzione
Consideriamo il sistema di equazioni differenziali ordinarie (ODEs) ai valori
iniziali (initial value problem)
y1 (t) = f1 (t, y1 (t), y2 (t), . . . , yd (t))
yd (t) = fd (t, y1 (t), y2 (t), . . . , yd (t))
y1 (t0 ) = y1 0
y2 (t0 ) = y2 0
..
yd (t0 ) = yd 0
t > t0
(15.1)
x, y Rd
15.1
85
t > t0
15.2
y (t) = 1,
t > t0
d+1
y(t0 ) = y 0
yd+1 (t0 ) = t0
y(t ) = y0,0
0
y (t0 ) = y0,1
..
(d1)
y
(t0 ) = y0,d1
t > t0
(cio`e in cui vengono prescritti i valori iniziali della funzione e delle derivate)
si possono ricondurre ad un sistema di ODEs di ordine uno, mediante la
sostituzione
y1 (t) = y(t)
y2 (t) = y (t)
..
ove
f (t, y(t)) = [y2 (t), y3 (t), . . . , yd (t), f (t, y1 (t), y2 (t), . . . , yd1 (t))]T
Capitolo 16
Metodi ad un passo
16.1
Metodo di Eulero
per cui y(t) y(t0 ) + (t t0 )f (t0 , y(t0 )). Pertanto lapprossimazione di y(t)
`e ottenuta per interpolazione lineare a partire da (t0 , f (t0 , y(t0 ))), con pendenza f (t0 , y(t0 )). Pu`o essere visto anche come applicazione della formula
di quadratura del rettangolo (estremo sinistro) alla soluzione analitica
Z t
y(t) = y(t0 ) +
f (, y( ))d
t0
n 0,
(16.1)
87
0nm
ove en,k = y n,k y(tn ). La quantit`a maxn ken,k k si chiama errore globale.
Teorema 6. Il metodo di Eulero `e convergente.
88
c
k[(1 + k)n 1], 0 n m
(si dimostra per induzione). Poiche 1 + k < ek , (1 + k)n < enk emk =
et . Dunque
c
da cui
lim+ max ken,k k = 0
ken,k k
k0
0nm
16.2
89
n 0,
(16.3)
k
k 2
k
(ken,k k + ken+1,k k) + ck 3 ,
2
Se k < 2/,
ken+1,k k
Allora
ck 2
ken,k k
k
2
k
2
ken,k k +
1+
1
k
2
k
2
!n
1+
1
"
1 ,
c
1 k
2
k3
0nm
c>0
90
!n
!n
1 + k
t
k
nk
2
exp
= 1+
exp
1 k/2
1 k/2
1 k
1 k
2
2
100
pendoloperiod.m
101
102
4 periodi
3 periodi
103
2 periodi
104
1 periodo
m2
105
106
200
400
600
800
Figura 16.1: Errori del metodo dei trapezi per lequazione del pendolo
linearizzata.
In Figura 16.1 si vede chiaramente che lerrore (per lequazione del pendolo linearizzata) decade come k 2 m2 e che lo stesso cresce linearmente
con lintervallo di tempo. Entrambi i metodi descritti sono ad un passo (cio`e
la soluzione y n+1 dipende esplicitamente solo da y n ). Il metodo dei trapezi `e
per`o implicito, cio`e la soluzione y n+1 `e implicitamente definita dallequazione
(in generale non lineare)
k
k
Fn (y n+1 ) = y n+1 f (tn+1 , y n+1 ) y n f (tn , y n ) = 0
2
2
16.3
-metodo
n0
(16.4)
16.3. THETA-METODO
91
1
1
2
=
k y (tn ) +
1
1
2
+
k y (tn ) +
k 3 y (tn ) + O(k 4 )
2
6 2
Posto en+1 = y(tn+1 ) y n+1 , si ha
1
1
2
O(k ) +
ken+1 k kken+1 k +
O(k 3 ) + O(k 4 )
2
6 2
Dunque, se k `e sufficientemente piccolo,
1
1
2
ken+1 k
O(k 3 ) + O(k 4 )
O(k ) +
2
6 2
Quindi, anche per uno schema implicito, lerrore di troncamento locale `e
dello stesso ordine della differenza tra la soluzione esatta al tempo tn+1 e
la soluzione che si otterrebbe applicando il metodo numerico e supponendo
esatta la soluzione al tempo tn .
92
1
2
16.3.1
1
(16.6)
fi (tn+1 , x)
Jn (x) = I k
xj
ij
k < 1 k <
16.3. THETA-METODO
93
r=0
x(r) = y n
Jn (x(r) ) (r) = Fn (x(r) )
while k (r) k > Newt tol
x(r+1) = x(r) + (r)
r =r+1
Jn (x(r) ) (r) = Fn (x(r) )
end
y n+1 = x(r)
In Matlab/Octave limplementazione potrebbe essere:
f = @(t,y) ... % rhs dellequazione
j = @(t,y) ... % jacobiano di f
F = @(tn,yn,t,y) y - k * theta * f(t,y) - yn - k * (1 - theta) * f(tn,yn)
J = @(t,y) eye(length(y)) - k * theta * j(t,y)
y(:,1) = y0;
t = 0;
for n = 1:ts
y(:,n+1) = y(:,n);
errest = -J(t + k,y(:,n + 1)) \ F(t,y(:,n),t + k,y(:,n + 1));
while (norm(errest,inf) > Newt_tol)
y(:,n + 1) = y(:,n + 1) + errest;
errest = -J(t + k,y(:,n + 1)) \ F(t,y(:,n),t + k,y(:,n + 1));
end
t = t + k;
end
La tolleranza Newt tol va presa tenendo conto che si sta comunque commettendo un errore proporzionale a k 2 (trapezi) o addirittura k. Come valore
iniziale x(0) , invece di y n si pu`o prendere y n + kf (tn , y n ), che corrisponde
a y(tn+1 ) approssimato con il metodo di Eulero e dunque dovrebbe essere
unapprossimazione migliore di y n+1 (ma si veda il capitolo 19). Anche altre
scelte possono andare bene, a patto di avere convergenza del metodo.
94
16.3.2
Nel caso in cui il calcolo e/o la risoluzione dei sistemi lineari con Jn (x(r) ) risulti particolarmente oneroso, si pu`o ricorrere al metodo di Newton inesatto,
considerando ad ogni passo la matrice jacobiana costante Jn (x(r) ) Jn (x(0) ),
o, in generale, qualunque modifica della matrice jacobiana. A questo punto,
la si pu`o fattorizzare in LU una sola volta per passo temporale e poi risolvere i sistemi con le corrispondenti matrici triangolari. Il metodo di Newton
inesatto converge generalmente in maniera lineare e dunque serviranno pi`
u
iterazioni (ma meno costose) rispetto al metodo di Newton esatto. Per inciso, questo `e il sintomo principale di una matrice jacobiana non corretta. Il
numero di iterazioni necessarie alla convergenza dipende (anche) dalla vicinanza della soluzione iniziale x(0) = y n a quella finale y n+1 . Tanto pi`
u sono
vicine, tante meno iterazioni serviranno, e viceversa. Se in un certo intervallo
di tempo la soluzione non varia molto, allora `e plausibile pensare di prendere
i successivi passi temporali pi`
u grandi. Viceversa, se varia molto, pu`o essere
necessario prendere i successivi passi temporali pi`
u piccoli. La velocit`a di
convergenza del metodo di Newton inesatto `e un indicatore della variazione
della soluzione. Il metodo di Newton inesatto a passo variabile potrebbe
essere implementato nel seguente modo ( 6= 0):
r=0
x(r) = y n
Fn (x(r) ) = x(r) kn+1 f (tn+1 , x(r) ) y n kn+1 (1 )f (tn , y n )
fi (tn+1 ,x(r) )
(r)
Jn (x ) = I kn+1
xj
ij
Pn Jn (x(r) ) = Ln Un
Ln Un (r) = Pn Fn (x(r) )
while k (r) k > Newt tol
x(r+1) = x(r) + (r)
r =r+1
Ln Un (r) = Pn Fn (x(r) )
end
y n+1 = x(r)
if r < rmin then kn+2 = kn+1
95
16.3.3
Caso lineare
16.4
96
log em2 ,k2 log em1 ,k1 = p(log k2 log k1 ) = p(log m2 log m1 ).
Dunque, rappresentando in un grafico logaritmico-logaritmico lerrore in dipendenza dal numero di passi, la pendenza della retta corrisponde allordine
del metodo, cambiato di segno. Tale verifica `e valida anche nel caso di passi
non costanti.
Nel caso f (t, y(t)) sia particolarmente complicato, invece di calcolare il
residuo, si pu`o calcolare una soluzione di riferimento y m,
e poi confrontare
k
con essa le soluzioni y m1 ,k1 e y m2 ,k2 , ove m1 , m2 m.
In questo caso, per`o, si
pu`o mostrare solo che il metodo converge con lordine giusto ad una soluzione,
non necessariamente quella giusta.
Capitolo 17
Metodi multistep
17.1
Metodi di AdamsBashforth
lidea `e quella di sostituire la funzione integranda in (17.1) con il suo polinomio interpolatore sui nodi equispaziati tn , tn+1 , . . . , tn+s1 (tn+j = tn +
jk)
s1
X
p( ) =
Lj ( )f (tn+j , y n+j )
j=0
tn+s
p( )d =
tn+s1
s1 Z
X
j=0
tn+s
Lj ( )d
tn+s1
f (tn+j , y n+j ) = k
s1
X
bj f (tn+j , y n+j )
j=0
s1
X
j=0
97
bj f (tn+j , y n+j )
(17.2)
98
s1
tn+s Y
tn+s1 i=0
i6=j
s1
1Y
i=0
i6=j
tn+i
d =
tn+j tn+i
s1
1Y
i=0
i6=j
tn+s1 + rk tn+i
dr =
tn+j tn+i
s1
1Y
((s 1 i) + r)
dr
(j i)
i=0
i6=j
Dunque possono essere calcolati una volta per tutte. Calcoliamo lordine di
tale metodo: come al solito, dobbiamo valutare lespressione
y(tn+s ) y(tn+s1 ) k
s1
X
bj f (tn+j , y(tn+j ))
j=0
ky (s+1) (
)k
|( tn ) . . . ( tn+s1 )|
{z
}
|
s!
s termini
ky
(s+1)
(
)k
s!
s!k s = O(k s ),
tn+s1 tn+s
e quindi
y(tn+s ) y(tn+s1 ) k
Z
tn+s
tn+s1
s1
X
bj f (tn+j , y(tn+j )) =
j=0
f (, y( ))d k
Z
tn+s
tn+s1
s1
X
bj f (tn+j , y(tn+j )) =
j=0
f (, y( ))d
tn+s
tn+s1
q( )d = O(k s+1 )
99
tn+1
tn
f (tn , y n ) +
f (tn+1 , y n+1 )
k
k
e dunque
1
b0 =
k
tn+2
tn+1
tn+1
1
d = ,
k
2
1
b1 =
k
tn+2
tn+1
tn
3
d =
k
2
da cui
3k
k
(17.3)
y n+2 = y n+1 f (tn , y n ) + f (tn+1 , y n+1 )
2
2
Il valore y 1 pu`o essere ricavato, per esempio, anche con il metodo di Eulero,
poiche si ha, in tal caso, y 1 = y(t1 ) + O(k 2 ).
17.2
s
X
bj f (tn+j , y n+j )
(17.4)
j=0
j=0
aj y(tn+j ) k
s
X
j=0
100
s
X
aj w ,
(w) =
j=0
s
X
bj w j
j=0
2
2
3
1
+ O( ) =
+ O( 3 )
2
2
e dunque il metodo `e di ordine 1, come noto. Per il metodo di Adams
Bashforth (17.3) si ha (1 + ) = (1 + )2 (1 + ) = 2 + e (1 + ) =
3(1 + )/2 1/2. Si ha
2
( + )
1
3
(1 + )
2
2
5
2 3
4
+
O( ) = 3 + O( 4 )
2
3
12
aj y(tn+j ) k
s
X
bj f (tn+j , y(tn+j )) =
j=0
s
X
aj y(tn + jk) k
s
X
j=0
s
X
bj y (tn + jk) =
j=0
s
X
X
j iki
j iki
=
aj
k
=
y (tn )
bj
y (i+1) (tn )
i!
i!
j=0
i=0
j=0
i=0
s
i i
X
X
X
X
j
k
j i1 k i1
(i)
y (tn )
=
aj y(tn ) +
y (i) (tn )
k
bj
=
i!
(i
1)!
i=1
j=0
i=1
j=0
!
s
!
s
s
X
X
X1 X
j i aj i
j i1 bj k i y (i) (tn )
aj y(tn ) +
=
i! j=0
j=0
j=0
i=1
(i)
101
j=0
k
5f (tn , y n ) 20f (tn+1 , y n+1 ) + 13f (tn+2 , y n+2 ) (17.7)
=
12
si ha
17.2.1
a0 + a1 + a2
a1 + 2a2
a1 + 4a2
a1 + 8a2
=0
= b0 + b1 + b2 ordine (almeno) 1
= 2(b1 + 2b2 ) ordine (almeno) 2
6= 3(b1 + 4b2 ) ordine 2
Metodi BDF
j=0
e kbs f (tn+s , y n+s ) kbs y (tn + sk), conviene cercare una combinazione lineare di y n+j , 0 j s che approssimi kbs y (tn+s ). Si procede dunque con
102
4k 2
y (tn + 2k) + O(k 3 )
2
k 2
y(t
+
k)
=
y(t
+
2k)
ky
(t
+
2k)
+
y (tn + 2k) + O(k 3 )
n
n
n
da cui
a0 =
a
=
1
2
3
a = 4
a0 + a1 + a2 = 0
1
3
2a
a
=
b
0
1
2
a
=
1
2a0 + a1 = 0
2
b2 =
3
(17.8)
e il metodo `e di ordine 2.
I metodi BDF sono gli unici metodi multistep in cui non `e difficile calcolare
i coefficienti anche nel caso di passi temporali variabili. Sempre per s = 2,
se tn+1 = tn + kn+1 e tn+2 = tn+1 + kn+2 , allora
(kn+1 + kn+2 )2
+
y (tn + kn+1 + kn+2 ) + . . .
kn+2
`
17.3. CONSISTENZA E STABILITA
103
da cui i coefficienti
a2 = 1
a0 + a1 + a2 = 0
a0 (kn+1 + kn+2 ) a1 kn+2 = b2 kn+2
0 (kn+1 + kn+2 )2 + a1 k 2 = 0
2
2 n+2
2
kn+2
a
=
0
a = (kn+1 + kn+2 )
1
(kn+1 + 2kn+2 )kn+1
a2 = 1
(kn+1 + kn+2 )
b2 =
(kn+1 + 2kn+2 )
17.3
Consistenza e stabilit`
a
104
BDF2 (17.8)
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
2.7182818284590451e+00
metodo (17.7)
2.7182818284590455e+00
2.7182818284590473e+00
2.7182818284593857e+00
2.7182818288082906e+00
2.7182821860869133e+00
2.7186480393965446e+00
3.0932818284590446e+00
3.8671828182845888e+02
3.9321871828182810e+05
4.0265318671828151e+08
4.1231686041871790e+11
4.2221246506598656e+14
k0
come ben si vede dalla Tabella 17.1. Abbiamo quindi un metodo la cui
soluzione numerica diverge facendo tendere il passo temporale a 0 (cio`e pro` proprio un piccolo errore
prio lopposto di quanto dovrebbe succedere). E
commesso ad un passo che si accumula in maniera distruttiva. Si potrebbe
pensare che il problema nasca dallarrotondamento dellaritmentica di macchina e che in assenza di questo tutto possa funzionare, ma non `e cos`. Per
il problema (17.9) consideriamo un metodo ad s passi di ordine p i cui primi
valori siano
zj = k p j + e, 0 j s 1
ove `e una radice del polinomio (w) (che dora in poi chiameremo caratteristico). Sono valori accettabili, in quanto distano O(k p ) dalla soluzione
analitica (per contro, e + dista O(1) per qualunque k). Ora zs si trova
risolvendo
s
X
aj zj = 0
j=0
da cui
zs =
s1
X
j=0
aj zj = k
ove si `e usato () = 0 e
s1
X
j=0
aj e
s1
X
aj = k p s + e
j=0
zn,k = zn = k p n + e
`
17.3. CONSISTENZA E STABILITA
105
() =
s
X
aj jj1 = 0
j=0
s
s
s
s
X
X
X
X
j1
n
j
n+1
p
+e
aj =
aj n +
aj j
aj zn+j = k
j=0
j=0
p n
j=0
j=0
p n+1
= k n() + k
() + 0 = 0
mentre
|zn,k yn,k | = k p nn
106
j=0
s1
X
aj y(tn+j ) = k
j=0
s1
X
j=0
(17.10)
= k
+
s1
X
s1
X
j=sn
2n+s
= k
+
s1
X
j=0
bj f (tj+n , z j+n ) + k
j=sn
s1
X
0j s1
bj f (tj+n , y(tj+n ))+
j=sn
aj (z j+n y(tj+n )) ,
s1
X
bj f (tj+n , z j+n ) + k
j=0
aj (z j+n y(tj+n )) ,
0ns
s1
X
j=0
s+1nms
`
17.3. CONSISTENZA E STABILITA
107
Dunque, perche un metodo sia convergente (cio`e lerrore tenda a zero con
k), occorre che le perturbazioni della soluzione introdotte ad ogni passo (da
errori di approssimazione del metodo stesso o arrotondamento) rimangano
limitate (ci`o non fa esplodere la prima parte di (17.10)) e che lerrore locale
tenda a zero con k (ci`o fa andare a zero la seconda parte di (17.10)).
Abbiamo visto che la condizione delle radici `e necessaria affinche perturbazioni limitate generino soluzioni limitate. In realt`a essa `e anche sufficiente.
Inoltre questa condizione permette non solo di mantenere limitate le perturbazioni, ma anche di farle tendere a 0. Si ha infatti il seguente teorema
fondamentale:
Teorema 10 (Equivalenza di Dahlquist). Un metodo lineare multistep con
valori iniziali consistenti `e convergente se e solo se `e consistente e stabile
(cio`e il suo polinomio caratteristico soddisfa la condizione delle radici).
La grande portata di questo teorema `e che il risultato `e valido non solo
per il problema modello (17.9). Inoltre, se i valori iniziali approssimano con
ordine p le soluzioni analitiche, allora il metodo `e convergente con ordine
p. Ritornando al metodo (17.7), si ha che = 2 `e radice del polinomio
1010
msinstabile.m
k = 0.125
k = 0.250
k = 0.500
k = 0.625
soluzione esatta
108
106
104
102
108
che abbiamo usato come modello. Pertanto, il metodo non `e stabile, come
si vede anche in Figura 17.2 ove il metodo `e stato applicato al problema
differenziale
(
y (t) = y(t), t (0, 5]
y(0) = 1
Come corollario al teorema precedente, abbiamo che ogni metodo ad un
passo `e stabile (perche (w) = w 1) e che i metodi di AdamsBashforth
e AdamsMoulton sono stabili (perche (w) = ws ws1 ). Esiste un limite
superiore per lordine di un metodo a s passi, dato dal seguente
Teorema 11 (Prima barriera di Dahlquist). Il massimo ordine per un metodo a s passi convergente `e 2(s + 2)/2 se implicito e s se esplicito.
Per quanto riguarda i metodi BDF (speciali metodi impliciti) si ha che
sono convergenti (cio`e sono stabili) solo per 1 s 6.
17.4
k
en+1 k (1 + k)k
en k + ck 2 + n+1
da cui, per induzione,
ck 2 +
ken k
[(1 + k)n 1] + (1 + k)n ke0 k,
k
ove = max0nm n e quindi
ck
t
+
+ et ke0 k,
ken k (e 1)
0nm
0nm
109
Capitolo 18
Metodi di RungeKutta
18.1
(18.1)
k
k
(18.2)
y n+1 = y n + kf tn + , y n + f (tn , y n )
2
2
110
111
cio`e
1 = y n y(tn )
k
k
2 = y n + f (tn , 1 ) y tn +
2
2
k
y n+1 = y n + kf tn + , 2 y(tn+1 )
2
Lidea generale dei metodi espliciti di RungeKutta `e quella, come al solito,
di sostituire lintegrale nella formula risolutiva
y(tn+1 ) = y(tn ) +
tn+1
f (, y( ))d
tn
j=1
y(tn ) y n = 1 ( c1 = 0)
..
i1
y(t + c k) y + k
ai,j f (tn + cj k, j ) = i
n
i
j=1
..
y(tn + c k) y n + k
a,j f (tn + cj k, j ) =
j=1
y n+1 = y n + k
bj f (tn + cj k, j )
(18.3)
j=1
112
(0)
a2,1
a3,1
..
.
a3,2
..
.
...
c1
c
a1,1
a,1
a1,2
a,2
...
...
a1,2
a,2
a,1
b1
b2
...
b2
b1
f
f
2
(tn , y(tn ))c2 k +
(tn , y(tn ))a2,1 ky (tn ) + O(k ) =
kb2 f (tn , y(tn )) +
t
y
k2
= ky (tn ) + y (tn ) + O(k 3 ) kb1 y (tn ) kb2 y (tn )+
2
f
f
2
f
f
2
2
a2,1 b2 y (tn )+
= k(1 b1 b2 )y (tn ) + k
2
f
k 2 (b2 c2 a2,1 b2 ) (tn , y(tn )) + O(k 3 )
t
Dunque lordine `e due se
0
1
0
1
2
1
1
2
1
2
1
2
2
3
2
3
1
4
3
4
b1 + b2 = 1
1
a2,1 b2 =
b2 c2 = b2 a2,1
113
(18.4)
da cui, per esempio, i metodi di ordine due riportati in Tabella 18.2. I primi
due corrispondono ai due metodi visti allinizio del capitolo e si chiamano,
rispettivamente, metodo di Heun e metodo di Eulero modificato. Da notare
come non esista, tra le infinite soluzioni, una soluzione che annulla il termine O(k 3 ) (bisognerebbe scriverlo esplicitamente per verificarlo). Il punto
cruciale di questo sviluppo in serie di Taylor `e luguaglianza tra
d
f (tn , y(tn )) =
dt
f
f
= y (tn ) + k (tn , y(tn )) + k (tn , y(tn ))y (tn )
t
y
e
f (tn + k, y(tn ) + kf (tn , y(tn ))) = f (tn , y(tn ))+
f
f
+
(tn , y(tn ))k +
(tn , y(tn ))kf (tn , y(tn )) + O(k 2 ) =
t
y
f
f
= y (tn ) + k (tn , y(tn )) + k (tn , y(tn ))y (tn ) + O(k 2 )
t
y
(a meno di O(k 2 )) in cui le derivate di ordine superiore di y (e quindi di f )
sono sostituite da funzioni di funzioni f .
Per ogni > 1, il corrispondente sistema non lineare che si ottiene per la
determinazione dellordine pu`o avere infinite soluzioni. Solitamente si impone
lulteriore vincolo
i1
X
ai,j = ci , 2 i
j=1
bj = 1
j=1
114
1 2
1 2
3
3
4 5
4 4
6
5
7
6
8
6
a1,1
a2,1
a3,1
..
.
a2,2
a3,2
..
.
a3,3
...
...
c1
c
a1,1
a,1
a1,2
a,2
...
...
a1,2
a,2
a1,1
a,1
a,
b1
b2
...
b2
b1
a1,1
a2,1
..
.
..
.
a1,1
a,1
a1,2
a2,2
..
.
..
.
a1,2
a,2
...
...
...
...
...
...
...
...
...
...
b1
b2
...
c1
c2
c3
..
.
c1
c
...
...
a1,1
a2,1
..
.
..
.
a1,1
a,1
a1,
a2,
..
.
..
.
a1,
a,
...
b1
ai,j = ci ,
j=1
1i
X
j=1
bj = 1
ai,j f (tn + cj k, j ), i = 1, . . . ,
= yn + k
i
j=1
bj f (tn + cj k, j )
y n+1 = y n + k
(18.5)
j=1
ai,j f j , i = 1, . . . ,
f = f tn + ci k, y n + k
i
j=1
bj f j
y n+1 = y n + k
j=1
18.2
k
k
1 = y n + f tn + , 1
2
2
k
y n+1 = y n + kf tn + , 1
2
di tableau
1
2
(18.6a)
(18.6b)
1
2
1
Esso equivale al metodo punto medio implicito
k y n + y n+1
y n+1 = y n + kf tn + ,
2
2
(18.7)
k y + y n+1
tn + , n
2
2
116
da cui si deduce che (y n +y n+1 )/2 = 1 e dunque (18.6b) coincide con (18.7).
` un metodo di ordine 2 (lo si dimostra a partire da (18.7) con passaggi molto
E
simili a quelli fatti per i metodi di RungeKutta espliciti di ordine 2) e in
qualche modo simile al metodo dei trapezi. Gode della seguente importante
propriet`a: se per
y (t) = f (t, y(t))
y(t)T y(t) `e costante, cio`e xT f (t, x) = 0 per ogni t, allora per (18.7) vale
T
yT
a `e inten+1 y n+1 = y n y n . Prima di dimostrarlo, osserviamo che la propriet`
ressante quando y(t) `e un vettore di dimensione maggiore di uno, altrimenti
deve essere f = 0 e dunque banalmente y n+1 = y n . Osserviamo poi che
y n+1 y n = kf
k y + y n+1
tn + , n
2
2
y n + y n+1
2
kf
k y + y n+1
tn + , n
2
2
=k
y n + y n+1
2
(y n+1 y n )
da cui la tesi.
3.3
symplectic.m
Heun
trapezi
punto medio impli
ito
3.25
3.2
3.15
3.1
3.05
2.95
2.9
2.85
2.8
0
20
40
60
80
100
120
y1 (t) =
y2 (t) =
y3 (t) =
I2 I3
y2 (t)y3 (t)
I2 I3
I3 I1
y3 (t)y1 (t)
I3 I1
I1 I2
y1 (t)y2 (t)
I1 I2
(18.8)
1 = yn
2 = y n + k(1 )f (tn , 1 ) + kf (tn + k, 2 )
y
n+1 = y n + k(1 )f (tn , 1 ) + kf (tn + k, 2 )
f 1 = f (tn , y n )
f 2 = f (tn + k, y n + k(1 )f 1 + kf 2 )
y n+1 = y n + k(1 )f 1 + kf 2
118
18.3
a2,1
a3,1
..
.
a3,2
..
.
...
a1,1
b1
a1,2
b2
...
...
a2,1
a3,1
..
.
a3,2
..
.
a1,1
a,1
b1
a1,2
a,2
b2
a1,2
b2
b1
...
...
...
...
a1,2
a,2
b2
a,1
b1
(p)
(p1)
(p)
(p1)
p
(tn+1 ) + y
(tn+1 ) y n+1 k Cn+1 kn+1
ky n+1 y n+1 k = ky n+1 y
, (18.9)
a2,1
a3,1
..
.
a32
..
.
a,1
b1
b1
a,2
b2
b2
119
...
...
...
...
a,1
b1
b1
(p1)
(p1)
(18.10)
(p1)
(p)
ky n+1,k
n+1
y n+1,k
n+1
p
p
k = Cn+1 kn+1
= Cn+1 kn+1
p
(cio`e Cn+1 = Cn+1 ) e si impone che lerrore Cn+1 kn+1
valga proprio quanto
la tolleranza richiesta, ricavando
kn+1 =
(p1)
!1/p
(p1)
(p1)
ky n+1 y n+1 k
!1/p
kn+1
(p1)
p
ky n+1,kn+1 y n+1,kn+1 k = Cn+1 kn+1
(p)
(p1)
p
p
ky n+2,kn+2 y n+2,kn+2 k = Cn+2 kn+2
= Cn+1 kn+2
p
(cio`e Cn+2 = Cn+1 ) e, di nuovo, si impone che lerrore successivo Cn+2 kn+2
valga quanto la tolleranza richiesta, ricavando
kn+2 =
(p1)
!1/p
(p1)
(p1)
ky n+1 y n+1 k
!1/p
kn+1
120
(p1)
(p1)
!1/p
(p1)
tola + ky n+1 k tolr
kn+1
min 2, max 0.6, 0.9
(p)
(p1)
ky n+1 y n+1 k
Vediamo un esempio facile di costruzione di metodi di RungeKutta embedded. Innanzitutto, osserviamo che qualunque metodo di RungeKutta
(in, particolare, quelli di ordine due) richiede la valutazione di f 1 = f (tn , y n )
che `e praticamente tutto ci`o che serve per il metodo di RungeKutta di ordine uno, cio`e il metodo di Eulero. Quindi, qualunque metodo di RungeKutta
di ordine due di tableau
0
c2 a2,1
b1 b2
(2)
(1)
(1)
(21)
h
i1/2
(1)
(21)
kn+2 = (tola + ky n+1 k tolr )/ken+1 k
kn+1
n=n+1
Forse il pi`
u importante metodo di RungeKutta embedded `e il Runge
KuttaFehlberg, di ordine (4)5, il cui tableau `e riportato in Tabella 18.7.
121
0
1
4
3
8
12
13
1
1
2
1
4
3
32
1932
2197
439
216
8
27
9
32
7200
2197
7296
2197
3680
513
3544
2565
845
4104
1859
4104
11
40
25
216
1408
2565
2197
4104
15
16
135
6656
12825
28561
56430
9
50
2
55
Capitolo 19
A-stabilit`
a
Purtroppo la consistenza e la stabilit`a di un metodo non sono sufficienti
per avere un buon solutore di qualunque equazione differenziale ordinaria.
Consideriamo infatti il seguente problema lineare
(
y (t) = y(t) t > t0
(19.1)
y(t0 ) = y0
la cui soluzione esatta y(t) = e(tt0 ) y0 tende a zero, per t +, se () <
0. Analizziamo il comportamento del metodo di Eulero per questo problema,
supponendo di avere fissato il passo temporale k: si ha
yn+1 = yn + kyn = (1 + k)yn
da cui
yn = (1 + k)n y0
Si ha
lim yn = 0 |1 + k| < 1 1 + k 2 ()2 + 2k() + k 2 ()2 < 1
da cui
lim yn = 0 k <
2()
||2
(19.2)
n
1
yn =
y0
1 k
122
123
da cui
lim yn = 0 |1 k| > 1 |1 k() ki()| > 1
1 + (1 )k
yn =
1 k
Si ha
y0
1 + (1 )k
< 1 |1 + (1 )k| < |1 k|
lim yn = 0
n
1 k
0 < (2 (1 )2 )k 2 ()2 (2 + 2(1 ))k() + (2 (1 )2 )k 2 ()2
da cui
lim yn = 0 0 < (2 1)k 2 ||2 2k()
2()
,
(2 1)||2
(2 1 < 0)
(19.3)
1 + (1 )k
r(k) =
1 k
`
CAPITOLO 19. A-STABILITA
124
-2
-2
-2
-4
-4
-4
-4
-2
-4
-2
-4
-2
lim |r(k)| =
k()
Tale limite vale proprio 1 per = 1/2. Significa che se () 0 oppure k
0 il metodo dei trapezi potrebbe mostrare qualche problema di instabilit`a. In
tal caso, il metodo migliore, da questo punto di vista, `e il metodo di Eulero
implicito ( = 1). In Figura 19.2 vediamo lapplicazione dei due metodi al
problema
(
y (t) = 2000(y cos t), t 1.5
(19.4)
y(0) = 0
Se
lim
|r(k)| = 0
k()
19.1
A-stabilit`
a dei metodi di RungeKutta
espliciti
Lstability.m
Trapezi
Eulero impli
ito
1.5
y(t)
0.5
-0.5
0
0.5
1.5
Figura 19.2: Metodi dei trapezi e di Eulero implicito per la soluzione di (19.4)
con k = 1.5/40.
4
-2
-2
-2
-4
-4
-4
-2
-4
-4
-2
-4
-2
1
X
a,j j = yn + k
j=1
1
X
a,j j = p1 (z)yn
j=1
X
j=1
bj j = r(k)yn
`
CAPITOLO 19. A-STABILITA
126
zp
z2
+ ... +
r(k) = r(z) = 1 + z +
+ O(z p+1 )
2!
p!
da cui la tesi.
Dunque, i metodi di RungeKutta di ordine p uguale al numero di stadi
hanno tutti la stessa regione di stabilit`a. In ogni caso, la dimostrazione
qui sopra mostra che per un metodo di RungeKutta esplicito r(z) `e un
polinomio di grado (e dunque di grado maggiore di 0).
Teorema 13. Nessun metodo di RungeKutta esplicito `e A-stabile.
Dimostrazione. Si ha
lim yn = 0 |r(z)| < 1,
z = k
19.2
A-stabilit`
a dei metodi lineari multistep
19.3
127
Equazioni stiff
Se consideriamo il problema
(
y (t) = 100y(t), t > 0
y(0) = 1
la condizione (19.3) per il metodo di Eulero impone k < 1/50 = 0.02. Daltra
parte, la soluzione analitica del problema per t = 0.4 `e minore di 1017 (e
dunque, trascurabile, nel senso che y(0) t(t ) = y(0), in precisione doppia).
Dunque, con poco pi`
u di 20 passi il metodo di Eulero arriva a calcolare
adeguatamente la soluzione sino a t .
10300
stiff.m
10250
10200
10150
10100
1050
100
k < 2/100
1050
500
1000
2000 2500
Figura 19.4: Eulero esplicito e Eulero implicito per la soluzione di (19.5) fino
al tempo t = 40.
Qual `e dunque il problema? Eccolo:
100
0
y(t), t > 0
y (t) =
0 1
y(0) = 1
1
La soluzione analitica `e
100t
e
y(t) =
et
(19.5)
`
CAPITOLO 19. A-STABILITA
128
e la sua norma infinito `e minore di 1017 per t = 40. Poiche per`o per poter
calcolare la prima componente serve un passo temporale k < 0.02, sono necessari pi`
u di 2000 passi (vedi Figura 19.4), anche se la prima componente
diventa trascurabile dopo pochi passi e la seconda non richiederebbe un cos`
elevato numero di passi. Dunque, anche se il metodo `e convergente e il passo,
per esempio, k = 0.1 garantisce un errore locale proporzionale a k 2 = 0.01, il
metodo di Eulero non pu`o essere usato con tale passo. Usando il metodo di
Eulero implicito sarebbe possibile invece usare un passo piccolo allinizio e
poi, quando ormai la prima componente `e trascurabile, si potrebbe incrementare il passo, senza pericolo di esplosione della soluzione. Per questo semplice
problema, sarebbe possibile calcolare le due componenti separatamente. Nel
caso generale, per`o, il sistema non `e disaccoppiato. Per lanalisi, ci si pu`o
ricondurre, eventualmente in maniera approssimata, ad uno disaccoppiato e
ragionare per componenti. Infatti, se A `e una matrice diagonalizzabile,
y (t) = Ay(t) z (t) = Dz(t) z(t) = exp(tD)z 0
ove AV = V D, D = diag{1 , 2 , . . . , d }, e y(t) = V z(t). Poi
y (t) = Ay(t) + b z (t) = Dz(t) + V 1 b
z(t) = z 0 + t1 (tD)(Dz 0 + V 1 b)
ove
e 1
1 () =
se 6= 0
se = 0
fi
(y )
yj n
129
(1 ) < 0, (2 ) < 0
(1 ) (2 )
In pratica, pu`o essere molto difficile capire se un sistema non lineare
presenta regioni di stiffness o meno. Altrettanto difficile `e rispondere alla
domanda: per un problema stiff, conviene usare un metodo esplicito con
` chiaro che il metodo esplicito `e di
passo piccolo o un metodo implicito? E
facile implementazione e applicazione, ma richiede molti passi temporali (e
vedi 17.4). Il metodo implicito richiede la soluzione ad ognuno dei pochi
passi di un sistema, in generale, non lineare.
19.3.1
1
max
Capitolo 20
Integratori esponenziali
I problemi di assoluta stabilit`a per semplici problemi lineari visti nel capitolo
precedente, portano alla ricerca di nuovi metodi. Consideriamo il sistema
differenziale
(
y (t) = Ay(t) + b, t > 0
y(t0 ) = y 0
La soluzione analitica `e
y(t) = exp((tt0 )A)y 0 +(tt0 )1 ((tt0 )A)b = y 0 +(tt0 )1 ((tt0 )A)(Ay 0 +b)
Infatti y(t0 ) = y 0 e
y (t) = A exp((t t0 )A)y 0 + exp((t t0 )A)b =
= A(exp((t t0 )A)y 0 + (t t0 )((t t0 )A)1 exp((t t0 )A)b+
(t t0 )((t t0 )A)1 b + A1 b) =
= A(exp((t t0 )A)y 0 + (t t0 )1 ((t t0 )A)b) + b = Ay(t) + b
Le funzioni exp e 1 di matrice possono essere approssimate come visto al
paragrafo 7. Da questa osservazione, per un problema
(
y (t) = Ay(t) + b(t, y(t)), t > 0
y(t0 ) = y 0
il metodo Eulero esponenziale `e
y n+1 = exp(kA)y n + k1 (kA)b(tn , y n ) = y n + k1 (kA)(Ay n + b(tn , y n ))
Proposizione 4. Il metodo di Eulero esponenziale `e esatto se b(y(t)) =
b(y 0 ) b e di ordine uno altrimenti.
130
131
Dimostrazione. Si ha
y n+1 = exp(kA)y n +
tn+1
tn
exp((tn+1 )A)g(tn )d
ove si `e posto g(t) = b(t, y(t)). Per la formula di variazioni delle costanti (7.2)
Z tn+1
y(tn+1 ) exp(kA)y(tn )
exp((tn+1 )A)g(tn )d =
tn
Z tn+1
= exp(kA)y(tn ) +
exp((tn+1 )A)g( )d +
tn
Z tn+1
exp(kA)y(tn )
exp((tn+1 )A)g(tn )d =
tn
Z tn+1
=
exp((tn+1 )A)(g(tn ) + g (n )( tn ) g(tn ))d =
tn
2
= k 2 (kA)g (n ) = O(k 2 )
k2I
k3A
k I k3A
4
4
=
+
+ O(k )
+ O(k ) b (n + k/2) =
2
6
2
2
3
= O(k )
132
f
(y ),
y n
Capitolo 21
Esercizi
1. Si consideri il seguente problema differenziale del secondo ordine ai
limiti
u(1) = 1
(0) = 0
p
La si risolva con il metodo dei trapezi fino al tempo t = l/g (assumendo l = 1, 0 = /4). Si confronti la traiettoria con quella del
pendolo linearizzato (sin (t) (t)). Di questultimo, si trovi il numero minimo di passi temporali affinche il metodo di Eulero esplicito
produca una soluzione al tempo t che dista da (t ) meno di 102 .
3. Si calcoli y(1), ove y (t) = Ay(t), y(0) = [1, . . . , 1]T , con A data da A
= 100*toeplitz(sparse([1,1],[1,2],[-2,1],1,10)), usando il metodo con = 0, 1/2, 1 e diversi passi temporali k = 23 , 24 , . . . , 28 .
Si confrontino i risultati con la soluzione di riferimento ottenuta usando
= 1/2 e k = 210 , mettendo in evidenza lordine del metodo usato.
Si provi anche il valore = 1/3, discutendo i risultati ottenuti.
133
134
(t)
m
g
A (t) = 2a(t)A(t)
a (t) = A(t)2 + (t)2 a(t)2 1
(21.1)
A(0) = 0.5
a(0) = 2
(0) = 10
con il metodo di Eulero implicito fino ad un tempo finale t = 15, producendo un grafico della quantit`a E(t) = (A(t)2 + a(t)2 + (t)2 +
1)/(2A(t)). Si confrontino le soluzioni ottenute usando 300 o 900
timesteps.
5. Si implementi il metodo di Eulero modificato (secondo tableau in Tabella 18.2) e lo si testi per il sistema differenziale (21.1), producendo il
grafico della quantit`a E(t).
6. Si implementino gli altri due metodi di ordine 2 in Tabella 18.2, li si
testi per il sistema differenziale (21.1), mettendone in evidenza lordine.
135
0
1
2
1
2
1
2
1
2
0
0
1
6
1
3
1
3
1
6
A
bT
1
2
1
6
2
3
1
6
Parte 3
PDEs
(Equazioni alle derivate
parziali)
136
Capitolo 22
Equazioni di
trasporto-diffusione-reazione
Ci occuperemo in questo capitolo delle equazioni di trasporto-diffusionereazione (advection-diffusion-reaction, ADR).
22.1
2u
u
u(0, x) = u0 (x),
x (0, L) (condizioni iniziali)
(22.1)
22.1.1
t > 0, x (0, L)
138
da cui
Kx
+ Ce
Kx
KL
+ Ce
KL
= B e KL e KL
2 2
j
j
x
uj (t, x) = exp 2 t sin
L
L
`e soluzione dellequazione del calore (e soddisfa le condizioni ai bordi) per
ogni j. Quindi, la seguente serie
u(t, x) =
cj uj (t, x)
j=1
`e soluzione formale dellequazione del calore. Per quanto riguarda la condizione iniziale, si deve imporre
u0 (x) = u(0, x) =
X
j=1
cj sin
j
x
L
(22.2)
+
X
j=
u0 j j (x)
139
converge in [L, L]. Poiche u0 (x) `e dispari, con riferimento al paragrafo 13.2.1,
Z L
Z L
i
2j(x + L)
u0m/2+1+j =
dx =
u0 (x) sin
u0 (x)m/2+1+j (x)dx =
2L
2L L
L
Z
jx
i 2 L
u0 (x) sin
+ j dx =
=
L
L 0
Z
i 2 L
jx
=
+ j dx
u0 (x) sin
L
L 0
e
u0 m/2+1j
Z L
i
2j(x + L)
= u0 (x)m/2+1j (x)dx =
dx =
u0 (x) sin
2L
2L L
L
Z
i 2 L
u0 (x) sin(jx/L + j)dx = u0 m/2+1+j
=
L 0
Z
da cui
u0 (x) =
+
X
j=
+
X
u0m/2+1+j
cos(jx/L + j) + i sin(jx/L + j)
=
2L
u0m/2+1+j
cos(jx/L + j) + i sin(jx/L + j)
+
2L
j=
1
X
j=
+
X
u0 m/2+1+j
j=1
+
X
j=1
+
X
cos(jx/L + j) + i sin(jx/L + j)
=
2L
u0m/2+1+j
cos(jx/L + j) i sin(jx/L + j)
+
2L
cos(jx/L + j) + i sin(jx/L + j)
=
2L
j=1
X
2
=
u0 m/2+1+j i sin(jx/L + j) =
L
j=1
Z
X
2 L
j
j
=
x dx sin
x
u0 (x) sin
L 0
L
L
j=1
u0 m/2+1+j
140
2
cj =
L
u0 (x) sin
j
x dx
L
j 22
j
u(t, x) =
cj exp 2 t sin
x
L
L
j=1
`e soluzione di (22.1) (bisogna poter derivare sotto il segno di serie). Dalla
presenza del termine esponenziale negativo nel tempo per ogni componente
uj (t, x), si deduce ogni componente tende a zero per t + (e dunque
anche la soluzione), ma con diverse velocit`a dipendenti da un fattore proporzionale a j 2 . Lequazione del calore rappresenta il modello dei fenomeni
di diffusione. La diffusione `e il processo mediante il quale la materia (o lenergia) `e trasportata da una parte di un sistema ad unaltra come risultato
di moti molecolari random.
22.1.2
Unicit`
a della soluzione
1 2
u (t, x)dx
2
Si ha
dE
=
dt
Z L
Z L 2
u
u
1 2
u (t, x) dx =
u dx =
u 2 dx
t 2
t
x
0
0
L
0
u
x
dx 0
141
22.2
Metodo di Fourier
la soluzione approssimata, si ha
m
X
uj (t)j (x)
j=1
m
X
uj (t)2j j (x)
j=1
2 2 t/L2
u0 k ,
1km
142
da cui poi si ricostruisce u(t, x). Avevamo visto che la decomposizione di Fourier si usa in caso di condizioni al bordo periodiche, mentre per lequazione
del calore sono di Dirichlet nulle. Poiche per`o il dato iniziale `e la funzione dispari u0 (x), allora la soluzione u(t, x) dellequazione del calore nellintervallo
[L, L] `e pure dispari. Infatti, posto v(t, x) =
u(t, x), si ha
v
u
(t, x) = (t, x)
t
t
2
2 u
(t,
x)
=
(
(t, x)
x2
x2
22.3
u
2u
(t,
x)
=
(t, x) + g(u(t, x)) + s(t, x), t > 0, x (a, b)
t
x2
+ condizioni ai bordi
+ condizione iniziale
(22.3)
ove il termine g(u(t, x)) si chiama reazione e il termine s(t, x) sorgente, prevede di discretizzare gli operatori differenziali spaziali con uno dei metodi
visti per i problemi con valori ai bordi e poi risolvere il sistema di ODEs che
ne risulta con un metodo per problemi ai valori iniziali visti. Assumeremo
sempre che la condizione iniziale soddisfi le condizioni ai bordi. Vediamo
qualche esempio.
22.3.1
143
Differenze finite
..
=
h2 0
.
ym1
(t)
..
(t)
ym
0
y1 (t)
y2 (t)
...
2
..
.
1
..
.
...
..
.
..
.
...
1
0
2
1
0
y1 (t)
b(t1 , y1 (t))
..
.
y2 (t) b(t2 , y2 (t))
..
..
0
.
.
1
ym (t)
b(tm , ym (t))
2
(22.4)
2
1
0
...
0
..
1 2
1
...
.
mm
...
... ...
0
0
R
.
...
..
1
2
1
0
... 0
1 2
j = 4 sin
j
2m+1
1jm
che vengono poi amplificati dal coefficiente 1/h2 . Dunque, con riferimento
alla condizione (19.2) per il metodo di Eulero, volendo usare questo metodo
per lintegrazione temporale occorrerebbe un passo temporale k minore di
(circa) h2 /2. Siccome il metodo di Eulero `e del primo ordine, volendo che
lintegrazione temporale non sia meno accurata dellapprossimazione spaziale,
`e giusto che il passo temporale sia proporzionale a h2 (cos` che lerrore globale
sia O(k + h2 ) = O(h2 )). Per ridurre il numero di time steps, si pu`o usare un
metodo di ordine pi`
u alto, per esempio un metodo di RungeKutta esplicito
di ordine 2. La restrizione sul time step `e per`o la stessa (vedi la regione di
assoluta stabilit`a del metodo in Figura 19.3) del metodo di Eulero. Dunque,
ancora k dovrebbe essere proporzionale a h2 /2 (quindi il numero di time steps
non diminuisce) e lerrore globale `e ancora O(k 2 + h2 ) = O(h4 + h2 ) = O(h2 ).
144
22.3.2
22.3.3
145
22.4
Equazione di trasporto-diffusione
u(0, x) = u0 (x)
(22.5)
u
u
t
x
u(t,
a)
=
0,
t>0
u(0, x) = u0 (x),
x (a, b)
(22.6)
146
u
u
2u
(t,
x)
+
c
(t,
x)
=
d
t > 0, x (a, b)
t
x
x2
u(0, x) = u0 (x)
u(t, a) = u(t, b) = 0
t>0
..
.
.
..
147
n
t
exp(tA) = lim I + A 0
n
n
da cui la positivit`a.
Tornando allequazione (22.5), la discretizzazione mediante differenze finite centrate del secondo ordine porge, nei nodi interni,
yi (t) + c
22.4.1
u
u
2u
(t,
x)
+
c
(t,
x)
=
d
t > 0, x (0, 1)
x
x2
t
u(0, x) = x2
(22.7)
u(t, 0) = 0
u(t, 1) = 1
148
1.5
1.5
FD upwind
peclet.m
FD upwind
s
hema SG
soluzione di riferimento
FD
entrate
0.5
0.5
s
hema SG
soluzione di riferimento
FD
entrate
-0.5
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
-0.5
0.9
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
h
2h
2
h2
e quindi approssimare al primo ordine
c
2u
ui ui1
ui1 2ui + ui+1
u
(t, xi ) + d 2 (t, xi ) c
+d
=
2
x
x
h
h
ui+1 ui1
ch ui1 2ui + ui+1
= c
+d 1+
2h
2d
h2
ch 2 u
u
(t, xi )
c (t, xi ) + d 1 +
x
2d x2
149
ch
2d
ch
Pe
=
< 1,
2d(1 + Pe)
1 + Pe
e ci`o spiega lassenza di oscillazioni. Vorremmo trovare una diffusione artificiale che stabilizzi lo schema e preservi lordine due delle differenze finite centrate. Cercheremo dunque una funzione del numero di Peclet e
sostituiremo d con d(1 + (Pe)) in modo che il nuovo numero di Peclet valga
ch
2d(1 + (Pe))
La funzione (Pe) dovr`a soddisfare:
(Pe) Pe 1 (cos` il nuovo numero di Peclet sar`a minore o uguale
a 1), ma non troppo grande (altrimenti si introduce troppa diffusione
artificiale)
(ch/(2d)) = O(h2 ), h 0 (cos` la discretizzazione a differenze finite
centrare sar`a di ordine 2)
Una scelta possibile `e
(t) = t 1 + et ,
(t) =
t2
+ O(t3 ),
2
t0
2t
,
2t
e 1
(t) =
t2
+ O(t4 ),
3
t0
(da notare che lo schema upwind corrisponde a (t) = t). Il risultato corrisponde al grafico magenta in Figura 22.1 e lo schema si chiama di Scharfetter
e Gummel.
Lesempio usato aveva il coefficiente c positivo: la funzione da usare deve
essere funzione del numero di Peclet Pe = |c|h/(2d), in modo da aggiungere
diffusione artificiale e non togliere. Per esempio, nel caso upwind con c < 0,
(Pe) = Pe = ch/(2d) e pertando la discretizzazione al primo ordine che
ne risulta `e
c
u
2u
ui+1 ui
ui1 2ui + ui+1
(t, xi ) + d 2 (t, xi ) c
+d
=
2
x
x
h
h
ui+1 ui1
ch ui1 2ui + ui+1
= c
+d 1
2h
2d
h2
150
22.4.2
Elementi finiti
Nel caso di discretizzazione spaziale con elementi finiti lineari, la discretizzazione del problema (22.3) porta al sistema di ODEs
P y (t) = Ay(t) + g(y(t)) + s(t)
(22.8)
j=1
xi
xi1
(22.9b)
m
X
uj j (x) i (x)dx +
j=1
xi+1
xi
m
X
j=1
uj j (x) i (x)dx
g1 =
151
Usando un metodo esplicito per la risoluzione del sistema differenziale (22.8), `e necessaria linversione della matrice di massa. Per tale motivo, si
pu`o ricorrere alla tecnica del mass lumping che consiste nel rendere diagonale
la matrice P sostituendo ogni sua riga con una riga di zeri e la somma degli
elementi originali in diagonale. Tale modifica `e equivalente allapprossimazione degli integrali in (22.9) mediante la formula dei trapezi e dunque non
(1)
riduce laccuratezza del metodo. Infatti, la matrice PL A (PL la matrice di
massa con lumping) risulta uguale alla matrice che si ottiene discretizzando
con differenze finite centrate del secondo ordine.
Usando invece un metodo implicito per la risoluzione del sistema differenziale (22.8), non `e necessaria la tecnica del mass lumping: semplicemente,
si devono risolvere sistemi lineari in cui la matrice identit`a `e sostituita dalla
matrice di massa.
22.4.3
Con il metodo delle linee, `e facile capire cosa contribuisce allerrore spaziale
e cosa allerrore temporale. Per esempio, se si usano differenze finite centrate
1
di ordine due, si commette un errore Ch2 , h m1
. Questo significa che,
qualunque metodo si usi per lintegrazione temporale e con qualunque passo
temporale, non `e possibile scendere sotto tale errore. Ci`o `e esemplificato
erroretemporale.m
103
m = 200
m = 250
m = 300
104
errore
105
106
107
108
101
102
passi temporali
103
152
22.5
Esercizi
u
2u
(t,
x)
=
(t, x) + 2et sin(x), t > 0, x (0, /2)
t
x
u(t, 0) = 0,
t>0
(t, /2) = 0,
t>0
u(0, x) = sin(x),
x (0, /2)
usando differenze finite del secondo ordine nello spazio e il metodo dei
trapezi nel tempo. Si mostrino gli ordini spaziali e temporali della
convergenza alla soluzione analitica al tempo t = 1.
2. Per lesercizio sopra, discretizzato nello spazio tramite differenze finite
centrate del secondo ordine con m = 100 nodi, si determini il numero
minimo di passi temporali per avere un errore al tempo t = 1 rispetto
alla soluzione analitica inferiore a 103 , avendo usato nel tempo
il metodo di Eulero
il metodo di Eulero implicito
il metodo dei trapezi
il metodo di Heun
il metodo RungeKutta di tableau in Tabella 21.1
3. Si ripeta lesercizio 1. usando Eulero esponenziale e esponenziale
punto medio nel tempo.
4. Si studi landamento della soluzione del problema di trasporto-diffusione-
22.5. ESERCIZI
153
reazione
u
2u
u
(t,
x)
+
c
(t,
x)
=
d
(t, x) + u(t, x)(u(t, x) 1/2)(1 u(t, x)), t > 0, x (0, 1)
t
x
x2
u(t, 0) = 0,
t>0
(t, 1) = 0,
t>0
Parte 4
Temi desame
154
155
29-06-2010
1. Si implementi il metodo di RungeKutta definito dal tableau
0
1
2
1
2
1
2
1
2
0
0
3
4
5
32
7
32
13
32
1
32
12
7
3
7
3
13
6
16
3
(0) =
3
(0) = 0
l (0) =
3
l (0) = 0
1 2u
1
u
u(t, 0) = u(t, 1) = 0,
t>0
156
5. Si consideri il metodo implicito ad un passo
h 1
y n+1 = y n + hf tn + , (y n + y n+1 ) ,
2 2
n0
2u
u
(t,
x)
=
(t, x) (sin t)(x2 + 2x) + 2 cos t, t 0, x (0, 1)
t
2
u(0, x) = x2 + 2x,
x (0, 1)
u(t, 0) = 0,
u (t, 1) = 0,
x
t0
t0
e si mostri lordine di convergenza temporale del metodo Eulero esponenziale per approssimare la soluzione u(t , x) al tempo t = 1.
7. Per lo stesso problema, si mostri lordine di convergenza temporale del
metodo esponenzialepunto medio.
15-09-2010
8. Si consideri il metodo di RungeKutta semi-implicito
!
i
X
f i = f tn + ci k, y n + k
ai,j f j , i = 1, 2
j=1
y n+1 = y n + k
2
X
j=1
bj f j
157
di tableau
c1 a1,1 a1,2
c2 a2,1 a2,2 =
b1
b2
3+ 3
6
3 3
6
3+ 3
6
33
3+ 3
6
1
2
1
2
u
2u
(t,
x)
=
(t, x) + (2x x2 ) cos t + 2 sin t, t 0, x (0, 1)
t
x
u(0, x) = 0,
x (0, 1)
u(t, 0) = 0,
t0
u(t, 1) = sin t,
t0
e si mostri lordine di convergenza temporale del metodo Eulero implicito con cui viene approssimata la soluzione u(t , x) al tempo t =
1.
30-09-2010
10. Si risolva mediante il metodo delle differenze finite il problema ai limiti
non lineare
u(1) = 17
43
u(3) =
3
e si confronti il numero di iterazioni necessarie alla convergenza usando il metodo di Newton esatto e un metodo di Newton inesatto (la
soluzione analitica `e u(x) = x2 + 16/x).
158
11. Si applichi il metodo delle linee al problema di diffusione non omogeneo
u
2u
(t,
x)
=
(t, x) + 2et sin x, t > 0, x (0, /2)
t
2
u(0, x) = sin x,
x (0, /2)
u(t, 0) = 0,
u (t, /2) = 0,
x
t0
t0
e si mostri lordine di convergenza temporale del metodo Eulero esponenziale con cui viene approssimata la soluzione analitica u(t , x) al
tempo t = 1.
01-02-2011
12. Si risolva il sistema di ODEs
u (t) = 2v(t)u(t)
v (t) = u(t)2 + z(t)2 v(t)2 1
u(0) = 1
v(0) = 2
z(0) = 15
2u
u
u
(t,
x)
=
(t, x) +
(t, x) + u(t, x)(u(t, x) 1/2)(1 u(t, x))
2
t
x
x
u(0, x) = 10x2 (1 x)2 + 1/2
u (t, 0) = u (t, 1) = 0
x
x
(ove = 1/100 e = 10) e si mostri lordine di convergenza del metodo
Eulero esponenziale, avendo preso come soluzione di riferimento quella
ottenuta con un passo spaziale e un passo temporale entrambi pari a
1/100.
159
24-02-2011
14. Si risolva mediante un metodo di shooting il problema ai limiti
u
(x)
=
(32 + 2x3 u(x)u (x)), x (1, 3)
u(1) = 17
43
u(3) =
3
Sapendo che la soluzione analitica `e u(x) = x2 + 16/x, si determini
sperimentalmente il numero minimo di passi temporali per avere un
errore in norma infinito minore di 102 .
15. Si applichi il metodo delle linee al problema di diffusione non omogeneo
u
2u
5
x
(t,
x)
=
(t, x) + et sin , t > 0, x (0, )
t
x
4
2
u(0, x) = sin ,
x (0, )
2
u(t, 0) = 0,
t0
u (t, ) = 0,
t0
x
e si mostri lordine di convergenza temporale del metodo esponenziale
punto medio con cui viene approssimata la soluzione analitica u(t , x)
al tempo t = 1.
21-06-2011
16. Si risolva il seguente problema differenziale
u (0) = 0
u
1 2u
(t,
x)
=
(t, x) + sin(u(t, x)),
t
100 x2
u (t, 1) = 0,
x
diffusione-reazione
t > 0, x (0, 1)
x [0, 1]
t0
t0
160
usando differenze finite centrate nello spazio e il metodo dei trapezi
nel tempo. Si mostri il corretto ordine di convergenza del metodo dei
trapezi per lapprossimazione della soluzione al tempo t = 1.
18. Per il problema sopra, si proponga un metodo di Newton modificato per la risoluzione dei sistemi non lineari. Si confrontino i tempi
computazionali (con i comandi tic, toc) rispetto al caso di metodo di
Newton esatto quando si usino un passo spaziale ed un passo temporale
1
entrambi uguali a 100
.
11-07-2011
19. Si risolva il seguente problema ai limiti
u(x)
+ 2 ex , x (0, 1)
u (x) = e
u (0) = 0
u(1) = 1
` possibile
usando il metodo delle differenze finite di ordine due. E
verificare lordine di convergenza? Perche?
1 2u
u
(t,
x)
=
(t, x) + cos(u(t, x)),
t
50
x
u(0, x) = 10x2 (1 x) + 1,
(t, 0) = 0,
u(t, 1) = 1,
diffusione-reazione
t > 0, x (0, 1)
x [0, 1]
t0
t0
usando differenze finite centrate nello spazio e il metodo Eulero implicito nel tempo. Si mostri il corretto ordine di convergenza del metodo di
Eulero implicito per lapprossimazione della soluzione al tempo t = 1.
15-09-2011
21. La legge oraria (lineare) del moto di un proiettile sottoposto ad attrito
viscoso in regime laminare `e
x (t) = Bx (t)
y (t) = By (t) g
x(0) = 0
y(0) = 0
x (0) = v cos()
y (0) = v sin()
0
0
161
ove B = b/m, m = 0.5 la massa del proiettile e b = 0.01 il coefficiente
dattrito, g = 9.81 laccelerazione di gravit`a, v0 = 200 il modulo della
velocit`a iniziale e = /3 langolo di gittata. Determinare, mediante
una opportuna strategia, il punto di atterraggio x(T ) del proiettile.
22. Si applichi il metodo delle linee al problema di diffusione-reazione
1 2u
u
=
+ u(1 u)(u 1/2), t > 0, x (0, 1)
t
100 x2
x [0, 1]
u(0, x) = 10x2 (1 x)2 ,
u
(t, 0) = 0,
t0
u (t, 1) = 0,
t0
x
29-09-2011
23. Si risolva il seguente problema differenziale
y (x) = 2y 3 6y 2x3 , x (1, 2)
y(1) = 2
y(2) = 5
2
2u
x
5 t
u
(t,
x)
=
e
cos
, t > 0, x (, 2)
(t,
x)
+
t
x
4
2
u(0, x) = cos x ,
x (, 2)
2
u(t, ) = 0,
t0
u (t, 2) = 0,
t0
x
e si mostri il corretto ordine di convergenza temporale del metodo esponenziale punto medio con cui viene approssimata la soluzione analitica
u(t , x) al tempo t = 1.
03-02-2012
162
25. Si risolva il seguente problema differenziale
y (x)
y (0) = 0
u
2u
3
(t, x) =
(t, x) + et/2 sin x, t > 0, x (, /2)
t
x
2
u(0, x) = sin x,
x (, /2)
u(t, ) = 0,
t0
u (t, /2) = 0,
t0
x
0
1
2
1
2
1
2
1
2
163
28. Si applichi il metodo delle linee al problema di diffusione lineare
u
x x2 2 u
(t,
x)
=
2 (t, x), t > 0, x (0, 1)
2
x
t
2
u(0, x) = x x,
x (0, 1)
u(t, 0) = 0,
t0
u(t, 1) = 0,
t0
21-06-2012
29. Dei seguenti due metodi multistep
18
y
+
11 n+2
18
y n+3 y n+2 +
11
y n+3
9
y
11 n+1
9
y
11 n+1
2
6
y n = k f (tn+3 , y n+3 )
11
11
3
6
y n = k f (tn+3 , y n+3 )
11
11
u
u
2u
+
c
=
d
+ u(u 1/2)(1 u), t > 0, x (0, 1)
t
x
x
u(t, 0) = 1,
t>0
(t, 1) = 0,
t>0
u(0, x) = (x 1)2 ,
x (0, 1)
05-07-2012
164
31. Si risolva il seguente problema ai limiti
2
2x
u(1) = e
x (0, 1)
u
2u
x
t
x
2
u(0, x) = cos x ,
2
(t, 0) = 0,
u(t, ) = 0,
t > 0, x (0, )
x (0, )
t0
t0
e si mostri il corretto ordine di convergenza temporale del metodo esponenziale punto medio con cui viene approssimata la soluzione analitica
u(t , x) al tempo t = 1.
10-09-2012
33. Dato il sistema differenziale del primo ordine
1
y2 (t) = y1 (t)y3 (t) sin t + y1 (t)y3 (t)
20
p
si dimostri che m(t) = y1 (t)2 + y2 (t)2 + y3 (t)2 rimane costante nel
tempo. Si applichi il metodo
con dato iniziale
di Eulero implicito,
5
m(1)|
2 10 , ove m(t)
165
34. Si risolva il seguente problema di convezione-diffusione
u
2u
u
t
x
x
u(0, x) = x2 ,
x (0, 1)
(t, 0) = 0,
t0
u(t, 1) = 1,
t0
usando differenze finite del secondo ordine con passo h = 1/50 nello spazio e il metodo di Eulero esplicito nel tempo fino a t = 1. Perche serve
un passo temporale minore di circa 1/20000 per avere convergenza? Si
mostri infine il corretto ordine di convergenza temporale.
24-09-2012
35. Si trovi sperimentalmente lordine del seguente metodo di RungeKutta
semiimplicito
1
2
1
2
k y n + y n+1
y n+1 = y n + kf tn + ,
2
2
Sugg.: per questultimo si calcoli (y n + y n+1 )/2. . .
36. Si risolva il seguente problema di convezione-diffusione-reazione
u
u
2u
+
c
=
d
(t, x) + u2 (1 u), t 0, x (0, 1)
t
x
x
u(0, x) = x2 + 1,
x (0, 1)
(t, 0) = 0,
t0
u(t, 1) = 0,
t0
Parte 5
Bibliografia
166
Bibliografia
[1] J.
P.
Boyd,
Chebyshev
and
Fourier
Spectral
Methods,
DOVER
Publications,
Inc.,
2000.
http://www-personal.umich.edu/~jpboyd/BOOK_Spectral2000.html
[2] C. Canuto, M. Y. Hussaini, A. Quarteroni, and T. A. Zang, Spectral
Methods in Fluid Dynamics, Springer-Verlag, 1986.
[3] V. Comincioli, Analisi numerica: metodi, modelli, applicazioni, McGraw
Hill, 1995.
[4] E. Hairer and G. Wanner, Solving Ordinary Differential Equations II, Stiff
and Differential-Algebraic Problems, Springer, Second Revised Edition,
2002.
[5] E. Hairer, S. P. Nrsett, and G. Wanner, Solving Ordinary Differential
Equations I, Nonstiff Problems, Springer, Second Revised Edition, 2000.
[6] W. Hundsdorfer,
Numerical Solution of Advection-DiffusionReaction Equations, Lecture notes, Thomas Stieltjes Institute, 2000.
http://homepages.cwi.nl/~willem/Coll_AdvDiffReac/notes.pdf
[7] A. Iserles, A First Course in the Numerical Analysis of Differential
Equations, Cambridge Texts in Applied Mathematics, second ed., 2009.
[8] R. J. Leveque, Numerical Methods for Conservation Laws, Lectures in
Mathematics, Birkhauser, 1992.
[9] A. Quarteroni, Modellistica numerica per problemi differenziali, Springer,
terza edizione, 2006.
167