Il 0% ha trovato utile questo documento (0 voti)
28 visualizzazioni40 pagine

Appunti Di Calcolo

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
28 visualizzazioni40 pagine

Appunti Di Calcolo

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 40

Appunti di Calcolo (Teoria)

30 novembre 2023
Indice

1 Gli errori e l’aritmetica dei computer 2


1.1 L’aritmetica dei computer . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Algoritmi e convergenza . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Soluzioni di equazioni in una variabile 5


2.1 Il metodo di bisezione . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Il punto fisso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Il metodo di Newton e alcune sue estensioni . . . . . . . . . . . . . 8
2.4 Ordine di convergenza . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Interpolazione e approssimazioni polinomiali 12


3.1 Interpolazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Differenze divise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Approssimazione ai minimi quadrati e minimi quadrati polinomiali . 17

4 Integrazione e derivazione numerica 18


4.1 Differenziazione numerica . . . . . . . . . . . . . . . . . . . . . . . 18
4.2 Formule di approssimazione degli integrali . . . . . . . . . . . . . . 19
4.3 Formule composte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Formule di quadratura gaussiane . . . . . . . . . . . . . . . . . . . 23

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

6 Risoluzione numerica di ODE 36


6.1 Teoria dei problemi ai valori iniziali . . . . . . . . . . . . . . . . . . 36
6.2 Il metodo di Eulero . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1
Capitolo 1

Gli errori e l’aritmetica dei


computer

1.1 L’aritmetica dei computer


Generalmente, la teoria√matematica prevede l’esistenza di numeri con infinite cifre,
ad esempio definiamo 3 come l’unico numero positivo tale da restituire 3 quando
moltiplicato per se stesso. Nel calcolo computazionale, ogni numero rappresentabile
ha un numero finito di cifre, e dunque possono essere rappresentati √ solo i numeri
razionali (e non tutti). Quindi, richiamando l’esempio, il numero 3 sarà rappre-
sentato come un numero razionale, a cifre finite, il cui quadrato è sufficientemente
vicino a 3.
L’errore prodotto quando una calcolatrice o un computer sono utilizzati per le
operazioni con i numeri reali viene detto errore di approssimazione(round-off).
Questo errore esiste proprio perché l’aritmetica delle macchine prevede l’utilizzo
unicamente di numeri con cifre finite, per cui i calcoli con i numeri reali vengono
eseguiti necessariamente attraverso un’approssimazione.
I numeri reali vengono rappresentati dalle macchine con 64 bit di informazione,
in codice binario, in patricolare secondo lo standard IEEE-754 a doppia precisione:

- 1 bit viene utilizzato per il segno (s);

- 11 bit sono utilizzati per l’esponente (c);

- 52 bit sono utilizzati per il numero frazionario, detto mantissa (f );

L’utilizzo di 52 bit, cioè 52 cifre binarie, consente la scrittura di numeri con 16 o


17 cifre. L’esponente è rappresentato per eccesso, per cui con 11 bit possono essere
rappresentati numeri che vanno da -1023 a 1024. Un numero in standard floating
point è quindi rappresentato come:

(−1)s 2c−1023 (1 + f ) (1.1)

2
Da qui in avanti supporremo che i numeri siano rappresentati nella forma floating
point normalizzata:

y = ±0, d1 d2 . . . dk × 10n , 1 ≤ d1 ≤ 9, 0 ≤ di ≤ 9 (1.2)

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;

ii) Arrotondamento: Si somma 5 × 10n−(k+1) a y e si tronca il risultato, in par-


ticolare se dk+1 ≥ 5 si somma 1 a dk e si ha un’approssimazione per eccesso,
altrimenti semplicemente si tronca il numero e si ha un’approssimazione per
difetto.
Definizione 1. Sia p∗ un’approssimazione di p. L’errore assoluto è |p − p∗ |,
∗|
mentre l’errore relativo è |p−p
|p|
, con p ̸= 0. Si dice che p∗ approssima p a t cifre
|p−p∗ |
significative se t è il più grande numero non negativo tale che |p|
≤ 5 × 10−t

1.2 Algoritmi e convergenza


Un algoritmo è una procedura che descrive in maniera chiara una sequenza finita di
passi da eseguire in un ordine specifico. L’obiettivo dell’algoritmo è di implementare
una procedura per risolvere un problema o approssimare la soluzione di un problema.
Una delle imposizioni fondamentali da porre sugli algoritmi è che piccoli cam-
biamenti nei dati iniziali devono portare a cambiamenti altrettanto piccoli nelle
soluzioni. Se l’algoritmo rispetta questa proprietà, si dirà stabile, altrimenti si
dirà instabile.
Definizione 2. Sia E0 > 0 un errore introdotto a un certo stato dei calcoli e sia
En la grandezza dell’errore dopo n passaggi:
- Se En ∝ CnE0 , con C costante non dipendente da n, la crescita dell’errore è
detta lineare;

- Se En ∝ C n E0 , con C > 1, la crescita dell’errore è detta esponenziale.


La crescita lineare dell’errore è generalmente inevitabile e per valori di C e E0
sufficientemente piccoli i risultati sono accettabili, mentre si deve evitare la crescita
esponenziale dell’errore, poiché C n può assumere valori molto grandi anche per
esponenti piccoli.
Poiché le tecniche iterative coinvolgono spesso successioni, è bene discutere
riguardo le velocità di convergenza di queste.

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 |

allora diremo che {αn } converge ad α con ordine di convergenza O(βn ), e lo


indicheremo con αn = α + O(βn )

Molto spesso, la successione infinitesima campione sarà βn = n1p e saremo inte-


ressati a trovare il più grande valore di p per cui risulti αn = α+O( n1p ). Questa defi-
nizione può essere utilizzata in maniera completamente analoga per la convergenza
delle funzioni.

4
Capitolo 2

Soluzioni di equazioni in una


variabile

2.1 Il metodo di bisezione


Questo capitolo è dedicato alla ricerca delle radici di equazioni non lineari. Comin-
ciamo con la descrizione del metodo di bisezione.
Supponiamo che f sia una funzione continua in un intervallo [a, b] e che f (a) e
f (b) abbiano segni opposti. Il teorema degli zeri ci assicura che nell’intervallo esiste
almeno un valore p tale che f (p) = 0 (per semplicità supporremo che questo valore
sia unico). Il metodo di bisezione consiste nel dividere l’intervallo a metà in ogni
passaggio, fin quando non viene effettivamente trovato p.
Poniamo a1 = a e b1 = b e sia p1 = a1 + b1 −a2
1
il punto medio di [a1 , b1 ]:

- Se f (p1 ) = 0 allora p = p1 e l’algoritmo si ferma;

- Se f (p1 ) ̸= 0, allora f (p1 ) ha il segno di f (a1 ) oppure di f (b1 );

- Se f (p1 ) e f (a1 ) hanno lo stesso segno, allora p ∈ (p1 , b1 ) e poniamo a2 = p1 ,


b2 = b1

- Se f (p1 ) e f (b1 ) hanno lo stesso segno, allora p ∈ (a1 , p1 ) e poniamo a2 = a1 ,


b2 = p 1

A questo punto, riapplichiamo l’algoritmo all’intervallo [a2 , b2 ].


Il metodo di bisezione, nonostante la sua semplicità, ha alcuni importanti difetti.
Il maggiore di questi è la sua lenta convergenza, per cui si potrebbe aver bisogno di
un numero molto elevato di passaggi prima di giungere a un risultato soddisfacente.
Nonostante ciò, questo metodo ha la propietà, altrettanto importante, di convergere
sempre a una soluzione.

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

2.2 Il punto fisso


Un numero p si dice punto fisso per una funzione g se risulta g(p) = p. I problemi
di ricerca delle radici di un’equazione sono strettamente legati alla ricerca dei punti
fissi di determinate funzioni. Infatti, possiamo rapidamente osservare che dato un
problema di ricerca delle radici f (p) = 0, possiamo definire una funzione g che ha
punto fisso in p come g(x) = x − f (x), oppure, inversamente, data una funzione g
che ha un punto fisso in p, la funzione f (x) = x − g(x) ha uno zero in p, per cui
i due problemi possono considerarsi equivalenti. Per questi motivi, a fronte di un
problema di ricerca delle radici, è conveniente porsi nella forma di ricerca di punto
fisso, in quanto questa è più facile da analizzare.
Il seguente teorema fornisce un condizione sufficiente per l’esistenza e unicità di
punti fissi per una funzione:
Teorema 2.2. Se g ∈ C([a, b]) e g(x) ∈ [a, b] per ogni x ∈ [a, b] allora g ha almeno
un punto fisso in [a, b]. Se inoltre g ′ (x) esiste in tutto (a, b) ed esiste una costante
k < 1 con |g ′ (x)| < k per ogni x ∈ (a, b), allora il punto fisso è unico.
Dimostrazione. Se g(a) = a oppure g(b) = b allora la funzione ha un punto fisso
negli estremi. Altrimenti, si deve avere g(a) > a e g(b) < b. La funzione h(x) =
g(x) − x è continua (e differenziabile) in tutto [a, b] e risulta h(a) = g(a) − a > 0,
h(b) = g(b) − b < 0, per cui, dal teorema degli zeri, esiste un punto p ∈ (a, b) tale
che h(p) = 0, cioè un punto fisso per g. Supponiamo per assurdo che esista un

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

Questa tecnica è detta iterazione di punto fisso.


Può a questo punto sorgere la domanda su come trovare la successione {pn } che
più rapidamente converge alla soluzione del problema. Il seguente teorema, insieme
al suo corollario, da delle indicazioni sulle strade da seguire o da evitare:
Teorema 2.3 (Teorema del punto fisso). Sia g ∈ C([a, b]) tale che g(x) ∈ [a, b] per
ogni x ∈ [a, b]. Supponiamo inoltre che g ′ (x) esiste per ogni x ∈ (a, b) e che esista
una costante positiva k < 1 tale che:
|g ′ (x)| < k, ∀x ∈ (a, b)
Allora per ogni numero p0 ∈ [a, b] la successione
pn = g(pn−1 )
converge all’unico punto fisso p in [a, b]
Dimostrazione. Dal teorema precedente sappiamo che un punto fisso esiste ed è
unico per g in [a, b]. Siccome g mappa [a, b] in sé stesso, la successione {pn } è
interamente nell’intervallo. Usando il fatto che |g ′ (x)| ≤ k e il teorema di Lagrange
si ottiene:
|pn − p| = |g(pn−1 ) − g(p)| = |g ′ (ξn )||pn−1 − p| ≤ k|pn−1 − p|
con ξn ∈ (a, b). Applicando iterativamente questa disuguaglianza si ottiene:
|pn−1 − p| ≤ k n |p0 − p|
e siccome 0 < k < 1, la successione definita da k n è infintesima per cui:
|pn − p| → 0
cioè la convergenza richiesta.

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

2.3 Il metodo di Newton e alcune sue estensioni


Il metodo di Newton(o Newton-Raphson) è uno dei più potenti metodi per la
risoluzione di problemi di ricerca delle radici.
L’introduzione del metodo di Newton si basa sul polinomio di Taylor. Consi-
deriamo una funzione f ∈ C 2 ([a, b]) e sia p0 ∈ [a, b] un’approssimazione di p tale
che f ′ (p0 ) ̸= 0 e |p − p0 | sia sufficientemente piccolo. Consideriamo il polinomio di
Taylor di f intorno a p0 calcolato in p:
f ′′ (p0 )
f (p) = f (p0 ) + f ′ (p0 )(p − p0 ) + (p − p0 )2
2
Poiché f (p) = 0 e |p − p0 | è piccolo, otteniamo:

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|α

diremo che α è l’ordine di convergenza della successione pn con costante asinto-


tica di errore c.

- Se α = 1, c < 1 la convergenza si dice lineare;

- Se α = 1, c = 1, si dice sublineare;

- Se 1 < α < 2, si dice superlineare;

- Se α = 2, si dice quadratica.

Consideriamo un metodo iterativo del tipo pn+1 = g(pn ) e il suo errore

pn+1 − p = g(pn ) − g(p)

Per il teorema di Lagrange esiste un ξ compreso tra p e pn tale che

pn+1 − α = g ′ (ξn )(pn − p)

da cui segue:
|pn+1 − p|
= |g ′ (ξn )|
|pn − p|
che passando al limite coincide con g ′ (p). Da questo segue che:

- 0 < |g ′ (p)| < 1 il metodo ha ordine 1;

- |g ′ (p)| = 1 il metodo converge sublinearmente

Teorema 2.6. Sia I un intorno di p e g ∈ C α (I), α ≥ 2. Se

g ′ (α) = g ′′ (α) = · · · = g α−1 (p) = 0 ̸= g α (0)

il metodo di punto fisso ha ordine di convergenza α


α α
Dimostrazione. g(pn ) = g(p) + g ′ (p)|p − pn | + · · · + g α−1 |p−pn|
!α−1)!
+ g α (ξn ) |p−p
α!
n|

α
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 )

Consideriamo i polinomi fondamentali di Lagrange L0 (x), . . . , Ln (x) tali che


Li (xi ) = 1, Lj (xi ) = 0, i ̸= j. Definiamo quindi il polinomio di Lagrange:
n
X
Pn (x) = ck Lk (x)
k=0

12
osservando che yj = c0 L0 (x0 ) + . . . cn Ln (xn ) possiamo anche scrivere
n
X
Pn (x) = yk Lk
k=0

Ogni polinomio può essere scritto come:

Lk (x) = Φk (x − x0 )(x − x1 ) . . . (x − xk−1 )(x − xk+1 )

e utilizzando la condizione Lk (xk ) = 1 si ottiene


x − xi
Lk (x) = Πni=0, i̸=j
xk − xi
Se vogliamo valutare il polinomio in punti x̃ ̸= xk possiamo valutare Pn in m
punti con m >> n. Nella rappresentazione che abbiamo trovato di Pn bisogna
calcolare n prodotti per ogni k, per cui la complessità computazionale del problema
per ogni x è almeno di ordine 2 e quella totale sarà T (n) = O(mn2 ). Per semplificare
il problema introduciamo il polinomio

ω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)!

Vogliamo capire adesso se la successione di polinomi di Lagrange della funzione


f converge uniformemente verso f . Richiedere la convergenza uniforme equiva-
le a richiedere che limn max |f (x) − Pn (x)| = 0, per cui ricordando l’espressione
dell’errore possiamo studiare direttamente il comportamento di max |ωn+1 (x)|.
Teorema 3.3 (Teorema di Faber). Per ogni distribuzione di nodi in un intervallo
[a,b] esiste almeno una funzione f ∈ C([a, b]) tale che la successione di polinomi
interpolanti converge uniformemente verso f (x). Inversamente, data una funzione
f ∈ C([a, b]) esiste almenuo una distribuzione di nodi nell’intervallo [a, b] tale che
la successione di polinomi interpolanti converge uniformemente verso f (x).
Il comportamento di max |ωn+1 (x)| è influenzato dalla distribuzione dei nodi in
[a, b]. Alcuni di tipi di distribuzioni sono:
- Nodi equispaziati:
b−a
xk = a + kh, h =
n
- Nodi di Chebyshev :
a+b b−a 2k + 1
xk = + cos ( )
2 2 2(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

allora segue che:


max |Pn (x) − P̃n (x)| ≤ max |yk − ỹk |λn
x∈[a,b] k≤n

con λn detta costante di Lebesgue e che rappresenta l’amplificazione dell’errore (il


significato deriva dalle espressioni precedenti).

3.2 Differenze divise


Consideriamo una base del tipo

1, (x − x0 ), (x − x1 ), . . . , (x − xn−1 )

dati i nodi xi e le coordinate f (xi ) = yi , il generico polinomio sarà Pn (x) = d0 +


d1 (x − x0 ) + d2 (x − x0 )(x − x1 ) + · · · + dn (x − x0 ) . . . (x − xn−1 ) e sappiamo che

Pn (x0 ) = f (x0 ) ⇒ f (x0 ) = d0

. Con lo stesso ragionamento possiamo trovare


f (x1 ) − f (x0 )
f (x1 ) = d0 + d1 (x1 − x0 ) ⇒ d1 = = f [x0 ; x1 ]
x1 − x0
, dove il simbolo f [x0 ; x1 ] indica la differenza divisa di primo ordine. La
generica differenza divisa sarà determinata come:
f [x1 , . . . , xk ] − f [x0 . . . xk−1
f [x0 , x1 , . . . , xk ] =
xk − x0
Le differenze divise consento di ottenere una nuova forma dei polinomi di Lagrange

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]

da cui si ottiene rn (x) = dn+1 ωn + 1(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

e l’uguaglianza vale solo le funzione e la spline coincidono.


Occupiamoci della costruzione di una spline cubica. Per ogni sj (x) usiamo la
forma sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 , dove i coefficienti sono le
incognite che dobbiamo determinare. Chiamiamo hj = x − xj e yj = s(xj ) (deriva
dalle condizioni di interpolazione). La valutazione di sj (xj ) è yj e sj deve essere
continua nel raccordo con sj+1 . Allora abbiamo

yj + bj hj + cj h2j + dj h3j = yj+1

Andando a derivare si ha (sempre per la continuità)

s′j (x) = bj + 2cj hhj + 3dj h2j = bj+1

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

3.4 Approssimazione ai minimi quadrati e minimi


quadrati polinomiali
Si vuole minimizzare la distanza tra la retta y = a0 + a1 x e i dati (xi , yi ), problema
per il quale ci sono diverse soluzioni. Vediamo la soluzione dei minimi quadrati
lineari: n
X
min E2 (a0 , a1 ) = min( (yi − (a1 xi + a0 )2 ))
i=0
Affinché i valori di a0 e a1 corrispondano a un minimo, annulliamo le derivate di E2
in modo da ottenere:
 Pn Pn
∂E2
 ∂a0 = (n + 1)a0 + ( i=0 xi )a1 = i=0 yi

0( ni=0 xi )a0 + ( ni=0 x2i )a1 0 ni=0 xi yi



 ∂E2 P P P
∂a1

Mentre gli errori possono essere calcolati con


Xn
(yi − (a0 + a1 xi ))2
i=0

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

Il caso è perfettamente analogo a quello lineare, con la differenza che viene


generato un sistema lineare di n equazioni.

17
Capitolo 4

Integrazione e derivazione
numerica

4.1 Differenziazione numerica


Dalla definizione di derivata come limite del rapporto incrementale di una funzione,
possiamo subito ottenere una formula che approssima la derivata di f in un punto
x0 :
f (x0 + h) − f (x)
f ′ (x0 ) ≈
h
Calcolata in valori di h sufficientemente piccoli. Questa approssimazione però non
è molto conveniente, a causa degli errori di round-off.
Per approssimare f ′ (x0 ) cominciamo supponendo che x0 ∈ (a, b), con f ∈
2
C (a, b) e scegliamo un h sufficientemente piccolo affinchè x1 = x0 + h ∈ [a, b].
Costruiamo il primo polinomio di Lagrange P0,1 (x) per f determinato da x0 e x1 :
(x − x0 )(x − x1 ) ′′
f (x) = P0,1 (x) + f (ξ(x)) =
2!
f (x0 )(x − x0 − h) f (x0 + h)(x − x0 ) (x − x0 )(x − x0 − h) ′′
+ + f (ξ(x))
−h h 2
Derivando si ottiene:
f (x0 + h) − f (x0 ) (x − x0 )(x − x0 − h) ′′
f ′ (x) = + Dx [ f (ξ(x))] =
h 2
f (x0 + h) − f (x0 ) 2(x − x0 ) − h ′′
+ f (ξ(x))+
h 2
(x − x0 )(x − x0 − h)
Dx (f ′′ (ξ(x)))
2
L’eliminazione dei termini che coinvolgono ξ(x) porta a:
f (x0 + h) − f (x0 )
f ′ (x) ≈
h
18
Ovviamente non siamo sicuri di poter eliminare quei termini poiché non abbiamo
informazioni riguardo Dx f ′′ (ξ(x)), ma quando x = x0 il coefficiente Dx (f ′′ (ξ(x))) si
annulla e la formula diventa
f (x0 + h) − f (x0 ) h ′′
f ′ (x0 ) = − f (ξ)
h 2
Per valori piccoli di h, il rapporto incrementale si può usare per approssimare la
derivata con un errore limitato da M2|h| dove M è un maggiorante per |f ′′ (x)| per
x compreso tra x0 e x0 + h. Questa formula è conosciuta come formula delle
differenze in avanti se h > 0, oppure formula delle differenze all’indietro
quando h < 0.

4.2 Formule di approssimazione degli integrali


L’idea è di approssimare l’integrale definito di una funzione con una successione di
somme nella forma n
X
In (f ) = wk f (xk )
k=0

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 )

Definizione 4. Diremo che In (f ) è esatta su un polinomio di grado r se l’errore


commesso integrando il polinomio è zero. Chiamiamo grado di precisione il
numero d tale che

En (1) = En (x) = · · · = En (xd ) = 0, En (xd+1 ) ̸= 0

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

con errore dato da


Z b Z b
1
En (f ) = rn (x)dx = ωn+1 (x)f (n+1) (ε(x))dx
a (n + 1)! a

Queste formule sono dette Newton-Cotes;

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 ;

Tutte queste formule vengono chiamate chiuse, in quanto tengono in conside-


razione l’influenza degli estremi, ma possiamo avere anche formule aperte, cioè
formule nelle quali gli estremi non compaiono come nodi.

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

Dimostrazione. Consideriamo innanzitutto la situazione dei polinomi di grado mi-


nore di n. Possiamo riscrivere P (x) in termini del (n − 1)-imo polinomio fondamen-
tale di Lagrange con nodi posti alle radici del n-imo polinomio di Legendre Pn (x).
L’errore di questa rappresentazione coinvolge la derivata n-ima di P (x), che però è
nulla essendo il grado minore di n e quindi la rappresentazione è esatta. Allora:
n n
X X x − xj
P (x) = P (xi )L(xi ) = Πj=1,j̸=i P (xi )
i=1 i=1
xi − xj

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:

P (x) = Q(x)Pn (x) + R(x)

Essendo xi un radice di Pn (x), si ha P (xi ) = R(xi ). Essendo il grado di Q(x) minore


di n, per la seconda proprietà di Legendre si ha
Z 1
Q(x)Pn (x)dx = 0
−1

e siccome R(x) è un polinomio di grado inferiore a n si ha, per la parte precedente


della dimostrazione: Z 1 n
X
R(x)dx = ci R(xi )
−1 i=1

Allora, sfruttando tutto quanto appena ottenuto:


Z 1 Z 1 n
X n
X
1
P (x)dx = Q(x)Pn (x) + R(x)dx = int−1 R(x)dx = ci R(xi ) = ci P (xi )
−1 −1 i=1 i=1

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

5.1 Metodi di risoluzione. Norme di vettori e


matrici
In questo capitolo ci occupiamo della risoluzione di sistemi lineari la cui matrice
associata è a determinante non nullo, cioè trattiamo di sistemi che ammettono
un’unica soluzione. Vogliamo trovare soluzioni che non dipendano dal calcolo della
matrice inversa, in quanto questo potrebbe generalmente essere difficoltoso e avere
un numero di passaggi troppo elevato. Analogamente, cerchiamo di andare oltre
anche l’utilizzo del metodo di Cramer in quanto comporta il calcolo di un gran
numero di determinanti, ci affidiamo quindi a metodi puramente numerici.
I metodi numerici che utilizzeremo possono essere diretti, cioè condurre a una
soluzione dopo un numero finito di passaggi, o iterativi, cioè richiede un numero di
passaggi che si arresta una volta trovato un errore che rispetta una certa tolleranza.
Per le norme dei vettori, utilizzeremo generalmente le norme p:
v
u n
uX
||x||p = t
p
|xk |p
k=1

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

||x||∞ = max |xk |


1≤k≤n

Per queste norme valgono le seguenti relazioni:

- ∀x ∈ Rn si ha ||x||∞ ≤ ||x||2 ≤ ||x||;



- ||x||∞ ≤ ||x||2 ≤ n||x||∞ ;

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;

- ||A + B|| ≤ ||A|| + ||B||;

- ||A · B|| ≤ ||A|| · ||B||


La norma di una matrice può essere definita generalmente come segue:
||Ax||
||A|| = sup
x̸=0 ||x||

In particolare, consideriamo anche per le matrici le seguenti norme:


- ||A|| = maxj ni=1 |aij |;
P

- ||A||∞ = maxi nj=1 |aij |;


P

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 |;

- Se A = AT , allora ||A||∞ , ||A||2 = ρ(A)

26
5.2 Condizionamento ed errori
Definiamo il numero di condizionamento della matrice A:

k(A) = ||A|| · ||A−1 ||

Le proprietà di questo numero dipendono ovviamente dalla norma scelta, ma ce ne


sono alcune che valgono universalmente:

- k(A) ≥ 1;

- k(A) = k(A−1 );

- k(αA) = k(A)

Per convenzione, poniamo uguale a infinito il numero di condizionamento di una


matrice singolare. Inoltre, possiamo definire il numero di condizionamento di una
matrice anche mediante la seguente relazione:

1 ||A − B||
= min { : det(B) = 0}
k(A) B ||A||

Consideriamo il sistema lineare Ax = b e consideriamo le perturbazioni δA, δx, δb,


il sistema diventa:
(A + δA)(x + δx) = b + δb
Supponiamo δA = 0, si ha:

A(x + δx) = b + δb ⇒ Ax + Aδx = b + δb

Da Ax = b segue Aδx = δb, cioè δx = A−1 δb per cui ||δx|| ≤ ||A−1 || · ||δb||.
Dividendo tutto per ||x||:

||δx|| ||δb|| ||δb||


≤ ||A−1 || = ||A|| · ||A−1 ||
||x|| ||x|| ||A|| · ||x||

Sapendo che ||b|| = ||Ax|| si ha:

1 1 ||δx|| ||δb||
≥ ⇒ ≤ k(A)
||b|| ||A|| · ||x|| ||x|| ||b||

Una supposizione fondamentale da fare è che la perturbazione δA sia tale da non


rendere la matrice A singolare.

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

|apk | = max |aik |


k≤i≤n

E successivamente eseguire lo scambio (Ek ) ↔ (Ep ). Questa particolare tecnica è


detta pivoting parziale.
Si può utilizzare anche il pivoting parziale riscalato, che pone in posizione
pivotale l’elemento maggiore della riga scelta. Il primo passo è quello di definire un
fattore di scala si = max1≤j n |aij |. Se questo fattore è nullo, la matrice è singolare
perché ciò implica avere una riga nulla. Assumendo che questo non sia il caso, lo
scambio di righe da effettuare è determinato scegliendo il più piccolo intero p tale
che:
|ap1 | |ak1 |
= max
sp 1≤k≤n sk

ed effettuando lo scambio (E1 ) ↔ (Ep ).


L’effetto del riscalamento è assicura che il più grand elemento in ogni riga abbia
grandezza relativa pari a 1 prima che sia effettutato il confronto per lo scambio
di righe. Il riscalamento può essere effettuato in maniera analoga quando si pas-
sa all’eliminazione di un elemento mediante la combinazione lineare di righe. È
bene osservare che i fattori di riscalamento dipendono fortemente dalle righe, per

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.

5.4 Fattorizzazione delle matrici


La riduzione di Gauss-Jordan è lo strumento principale nella risoluzione dei sistemi
di equazioni lineari, ma la sua importanza non è ridotta solo a questo. Infatti
possiamo mostrare che alcuni dei passaggi utilizzari per risolvere un sistema possono
essere utilizzati anche per fattorizzare la matrice A secondo la fattorizzazione
LU, cioè per scriverla nella forma A = LU , dove L è una matrice triangolare bassa
(lower) e U è una matrice triangolare alta (upper).
Supponiamo che la matrice A associata a un sistema sia stata fattorizzata nella
forma A = LU . Allora la soluzione del sistema può essere determinata in maniera
più semplice utilizzando le caratteristiche delle matrici triangolari. Infatti possiamo
innanzitutto porre y = U x e risolvere il sistema (triangolare basso) Ly = b mediante
sostituzioni a ritroso (questo richiede O(n2 ) operazioni). Successivamente, una volta
trovato y possiamo determinare x risolvendo il sistema U x = y, con una sostituzione
in avanti (richiedendo sempre O(n2 ) operazioni). Risolvere un sistema in questo
modo riduce il costo computazionale da O( 31 n3 ) a O(2n2 ). Ovviamente, questa
semplificazione arriva al costo di determinare le due matrici L e U , che richiede a
sua volta O( 31 n3 ) operazioni.
Per determinare quali matrici possono essere fattorizzate con la forma LU , e
capire come questa è determinata, cominciamo a supporre che la riduzione di Gauss
si possa applicare al sistema Ax = b senza bisogno di permutazioni di righe. Ciò
significa che la matrice A non ha elementi nulli sulla diagonale.
Il primo passo nella riduzione di Gauss consiste nell’eseguire le operazioni
aj1
(Ej − mj1 E1 ) ↔ (Ej ), mj,1 =
a11
Queste operazioni trasformano il sistema in uno in cui tutte le entrate della prima
colonna al di sotto della diagonale sono nulle.
Questo sistema di operazione può essere visto anche da un altro punto di vista.
Lo si può infatti ottenere moltiplicando a sinistra la matrice A per la matrice (otte-
nuta formalmente dalla matrice identica sostituendo le entrate della prima colonna

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

A(2) x = M (1) Ax = M (1) b = b(2)

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:

LU = L(1) L(2) . . . Ln−1 · M (n−1) M (n−2) . . . M (1) · A = A

Teorema 5.1. Se la riduzione gaussiana può essere effettuata sul sistema Ax = b


senza permutazioni di righe, allora si può effettuare sulla matrice la fattorizzazione
LU .

5.5 Matrici speciali


Nella sezione precedente abbiamo visto la fattorizzazione LU per matrici che non
hanno bisogno di permutazioni di righe per essere ridotte mediante il metodo di

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

E si dice a diagonale strettamente dominante quando la disuguaglianza vale


strettamente.

Teorema 5.2. Una matrice a diagonale strettamente dominante ha determinante


non nullo. Inoltre, una matrice di questo tipo può essere ridotta con Gauss senza
permutazioni di righe o di colonne.

Dimostrazione. Cominciano con il provare che il determinante della matrice è non


nullo. Lo facciamo per assurdo, supponendo che il sistema Ax = 0 abbia una
soluzione non nulla. Sia k un indice tale per cui

0 < |xk | = max |xj |


1≤j≤n

Pn
Siccome j=1 aijxj = 0, quando abbiamo i = k si ha
n
X
akk xk = − akj xj
j=1,j̸=k

e dalla disuguaglianza triangolare si ha


n
X
|akk |xk | ≤ |akj ||xj |
j=1,j̸=i

Ma questo contraddice la definizione di matrice a diagonale strettamente dominante.


Questo significa che il sistema omogeneo di matrice A ha solo la soluzione nulla, e
cioè che A è una matrice a determinante non nullo.
Per provare adesso che la riduzione gaussiana di A può essere eseguita senza
permutazione di righe o colonne, mostriamo che ogni matrice che deriva da un’o-
perazione elementare di riduzione è ancora una matrice a diagonale strettamente
dominante. Ovviamente possiamo mostrare questo anche solo per la matrice A(2) ,
ragionando poi in modo analogo fino alla matrice A(n)
Visto che A è a diagonale strettamente dominante, a11 ̸= 0 e si può calcolare
(2)
A . Allora, per ogni i si ha

(2) a1j ai1


aij = aij −
a11

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

Con alcune manipolazioni algebriche e dalla dominanza diagonale di A otteniamo


anche la dominanza diagonale stretta di A(2) e con lo stesso ragionamento di tutte
la matrici fino ad A(n) , onde la tesi.
Diremo che una matrice A è definita positiva quando è simmetrica e quando
l’operatore lineare scalare ad essa associato è definito positivo, cioè xT · A · x > 0
per ogni vettore x e si annulla solo nel vettore nullo.

Teorema 5.3. Se A è una matrice definita positiva, valgono le seguenti proprietà:

- A è invertibile;

- max1≤k,j≤n |akj | ≤ max1≤i≤n |aii |;

- aii > 0 ∀i;

- (aij )2 < aii ajj ∀i ̸= j.

Dimostrazione. - Se il vettore x soddisfa la relazione Ax = 0, allora xT Ax =


0, per cui x è necessariamente il vettore nullo, quindi il sistema omogeneo
associato ad A ha solo la soluzione nulla, cioè A ha determinante non nullo e
dunque è invertibile;

- Per k ̸= j definiamo il vettore x come:




 0 i ̸= j, i ̸= k





xi = 1 i = j






−1 i = k

Il vettore è chiaramente non nullo, per cui

0 < xT Ax = ajj + akk − ajk − akj

Ma la matrice è simmetrica, per cui

2akj < ajj + akk

32
Sia ora z il vettore definito come:

0 i ̸= j, i ̸= k

zi =

1 i = joi = k

Ancora, essendo z non nullo, si ha z T Az > 0 cioè

−2akj < akk + ajj

Da queste equazioni deriva allora la tesi;

- Per un i qualsiasi, sia x un vettore che ha nulle tutte le componenti tranne la


xi = 1. Allora 0 < xT Ax = aii ;

- Per i ̸= j definiamo il vettore x come:




 0 k ̸= j, k ̸= i





xk = α k = i






1 k = j

Dove α è un arbitrario numero reale. Essendo x non nullo si ha

0 < xT Ax = aii α2 + 2aij α + ajj

Questo è un polinomio quadratico in α senza radici reali e ha quindi discri-


minante negativo, da ciò segue

4a2ij − 4aii ajj < 0

Teorema 5.4. Una matrice è definita positiva se e solo se la riduzione di Gauss


può essere effettuata su di essa senza permutazioni di righe.

Diremo che una matrice quadrata A è a banda se esistono due interi p e q


(minori dell’ordine della matrice e diversi da 1) tali che aij = 0 se p ≤ j − i oppure
q ≤ i − j. Il valore w = p + q − 1 è detto larghezza di banda della matrice. Una
matrice si dice poi tridiagonale se ha larghezza di banda 3 e p = q = 2. Queste
matrici sono particolari perché concentrano tutte le loro entrate non nulle intorno
alla diagonale.

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

Per k ≥ 1 generiamo cosı̀ la componente i-esima dell’approssimazione x(k) dalle


componenti dell’approssimazione precedente
n
(k) 1 X (k−1)
xi [ (−aij xj + bi ]
aii j=1,j̸=i

In generale, le tecniche iterative di risoluzione dei sistemi lineari coinvolgono un


processo che trasforma il sistema Ax = b in un sistema equivalente nella forma x =
T x+c. Dopo l’approssimazione iniziale x(0) , la successione di soluzioni approssimate
è generata andando a calcolare x(k) = T x(k−1) + c
Il metodo di Jacobi può essere scritto in questa forma andando a separare la
matrice A nella sua parte diagonale e non-diagonale. Sia allora D la parte diagonale
di A e −L, −U le parti rispettivamente triangolare inferiore e superiore di A, cioè
sia A = D − L − U . L’equazione Ax = b si riscrive quindi come (D − L − U )x = b
e viene trasformata in Dx = (L + U )x + b. Se A non ha elementi diagonali nulli,
D è una matrice invertibile e quindi possiamo moltiplicare tutto a sinistra per D−1
ottenendo
x = D−1 (L + U )x + D−1 b
Che ci porta alla forma matriciale dell’iterazione di Jacobi ponendo semplicemente
T = D−1 (L + U ) e c = D−1 b.
Questa tecniche può essere migliorata con la tecnica iterativa di Gauss-
Siedel. Nella tecnica di Jacobi utilizziamo le componenti dell’approssimazione
(k-1)-esima per calcolare quelle dell’approssimazione k-esima, che sono ovviamente
un’approssimazione migliore della soluzione. Allora la formula di Gauss-Siedel è
nella forma:
i−1 n
(k) 1
X (k)
X
xi [− aij xj − (aij xk−1
j ) + bi ]
aii j=1 j=i+1

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

Con le definizioni delle matrici D, L e U viste precedentemente scriviamo il metodo


di Gauss-Siedel come
(D − L)x(k) = U x(k−1) + b
oppure, ponendo Tg = (D − L)−1 U e cg = (D − L)−1 b

x(k) = Tg x(k−1) + cg

35
Capitolo 6

Risoluzione numerica di ODE

6.1 Teoria dei problemi ai valori iniziali


La risoluzione di equazioni differenziali reali è difficile e spesso impossibile dal punto
di vista analitico. Per questo si sviluppa un interesse nei confronti dell’approssima-
zione delle soluzioni di un’equazione differenziale ordinaria. Ci sono principalmente
due strade per affrontare questo problema. Una prevede di cercare un’equazione
differenziale più semplice, che possa essere risolta analiticamente e la cui soluzione
ci dia informazioni sulla soluzione dell’equazione originale (ad esempio, usando un
teorema di confronto come in Analisi 3). Un’altra strada, decisamente più con-
veniente, prevede l’approssimazione numerica delle soluzioni di un’equazione reale,
che non producono approssimazioni continue ma che possono essere trattate come
tali mediante metodi di interpolazione.
Per poter parlare di questi metodi introduciamo alcune definizioni e risulta-
ti fondamentali, ai quali ovviamente si accompagna l’importantissimo Teorema di
Esistenza e Unicità per le soluzioni di un problema di Cauchy (Analisi 2, Analisi
3).
Definizione 5. Diremo che una funzione f (t, y) è Lipschitziana nella variabile
y uniformemente rispetto a t in un insieme D ∈ R2 se esiste una costante L > 0
tale che
|f (t, y1 ) − f (t, y2 )| ≤ L|y1 − y2 |, ∀(t, y1 ), (t, y2 ) ∈ D
Definizione 6. Diremo che un insieme del piano D ⊆ R2 è convesso se per ogni
coppia di punti (t1 , y1 ), (t2 , y2 ) ∈ D si ha che i punti nella forma ((1 − λt1 + λt2 , (1 −
λ)y1 + λy2 )) sono ancora nell’insieme per qualsiasi λ ∈ [0, 1]. Geometricamente
parlando, un insieme del piano è convesso quando, presi due suoi punti qualsiai, il
segmento che li collega è interamente contenuto nell’insieme.
Teorema 6.1. Sia f (t, y) una funzione definita in un insieme D ⊆ R2 . Se esiste
una costante L > 0 tale che
∂f
| (t, y)| ≤ L ∀(t, y) ∈ D
∂y

36
Allora la funzione è Lipschitziana in y uniformemente rispetto a t in tutto D.

Il seguente risultato è una versione semplificata del teorema di esistena e unicità


di Cauchy:

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.

Definizione 7. Un’equazione differenziale si dice ben posta quando ammette una


soluzione unica e quando esistono due costanti ε0 > 0 e k > 0 tali che per ogni
0 < ε < ε0 , qualsiasi sia la funzione contiua δ(t) tale che |δ(t)| < ε per ogni t e tale
che |δ0 | < ε0 , l’equazione differenziale

dz
= f (t, z) + δ(t)
dt
con condizione iniziale z(α) = α + δ0 ha un’unica soluzione z(t) tale che

|z(t) − y(t)| < kε

Il concetto è simile, se non completamente analogo, a quello di soluzione stabile


per un’equazione differenziale. Il problema che si genera in questo caso viene detto
problema perturbato e uno degli scopi dei metodi numerici è proprio quello
di risolvere i problemi perturbati per poter calcolare gli errori di round-off sulle
approssimazioni delle soluzioni del problema originale.

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:

Lemma 6.4. Per ogni x ≤ −1 e qualsiasi intero positivo m si ha 0 ≤ (1+x)m ≤ emx

Lemma 6.5. Se s e t sono numeri reali positivi e la successione an soddisfa a0 ≥ − st


e ai+1 ≤ (1 + s)ai + t allora
t t
ai+1 ≤ (a+ + ) −
s s
Teorema 6.6. Sia D = {(t, y)|t ∈ [a, b], y ∈ R} e sia f (t, y) continua su D. Sia f
è Lipschitziana in y uniformemente rispetto a t in tutto D ed esista una costante
M > 0 tale che |y ′′ (t)| ≤ M , dove y(t) è l’unica soluzione del problema di Cauchy
ben posto. Siano w0 , . . . , wN le approssimazioni generate dal metodo di Eulero fino
al passo N, allora:
hM L(ti −a)
|y(ti ) − wi | ≤ [e − 1]
2L

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

Potrebbero piacerti anche