Appunti Di Calcolo
Appunti Di Calcolo
30 novembre 2023
Indice
5 Sistemi lineari 25
5.1 Metodi di risoluzione. Norme di vettori e matrici . . . . . . . . . . 25
5.2 Condizionamento ed errori . . . . . . . . . . . . . . . . . . . . . . . 27
5.3 Riduzione di Gauss-Jordan e Pivoting . . . . . . . . . . . . . . . . . 28
5.4 Fattorizzazione delle matrici . . . . . . . . . . . . . . . . . . . . . . 29
5.5 Matrici speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.6 Le tecniche iterative di Jacobi e Gauss-Siedel . . . . . . . . . . . . . 34
1
Capitolo 1
2
Da qui in avanti supporremo che i numeri siano rappresentati nella forma floating
point normalizzata:
La forma floating point di un numero y, che indicheremo con f l(y) si ottiene ter-
minazione la mantissa alla k-esima cifra decimale. Esistono due principali metodi
di terminazione:
i) Troncamento: Consiste semplicemente nell’eliminare le cifre che si ritengono
superflue;
3
Definizione 3. Sia {βn } una successione infinitesima e {αn } una successione
convergente a un numero α. Se esiste una costante positiva K tale che:
|αn − α| ≤ K|βn |
4
Capitolo 2
5
Teorema 2.1. Sia f ∈ C([a, b]) e f (a)f (b) < 0. Il metodo di bisezione genera una
successione {pn } che approssima lo zero p di f con:
b−a
|pn − p| ≤
2n
Dimostrazione. Per ogni n ≥ 1 si ha:
1
b n − an = (b − a), p ∈ (an , bn )
2n−1
Siccome pn = 21 (an + bn ), segue:
1 (b − a)
|pn − p| ≤ (bn − an ) =
2 2n
Per questo, la successione {pn } converge a p con ordine O( 21n )
Una precisazione da fare sull’implementazione dell’algoritmo di bisezione: spesso
è conveniente utilizzare la funzione segno per determinare la condizione sui segni
di f (an ) e f (bn ), per evitare di trovarsi in condizioni di overflow o di underflow a
causa del prodotto di f (a) e f (b).
6
secondo punto fisso q diverso da p. Dal teorema di Lagrange abbiamo l’esistenza di
un punto ξ in (p, q)(e quindi in (a, b)) tale che
g(p) − g(q)
= g ′ (ξ)
p−q
. Allora
|p − q| = |g(p) − g(q)| = g ′ (ξ)|p − q| ≤ k|p − q| < |p − q|
ovvero un assurdo, per cui p = q e il punto fisso è unico.
Per approssimare il punto fisso di una funzione, possiamo scegliere un’approssi-
mazione iniziale p0 e generare una successione {pn } definendo pn = g(pn−1 ). Infatti,
se la successione converge a p e g è continua, si ha:
p = lim pn = lim g(pn−1 ) = g(lim pn−1 ) = g(p)
n n n
7
Corollario 2.4. Se g soddisfa le ipotesi del teorema precedente, allora i limiti per
gli errori di approssimazione di pn rispetto a p sono dati da:
|pn − p| ≤ k n max{p0 − a, b − p0 }
e
kn
|pn − p| ≤ |p1 − p0 |
1−k
0 ≈ f (p0 ) + (p − p0 )f ′ (p0 )
e risolvendo per p:
f (p0 )
p ≈ p0 − = p1
f ′ (p0 )
In generale definiamo la successione
f (pn−1 )
pn = pn−1 −
f ′ (pn−1 )
Geometricamente parlando, queste approssimazioni sono ottenute considerando le
”tangenti successive”. Infatti, la prima approssimazione p1 è l’intercetta della
tangente al grafico di f nel punto (p0 , f (p0 )), p2 è l’intercetta della tangente in
(p1 , f (p1 )) e cosı̀ via.
La derivazione del metodo di Newton tramite i polinomi di Taylor indica l’im-
portanza della scelta di un’approssimazione iniziale sufficientemente accurata. In
particolare, dobbiamo sempre scegliere un punto p0 tale che il valore |p − p0 | ri-
spetti l’ipotesi di essere ”sufficientemente piccolo”. L’importanza di questa scelta è
corroborata dal seguente teorema di convergenza:
Teorema 2.5. Sia f ∈ C 2 ([a, b]). Se p ∈ (a, b) è tale che f (p) = 0 e f ′ (p) ̸= 0,
allora esiste un δ ̸= 0 tale che il metodo di Newton generi una successione {pn } che
converge a p per ogni approssimazione iniziale p0 ∈ [p − δ, p + δ]
8
Dimostrazione. Consideriamo la funzione
f (x)
g(x) = x −
f ′ (x)
Sia k ∈ (0, 1). Dobbiamo innanzitutto trovare un intervallo [p−δ, p+δ] che g mappi
in se stesso e per il quale risulti |g ′ (x)| ≤ k per ogni x in questo intervallo.
Siccome f ′ è continua e non si annulla in p, esiste un δ1 > 0 tale che f ′ (x) ̸= 0
per x ∈ [p − δ1 , p + δ1 ] ⊆ [a, b]. Allora g è ben definita e continua sull’intervallo
[p − δ1 , p + δ1 ]. Inoltre:
f (x)f ′′ (x)
g ′ (x) =
[f ′ (x)]2
E poiché f ∈ C 2 (a, b) allora g ∈ C 1 ([p − δ1 , p + δ1 ]). Dal fatto che p sia una radice
di f abbiamo anche g ′ (p) = 0 ed essendo g ′ continua esiste un 0 < δ < δ1 tale
che |g ′ (x)| ≤ k per ogni x ∈ [p − δ, p + δ]. Ci resta da mostrare che effettivamente
[p − δ, p + δ] sia mappato in se stesso. Il teorema di Lagrange ci assicura che esiste
un ξ compreso tra x e p tale che
|g(x) − g(p)| = |g ′ (ξ)(x − p)|
dunque
|g(x) − p| = |g(x) − g(p)| = |g ′ (ξ)(x − p)| ≤ k|x − p| < |x − p|
Sono dunque rispettate tutte le ipotesi del teorema del punto fisso e quindi la
successione pn = g(pn−1 ) = pn−1 − ff′(p n−1 )
(pn−1 )
converge a p quando p0 ∈ [p − δ, p + δ]
Da questo teorema abbiamo dunque che, con un’approssimazione iniziale suffi-
cientemente accurata, il metodo di Newton converge e inoltre la velocità di questa
convergenza è descritta dalla costante k.
Il metodo di Newton è estremamente potente ma ha anche un grande difetto: il
calcolo di f ′ (x), che spesso è un problema computazionale molto più complesso del
calcolo di f (x).
PEr definizione sappiamo che
f (x) − f (pn−1 )
f ′ (pn−1 ) = lim
x→pn−1 x − pn−1
Se pn−2 è vicino a pn−1 allora
f (pn−2 − f (pn−1 )) f (pn−1 − f (pn−2 ))
f ′ (pn−1 ) ≈ =
pn−2 − pn−1 pn−1 − pn−2
Usando questa approssimazione per f ′ (pn−1 ) nella forma di Newton abbiamo
f (pn−1 )(pn−1 − pn − 2)
pn = pn−1 −
f (pn−1 − f (pn−2 ))
Questa tecnica è detta metodo delle secanti e geometricamente sposta il focus
del metodo di Newton dalle rette tangenti alle rette secanti, consentendo quindi di
calcolare solo i valori approssimati di f e non di f ′ .
9
2.4 Ordine di convergenza
Sia {pn } una successione convergente a p con pn ̸= p per ogni n. Se esiste un numero
reale α tale che
|pn+1 − p|
lim =c>0
n |pn − p|α
- Se α = 1, c = 1, si dice sublineare;
- Se α = 2, si dice quadratica.
da cui segue:
|pn+1 − p|
= |g ′ (ξn )|
|pn − p|
che passando al limite coincide con g ′ (p). Da questo segue che:
α
Dall’ipotesi segue che pn+1 − p = g α (ξn ) |pnα!
−p|
e passando al limite :
|pn+1 − p| g α (p)
lim = ̸= 0
n |pn − p|α α!
10
Un metodo iterativo avrà ordine di convergenza pari all’oridne di convergenza della
successione che lo genera.
Vediamo l’ordine di convergenza del metodo di Newton: Sia g(x) = x − ff′(x) (x)
e
f (x)f ′′ (x)
g ′ (x) = [f ′ (x)]2
. In p si ha ovviamente g ′ (p) = 0. Se f ′ (p) ̸= 0 e f ′′ (p) ̸= 0 si ha
che:
pn+1 − p f ′′ (p)
lim =
n (pn − p)2 2f ′ (p)
Per cui l’ordine di convergenza del metodo di Newton è 2.
Teorema 2.7. Sia p ∈ [a, b], f (p) = 0, f ′ (x) ̸= 0 per ogni x ∈ [a, b]/{p}. Se p ha
molteplicità 1 e f ∈ C 2 ([a, b]), il metodo di Newton ha almeno ordine di convergenza
pari a 2. Se invece la molteplicità è maggiore di 2, il metodo converge linearmente.
11
Capitolo 3
Interpolazione e approssimazioni
polinomiali
3.1 Interpolazione
Il problema generale dell’interpolazione consiste nel trovare una funzione fn che,
dati n + 1 punti (xi , yi ) sia tale che fn (xi ) = yi . I valori xi sono detti nodi dell’in-
terpolazione, e il nostro scopo è determinare il tipo più semplice di funzione che
soddisfa questa proprietà, cioè i polinomi.
Teorema 3.1 (Esistenza e unicità). Dati n + 1 punti (xi , yi ), con xi ̸= xj , esiste un
unico polinomio di grado n, Pn (x) = a0 +a1 x+· · ·+an xn per cui risulta Pn (xi ) = yi
Dimostrazione. Ponendo le condizioni di interpolazione per Pn (x) si ottiene un
sistema lineare nella forma:
Va=y
dove y = (y0 , . . . , yn ), a = (a0 , . . . , an ) e
1 x0 x20 . . . xn0
V = . . .
2 n
1 xn xn . . . x n
(matrice di Vandermonde) L’unicità viene data dal fatto che det(V ) = Πi>j (xi − xj )
12
osservando che yj = c0 L0 (x0 ) + . . . cn Ln (xn ) possiamo anche scrivere
n
X
Pn (x) = yk Lk
k=0
ωn+1 (x) = (x − x0 ) . . . (x − xn )
detto polinomio nodale, che ha grado n + 1 e che si annulla in tutti i nodi. In questo
caso il polinomio Lk (x) si può scrivere come
ωn+1 (x) 1
Lk (x) = ′
x − xk ωn+1 (xk )
e quindi:
n
X ωn+1 (x) yk
Pn (x) = ′
k=0
x− xk ωn+1 (xk )
′
Allora ponendo ωn+1 (xk ) = wk (pesi baricentrici) otteniamo la formula baricentrica
del polinomio di Lagrange:
n
X yk 1
Pn (x) = ωn+1 (x)
k=0
wk x − xk
L’utilità di questa formula sta nel fatto che diminuisce drasticamente il costo com-
putazionale del calcolo di Pn (x̃), essendo questo dipendente unicamente da (x̃ − xk )
e quindi di ordine 1.
Teorema 3.2. Siano x0 , . . . , xn nodi distinti tutti appartenenti a [a, b] e si f ∈
C n+1 ([a, b]). Allora esiste ε = ε(x) ∈ (a, b) tale che:
f (n+1)(ε)
rn (x) = f (x) − Pn (x) = ωn+1 (x)
(n + 1)!
13
Dimostrazione. Per il teorema di Rolle si ha subito rn (x) = R(x)ωn+1 (x), nei nodi
si ha rn (xi ) = 0.
Consideriamo la funzione ausiliaria G(t) = f (t) − Pn (t) − R(x)ωn+1 (t). Chiara-
mente si ha G(xk ) = 0. Per il teorema di Rolle esistono ε0 , . . . , εn tali che G′ (εi ) = 0.
Applicando ancora Rolle, esistono ε′0 , . . . , ε′n−1 tali che G′′ (ε′i ) = 0 e ripetendo il ra-
gionamento abbiamo che esiste un unico punto εn tale che Gn+1 (εn ) = 0, da cui
segue Gn+1 (εn ) = f n+1 (εn ) − R(x)(n + 1)! = 0 da cui segue ancora.
f n+1 (εn )
R(x) =
(n + 1)!
quindi infine
f (n+1) (ε(x))
rn (x) = ωn+1 (x)
(n + 1)!
- Nodi di Chebyshev-Lobatto :
a+b b−a k
xk = − cos ( π)
2 2 n
Teorema 3.4 (Teorema di Bernstein). Per ogni funzione f ∈ C(a, b), se Pn (x)
interpola f negli n + 1 nodi di Chebyshev allora
||rn (x)|| → 0
14
Vediamo adesso la stabilità dell’interpolazionePpolinomiale. Considerando le per-
n
turbazioni ỹi , il polinomio diventa P̃n (x) = k=0 ỹk Lk (x) e quello che vogliamo
determinare è l’errore Pn (x) − P̃n (x):
n
X
Pn (x) − P̃n (x) = Lk (yk − ỹk )
k=0
per cui
n
X
|Pn (x) − P̃n (x)| ≤ max |yk − ỹk | |Lk (x)|
k≤n
k=0
1, (x − x0 ), (x − x1 ), . . . , (x − xn−1 )
Pn (x) = d0 + d1 (x − x0 ) + · · · + dn (x − x0 ) . . . (x − xn−1 )
dove i coefficienti sono le differenze divise che abbiamo definito in precedenza. Tale
polinomio è detto anche polinomio interpolante nella forma di Newton. È impor-
tante osservare che le differenze divise sono invarianti rispetto alle permutazioni dei
15
(
nodi. Inoltre esiste un ε ∈ [a, b] tale che f [x0 , . . . , xk ] = f k)(ε)
k!
e f [x0 , . . . , xk ] = 0
ogni volta che f è un polinomio di grado minore di k. Per i polinomi in questa
forma, si dimostra che l’errore è
dn+1 = f [x0 , . . . xn , x]
3.3 Spline
Considerati n + 1 nodi nell’intervallo [a, b] con a = x0 < . . . xn = b, definiamo
la funzione s(x) detta spline di grado d se la restrizione di s(x) all’intervallo
[xj−1 , xj ] è un polinomio di grado d ed è continua in [a, b] fino alla sua derivata di
ordine d − 1. Nel processo di costruzione della funzione di spline viene effettuata
una partizione dell’intervallo, in modo tale che a ogni sottointervallo corrisponda
un polinomio di ordine d, ottenendo quindi la spline come unione di questi n − 1
polinomi. È fondamentale che nei punti di raccordo la spline non presenti alcun
tipo di discontinuità.
Un tipo di spline molto importante è la spline cubica, cioè di grado 3 e che
soddisfa le condizioni:
- sj (x) = sj+1 (x) se x ∈ [xj , xj+1 ]
- s( i)j−1 (x) = s( i)j (x)
oltre a rispettare le condizioni di interpolazione.
Le spline cubiche sono utilissime poiché presentano una regolarità C 2 e sono
sufficientemente regolari quando approssimano le curve.
Teorema 3.5. Sia s(x) una spline cubica interpolante e f ∈ c2 ([a, b]). Allora:
Z b Z b
′′ 2
(s (x)) dx ≤ (f ′ (x))2 dx
a a
16
Analogamente per la derivata seconda:
cj+1 − cj
s′′j (x) = 2cj + 6dj hj = 2cj+1 ⇒ dj =
3hj
Con un ragionamento analogo determiniamo
yj+1 − yj hj
bj = − (2cj + cj+1 )
hj 3
Per determinare, infine, cj bisogna risolvere un sistema lineare associato a una
matrice tridiagonale.
Teorema 3.6 (Errore sulla spline). Sia f ∈ C 4 ([a, b]) e si consideri una partizione
di [a, b] in sottointervalli di ampiezza hj . Sia s(x) la spline cubica interpolante di
f . Allora:
||f (k) − s(k) ||∞ ≤ ck H 4−k ||f (4) ||∞
5 1 (β+β −1 ) H
con C0 = 384
, C1 = 24
, C3 = 2
, H = maxi hi , β = mini hi
Nel caso dei minimi quadrati polinomiali, vogliamo minimizzare la distanza tra
un polinomio Pn (x) e i dati (xi , yi ), cioè vogliamo che
n
X
min E2 (a0 , . . . , am ) = min( (yi − Pn (xi )2 ))
i=0
17
Capitolo 4
Integrazione e derivazione
numerica
dove wk sono detti pesi e gli xk sono detti nodi. L’errore relativo a questa formula
(detta anche formula di quadratura) è dato da
En (f ) = I(f ) − In (f )
In questo caso, i parametri liberi della formula sono gli n + 1 pesi e gli n + 1
nodi, ottenendo quindi 2n + 2 parametri che possono essere determinati risolvendo
il sistema: Rb
w 0 + · · · + wn = a
dx
Rb
w0 x0 + · · · + wn = a xdx
...
w x2n+1 + · · · + w x2n+1 = R b x2n+1 dx
0 0 n n a
Ovviamente questo è un sistema non lineare, quindi la sua soluzione può essere
a sua volta approssimata mediante delle semplificazioni, ad esempio mediante la
19
prefissazione dei nodi. In questo caso infatti i parametri diventano solo gli n + 1
pesi e il sistema, non dipendendo più dalle potenze dei nodi, diventa lineare e
definito da una matrice di Vandermonde.
Possiamo prefissare i nodi supponendo, per esempio, che siano equidistanti:
b−a
x0 = a; xi = x0 + ih, h =
n
In questo caso In (f ) può essere determinato mediante un’interpolazione polinomiale,
per cui approssimiamo f (x) = Pn (x) + rn (x) ottenendo:
Z b n
X Z b
In (f ) = f (x)dx = wk f (xk ), wk = Lk (x)dx
a k=0 a
Poniamo n = 1, h = b − a, x1 = b e x0 = a. Allora:
h h3
I1 (f ) = (f (a) + f (b)), E1 (f ) = − f ′′ (ε)
2 12
Queste sono invece le formule dei trapezi;
b−a a+b
Sia n = 2, h = 2
, x0 = a, x1 = 2
, x2 = b:
h h5
I2 (f ) = (f (x0 ) + 4f (x1 ) + f (x2 )), E2 = − f 4 (ε)
3 90
Abbiamo in questo caso le formule di Simpson;
b−a
Con n = 3, h = 3
, xi = x0 + h, x3 = b si ha:
3 3
I3 (f ) = h(f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )), E3 (f ) = − h5 f (ε)
8 80
Cioè la formula dei 83 ;
20
4.3 Formule composte
Vogliamo calcolare l’integrale definito di una funzione sull’intervallo [a, d]. Per
rendere i calcoli più accurati, possiamo pensare di dividere l’intervallo in due sot-
tointervalli [a, b] e [b, d], andando a ridurre l’errore. Logicamente il ragionamento
può essere esteso a un numero arbitrario (ma finito), di sottointervalli, ottenendo
cosı̀:
Z d Z x2 Z x4 Z x2k+2 Z xn
f (x)dx = f (x)dx + f (x)dx + · · · + f (x)dx + · · · + f (x)dx
a x0 x2 x2k xn−2
In questo caso abbiamo diviso l’intervallo [a, d] ottenendo dei nodi equidistanti, con
passo n = 2m e punto medio in c.
L’integrale coinciderà con:
Z d m−1
X Z x2k+2
f (x)dx = f (x)dx
a k=0 x2k
E l’integrale in argomento della somma può a sua volta essere approssimato con le
formule viste nel paragrafo precedente. Vediamo ad esempio di approssimarlo con
la formula di Simpson:
Z x2k+1
h
f (x)dx ≈ (f (x2k ) + 4f (x2k+1 ) + f (x2k+2 ))
x2k 3
da cui, andando a sommare ogni integrale:
m−1 m−1
h X X
(f (x0 ) + 4 f (x2k+1 ) + 2 f (x2 k) + f (x2m ))
3 k=0 k=1
Bisogna chiaramente determinare anche gli errori. L’errore totale della formula
sarà banalmente la somma degli errori delle singole approssimazioni utilizzate nella
scomposizione, quindi nel caso di Simpson
m−1
X h5 4
E2n (f ) = (− f (ε2k ))
k=0
90
Teorema 4.1 (Teorema della formula composta di Simpson). Sia f ∈ C 4 ([a, b]),
m = 2m, h = b−a
n
, xk = a + kh. Allora esiste un ε ∈ (a, b) tale che:
b−a 4 4
Ezn (f ) = − h f (ε)
180
Dimostrazione. Poiché f è continua fino alle sue derivate quarte in un intervallo
chiuso e limitato, abbiamo
min f 4 (x) ≤ f 4 (ε2k ) ≤ max f 4 (x)
21
Da cui segue
m−1
X m−1
X m−1
X
4 4
(min f (x)) ≤ f (ε2k ) ≤ max f 4 (x)
k=0 k=0 k=0
Dividiamo tutto per m (ricordando che i sommandi dei due estremi non dipendono
da k) e otteniamo:
m−1
4 1 X 4
min f (x) ≤ f (ε2k ) max f 4 (x)
m k=0
Dalla continuità
Pm−1 delle derivate di f allora deriva l’esistenza di un ε ∈ [a, b] tale che
4 1 4
f (ε) = m k=0 f (ε2k ). In questo caso l’errore è allora
h5
E22m (f ) = − mf 4 (ε)
90
b−a b−a
Da cui, essendo h = 2m
em= 2h
:
h4
E22m = − (b − a)f 4 (ε)
180
Per la formula composta di Simpson si può inoltre dimostrare che c’è convergenza
verso la soluzione con ordine di convergenza 4.
Vediamo cosa succede se utilizziamo la formula dei trapezi:
n−1 m−1
h X h X ′′
I1n (f ) = (f (x0 ) + 2 n
f (xk ) + f (xn )); E1 (f ) = − f (ε2k )
2 k=1
12 k=0
Anche in questo caso abbiamo un teorema (la cui dimostrazione è esattamente
analoga) che ci consente di riscrivere l’errore come:
b − a 2 ′′
E1n (f ) = −
h f (ε)
12
E anche in questo caso c’è convergenza, ma con ordine 2.
Anche nei processi di integrazione numerica possiamo stabilire dei criteri di
arresto, che dipendono chiaramente dalla tolleranza prestabilita per l’errore:
q
(b−a)3 3
- Trapezi: se M2 = max |f (x)| ⇒ |E2 (f )| < 12n2 M2 ⇒ n > (b−a)
′′ n
12toll
M2 ;
q
(b−a)5 5
- Simpson: se M4 = max |f (x)| ⇒ |E4 (f )| < 180n4 M4 ⇒ n > (b−a)
4 n
180toll
M4
Per ottenere un’approssimazione migliore dell’erroe, viene utilizzata una stima
a posteriori per stabilire quante suddivisioni dell’intervallo di integrazione devono
essere effettuate, quindi si può utilizzare un metodo di integrazione, detto adattivo,
I( h )−I(h)
che controllare l’errore con la sua stima E( h2 ) ≈ 2 γ , con γ che varia in base
alla formula che viene utilizzata. Anche l’iterazione di questo metodo si interrompe
quando l’errore è minore della tolleranza che si sceglie.
22
4.4 Formule di quadratura gaussiane
La quadratura gaussiana sceglie i punti nei quali valutare l’integrale cercando di
ottimizzare l’efficienza del calcolo. I nodi e i coefficienti della quadratura sono infatti
scelti in modo da minimizzare il più possibile l’errore che si ottiene nell’approssi-
mazione. I coefficienti sono completamente arbitrari, mentre l’unica restrizione che
si applica ai nodi è che devono essere elementi dell’intervallo [a, b]. Questo ci da 2n
parametri da scegliere, mentre se i coefficienti dei polinomi sono considerati para-
metri, la classe dei polinomi di grado al più 2n − 1 contiene anch’essa 2n parametri.
Questa è la più grande classe di polinomi per i quali ci si può aspettare che la formu-
la sia esatta. Illustriamo la procedura prendendo come esempio n = 2 e l’intervallo
[−1, 1]. R1
Consideriamo dunque l’integrale −1 f (x)dx ≈ c1 f (x1 )+c2 f (x2 ), vogliamo deter-
minare la formula che fornisce un risultato esatto per i polinomi di grado 2(2)−1 = 3
o inferiore, cioè dobbiamo avere:
R1 R1
c1 + c2 = −1 1dx = 2 c1 x1 + c2 x2 = −1 xdx = 0
R1 2
R1
c1 x21 + c2 x22 = −1
x2 dx = 3
c1 x31 + c2 x32 = −1
x3 = 0
Risolvendo il sistema si ottiene
√ √
3 3
c1 = c2 = 1, x1 = − , x2 =
3 3
Questa formula ha, come già detto, grado di precisione 3.
L’insieme di polinomi che più si adatta al problema è quello dei polinomi di
Legendre, cioè l’insieme di tutti quei polinomi che rispettano le seguenti proprietà:
- Per ogni n, il polinomio Pn (x) è monico e ha grado n;
R1
- −1 P (x)Pn (x)dx = 0 ogni volta che P (x) è un polinomio di grado minore di
n.
I primi polinomi di Legendre sono:
1
P0 (x) = 1 P1 (x) = x P2 (x) = x2 − 3
P3 (x) = x3 − 53 x P4 (x) = x4 − 67 x2 + 3
35
Le radici di questi polinomi sono distinte, esistono nell’intervallo (−1, 1), sono sim-
metriche rispetto all’origine e sono la scelta giusta per determinare i parametri dei
nodi e dei coefficienti per il metodo di quadratura.
Teorema 4.2. Siano x1 , x2 , . . . , xn le radici del n-imo polinomio di Legendre Pn (x)
e per ogni i definiamo Z 1
x − xj
ci = Πnj=1,j̸=i dx
−1 x i − xj
23
Se P (x) è un polinomio di grado minore di 2n, allora
Z 1 Xn
P (x)dx = ci P (xi )
−1 i=1
per cui la formula si ottiene andando a integrare. Il risultato è dunque vero per i
polinomi di grado minore di n.
Consideriamo adesso i polinomi di grado almeno n ma minore di 2n. Dividiamo
P (x) per lo n-imo polinomio di Legendre, ottenendo due polinomi Q(x) e R(x),
ciascuno di grando minore di n, tali che:
Ovvero la tesi.
Per applicare il metodo di quadratura gaussiana a un intervallo qualsiasi, basta
applicare il cambiamento di variabili x = 21 [(b−a)t+a+b] in modo tale da ottenere:
Z b Z 1
(b − a)t + b + a (b − a)
f (x)dx = f( ) dt
a −1 2 2
E quindi poter applicare tutti i risultati ottenuti nel paragrafo.
24
Capitolo 5
Sistemi lineari
Con particolare attenzione all’utilizzo delle norme 1 (somma dei valori assoluti delle
componenti) e 2 (norma euclidea standard). Un’altra norma sulla quale porremo
particolare attenzione è la norma infinito, o norma del massimo, definita come
25
√
- ||x||2 ≤ ||x|| ≤ n||x||2
Per tutte e 3 le norme possiamo definire i cerchi unitari:
- C1 = {x ∈ Rn : ||x|| = 1}
- C2 = {x ∈ Rn : ||x||2 = 1}
- C3 = {x ∈ Rn : ||x||∞ = 1}
Possiamo definire anche la norma di una matrice. Come per i vettori, questa
è una funzione che a una matrice A associa un numero reale ||A|| che rispetti le
seguenti proprietà:
- ||A|| ≥ 0 e ||A|| = 0 se e solo se A = 0;
- ||αA|| = |α|||A|| ∀α ∈ R;
p
- ||A||2 = ρ(AT A)
Dove con ρ(·) è indicato il raggio spettrale di una matrice, cioè il massimo dei
moduli degli autovalori della matrice.
Seguono le seguenti proprietà:
- ||Am || ≤ ||A||m ;
- ||I|| = 1;
- ||A−1 || ≥ ||A||−1 ;
- ρ(A) ≤ ||A||;
||A||∞
- √
n
≤ ||A||2 ≤ maxij |aij |;
26
5.2 Condizionamento ed errori
Definiamo il numero di condizionamento della matrice A:
- k(A) ≥ 1;
- k(A) = k(A−1 );
- k(αA) = k(A)
1 ||A − B||
= min { : det(B) = 0}
k(A) B ||A||
Da Ax = b segue Aδx = δb, cioè δx = A−1 δb per cui ||δx|| ≤ ||A−1 || · ||δb||.
Dividendo tutto per ||x||:
1 1 ||δx|| ||δb||
≥ ⇒ ≤ k(A)
||b|| ||A|| · ||x|| ||x|| ||b||
27
5.3 Riduzione di Gauss-Jordan e Pivoting
Uno dei metodi per semplificare un sistema lineare è il metodo di riduzione di Gauss-
Jordan, che consiste nell’utilizzare le 3 operazioni elementari sulle righe di una
matrice (moltiplicazione per uno scalare non nullo, combinazione lineare di righe,
scambio di righe) per arrivare alla riduzione in un sistema (matrice) triangolare
equivalente e più semplice da risolvere (GEOMETRIA 1).
Il metodo di Gauss-Jordan si basa sull’individuazione degli elementi pivot delle
righe di una matrice, cioè il primo elemento non nullo della riga in oggetto, e nello
spostarli per renderli a tutti gli effetti il primo elemento della riga. In sostanza,
quello che avviene è uno scambio del tipo (Ek ) ↔ (Ep ) dove p è il più piccolo intero
maggiore di k tale che apk ̸= 0, posto che akk = 0. Talvolta è necessario effettuare
uno scambio di righe anche quando gli elementi non sono nulli, allo scopo di ridurre
l’errore di round-off.
ajk
Infatti. se akk è in modulo minore di ajk , il moltiplicatore mjk = akk sarà
maggiore di 1, quindi l’errore del calcolo di uno dei termini akl è moltiplicato per
mjk e quindi l’errore è amplificato.
Per evitare questi problemi si utilizza una tecnica chiamata pivoting, che con-
siste nel selezionare un elemento apq con modulo maggiore del pivot e scambiando
le righe k-esime e p-esime. Se necessario, questo passaggio può essere seguito dallo
scambio delle colonne k-esime e q-esime colonne.
La strategia più semplice consiste nel selezionare un elemento nella stessa co-
lonna che si trova sotto la diagonale e ha il modulo maggiore, nello specifico
determiniamo il più piccolo intero p maggiore di k tale che
28
cui a ogni permutazione di righe deve corrispondere la permutazione dei fattori di
riscalamento.
Si può effettuare, se necessario, anche un pivoting completo, che consiste
nell’applicare le stesse strategie del pivoting parziale ma ragionando sia sulle righe
che sulle colonne della matrice, cercando sostanzialmente il più grande elemento e
ponendolo nella posizione pivotale scelta.
29
al di sotto della diagonale con gli opposti dei fattori di moltiplicazione −mj1)
1 0 ...0 0
−m21 1 ... 0
(1)
M
... ... . . . . . .
−mn1 0 ... 1
Questa matrice è detta prima matrice di trasformazione gaussiana.
Chiamiamo A(1) = A e A(2) il prodotto di A(1) con M (1) , cosı̀ da avere
Allo stesso modo possiamo costruire la matrice M (2) sostituendo le entrate della
seconda colonna al di sotto della diagonale della matrice identità con i fattori di con-
versione mj2 e ottenere la matrice A(3) = M (2) A(2) = M (2) M (1) A e di conseguenza
il sistema A(3) x = b(3) .
In generale, con il sistema A(k) x = b(k) ottenuto alla stessa maniera, molti-
plichiamo a sinistra per la k-ima matrice di trasformazione di Gauss (ottenuta allo
stesso modo delle altre, cioè sostituendo gli elementi della k-ima colonna) ottenendo
il sistema
A(k+1) x = M (k) M (k−1) . . . M (1) Ax = M (k) b(k) = b(k+1)
Il processo termina con la formazione del sistema A(n) x = b(n) , dove A(n) è una
matrice triangolare alta che definiamo proprio come la matrice U , cioè abbiamo
ottenuto U = M (n−1) M (n−2) . . . M (1) A.
Per invertire gli effetti della trasformazione (e cioè riottenere la matrice A)
abbiamo bisogno delle operazioni inverse, che saranno quindi definite dalle matrici
inverse delle matrici di trasformazione di Gauss, che chiamiamo L(k) = [M (k) ]−1 .
Allora la matrice triangolare bassa L nella fattorizzazione di A è definita come il
prodotto L = L(1) L(2) . . . L(n−1) . Abbiamo quindi ottenuto le due matrici L e U
richieste, infatti:
30
riduzione di Gauss. In questa sezione ci occupiamo di due tipi speciali di matrici
che hanno questa proprietà e altri tipi particolari di matrici.
Una matrice quadrata si dice a diagonale dominante se risulta
n
X
|aii | ≥ |aij| | ∀i
j=1,j̸=i
Pn
Siccome j=1 aijxj = 0, quando abbiamo i = k si ha
n
X
akk xk = − akj xj
j=1,j̸=k
31
(2)
Abbiamo inoltre ai1 = 0 e dalla disuguaglianza triangolare
n n (1) (1)
X (2)
X (1)
X a1j ai1
|aij | ≤ |aij | + | (1)
|
j=2,j̸=i j=2,j̸=i j=2,j̸=i a11
- A è invertibile;
32
Sia ora z il vettore definito come:
0 i ̸= j, i ̸= k
zi =
1 i = joi = k
33
5.6 Le tecniche iterative di Jacobi e Gauss-Siedel
Per la risoluzione di sistemi lineari di piccoli dimensioni, conviene sempre utilizzare
metodi diretti come la decomposizione di Gauss, poiché in quei casi richiedono un
numero di passaggi sufficientemente piccolo. Nel caso però di sistemi più grandi,
è bene introdurre delle strategie iterative che consentono di risolvere o almeno ap-
prossimare una soluzione del sistema. Anche in questo caso, le tecniche iterative
partono da un’approssimazione iniziale x(0) e da essa generano una successione di
approssimazioni che converge alla soluzione x.
Il metodo iterativo di Jacobi si ottiene risolvendo nella variabile xi l’e-
quazione i-esima del sistema Ax = b (posto che aii sia non nullo), in modo da
ottenere: n
X aij xj bi
xi = (− )+
j=1,j̸=i
aii aii
34
Per avere una forma matriciale di questa tecnica, dividiamo entrambi i membri
per aii e raggruppiamo tutti i termini della k-esima iterazione:
(k) (k) (k−1)
ai1 x1 + · · · + aii xi = −ai, i + 1xi+1 − · · · − ain x(k−1)
n + bi
x(k) = Tg x(k−1) + cg
35
Capitolo 6
36
Allora la funzione è Lipschitziana in y uniformemente rispetto a t in tutto D.
Teorema 6.2. Sia D = {(t, y)|t ∈ [a, b], y ∈ R} e sia f (t, y) continua su D. Se
f è Lipschitziana in y uniformemente rispetto a t in tutto D, allora il problema di
Cauchy (
y ′ (t) = f (t, y(t))
y(a) = α
Ha un unica soluzione definita nell’intervallo [a, b].
Una volta stabilito quando un’equazione differenziale può avere, anche se so-
lo localmente, una soluzione unica, vogliamo adesso capire cosa succede a questa
soluzione quando è sottoposta a perturbazioni.
dz
= f (t, z) + δ(t)
dt
con condizione iniziale z(α) = α + δ0 ha un’unica soluzione z(t) tale che
Teorema 6.3. Sia D = {(t, y)|t ∈ [a, b], y ∈ R} e sia f (t, y) continua su D. Se
f è Lipschitziana in y uniformemente rispetto a t in tutto D, allora il problema di
Cauchy (
y ′ (t) = f (t, y(t))
y(a) = α
è ben posto.
37
6.2 Il metodo di Eulero
L’obiettivo del metodo di Eulero è ottenere delle approssimazioni per la soluzione
di un problema di Cauchy ben posto. In particolare, non punta a ottenere un’ap-
prossimazione continua ma solo dei punti (detti mesh points), dai quali poi con
un’interpolazione si potranno estrapolare le approssimazioni della soluzione anche
in altri punti.
Supponiamo innanzitutto che questi punti siano equamente distribuiti, per cui
scegliamo un intero N tale che ti = a + ih con h = b−a N
. Per ottenere il metodo
di Eulero, usiamo il teorema di Taylor. Supponiamo dunque che y(t) sia l’unica
soluzione del nostro problema ben posto e che sia di classe almeno C 2 ([a, b]), allora
per ogni i da 1 a N − 1 si ha:
(ti+1 − ti )2 ′′
y(ti+1 ) = y(ti ) + (ti+1 − ti )y ′ (ti ) + y (ξi )
2
(dove ξi è un numero aribitrario necessario per il calcolo del resto). Questo può
essere riscritto in termini d h e considerando che y(t) è la soluzione del problema si
ha:
h2 ′′
y(ti+1 ) = y(ti ) + hf (ti , y(ti )) + y (ξi )
2
Il metodo di Eulero costruisce le approssimazioni wi ≈ y(ti ) andando a eliminare
il termine di resto, cioè in sostanza la successione che approssima la soluzione è
generata dalla soluzione della seguente equazione alle differenze finite:
wi+1 = wi + hf (ti , wi ), w0 = α
Per ottenere un limite di errore per il metodo di Eulero, abbiamo prima bisogno
di questi due lemmi:
38
(vedere dimostrazione dal libro)
Il problema di questo teorema sta nella richiesta che sia conosciuta una mag-
giorazione per la derivata seconda della soluzione. Questa limitazione può comun-
que essere superata sfruttando la regola di derivazione delle funzioni composte,
esprimendola quindi in funzione di f invece che di y.
L’importanza principale della formula di errore fornita dal teorema è che que-
sta dipende linearmente dal passo h. In questo teorema è però trascurato l’effetto
dell’errore di round-off delle approssimazioni successive. Per questo motivo, l’equa-
zione alle differenze del metodo di Eulero viene spesso sostituita con la seguente, che
invece tiene conto direttamente dell’errore di round-off dovuto alle approssimazioni
precedenti:
ui+1 = ui + hf (ti , ui ) + δi+1 , u0 = α + δ0
Teorema 6.7. Sia y(t) l’unica soluzione del problema di Cauchy ben posto e siano
u1 , . . . uN le approssimazioni otenute con il metodo di Eulero corretto. Allora
1 hM δ
|y(ti ) − ui | ≤ ( + )[eL(ti −a) − 1] + |δ0 |eL(ti −a)
L 2 h
Come si può osservare immediatamente, l’implementazione dell’errore di round-
off nella formula rende la dipendenza da h non più lineare.
39