Calcolo numerico L-A
Riepilogo del materiale della prof.ssa Serena Morigi dell’a.a. 2009/10
Marco Alessandrini
Giugno 2010 – ***
C.d.L. in Ingegneria Elettronica e delle Telecomunicazioni
Seconda Facoltà di Ingegneria - Sede di Cesena
Università degli Studi di Bologna
\
=
$
CC
BY:
Quest’opera è stata rilasciata sotto la licenza Creative Commons Attribuzione-Non commerciale-Non opere derivate 2.5 Italia. Per leggere una copia
della licenza visita il sito web
http://creativecommons.org/licenses/by-nc-nd/2.5/it/
o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San
Francisco, California, 94105, USA.
È consentito riprodurre e distribuire liberamente il presente testo, senza apporvi modifiche e mantenendo sempre riconoscibile il nome degli autori, purché non a scopo di lucro,
senza scopi commerciali (direttamente o indirettamente) e per esclusivo uso personale.
È possibile pubblicare il file o sue parti su siti internet, purché sia citato in maniera
evidente l’autore.
Per qualunque informazione, problematica, suggerimento o reclamo utilizzare l’indirizzo marco [email protected].
Indice
1 Calcolo numerico
1.1 Approssimazioni e sorgenti d’errore . . . . . . . . .
1.2 Numeri finiti . . . . . . . . . . . . . . . . . . . . .
1.2.1 Errori di rappresentazione . . . . . . . . . .
1.2.2 Precisione di macchina (eps) . . . . . . . .
1.2.3 Formati IEEE 754 per floating point . . . .
1.2.4 Aritmetica finita (aritmetica floating point)
1.2.5 Propagazione degli errori . . . . . . . . . .
1.2.6 Cancellazione numerica . . . . . . . . . . .
1.3 Condizionamento di un problema matematico . . .
1.3.1 Stabilità di un algoritmo . . . . . . . . . . .
1.3.2 Bontà di un algoritmo . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
2 Radici reali di equazioni e sistemi di equazioni non
2.1 Soluzione di equazioni non lineari . . . . . . . . . . .
2.1.1 Metodo di bisezione . . . . . . . . . . . . . .
2.1.2 Metodo di Regula Falsi . . . . . . . . . . . .
2.1.3 Metodo delle secanti . . . . . . . . . . . . . .
2.1.4 Metodo di Newton (delle tangenti) . . . . . .
2.1.5 Ordine di convergenza . . . . . . . . . . . . .
2.2 Soluzione di sistemi di equazioni non lineari . . . . .
2.2.1 Metodo di Newton-Raphson . . . . . . . . . .
2.2.2 Minimizzazione di una funzione . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
Indice
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
lineari
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
3 Sistemi lineari
3.1 Condizionamento di un sistema lineare . . . . . . . . .
3.1.1 Perturbazione del termine noto . . . . . . . . .
3.1.2 Perturbazione della matrice dei coefficienti . . .
3.1.3 Proprietà dell’indice di condizionamento . . . .
3.2 Metodi numerici per risolvere sistemi lineari . . . . . .
3.2.1 Metodo di eliminazione di Gauss . . . . . . . .
3.2.2 Fattorizzazione di Cholesky per sistemi lineari
3.2.3 Fattorizzazione di matrici e sistemi lineari . . .
4 Interpolazione
4.1 Problema di interpolazione . . . . . . . . . . .
4.2 Interpolazione polinomiale . . . . . . . . . . . .
4.2.1 Interpolazione di Lagrange . . . . . . .
4.2.2 Interpolazione di Newton . . . . . . . .
4.2.3 Valutazione di un polinomio con metodo
4.3 Errori di interpolazione. Fenomeno di Runge .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
10
11
12
12
12
13
14
16
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
21
22
23
24
25
28
28
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
32
32
33
34
34
37
38
. . . . . .
. . . . . .
. . . . . .
. . . . . .
di Horner
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
40
40
41
42
42
.
.
.
.
.
.
.
.
3
=
$
CC
BY:
4.4
\
Calcolo numerico L-A
Interpolazione polinomiale a tratti . . . . . . . . . . . . . . . . . . . . . . . 43
4.4.1 Funzione spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Decomposizione ai valori singolari (SVD)
45
5.1 Approssimazione di matrice con minor rango . . . . . . . . . . . . . . . . . 46
5.2 Risoluzione di sistemi lineari malcondizionati . . . . . . . . . . . . . . . . . 46
6 Integrazione numerica
6.1 Formule di quadratura . . . . . . . . . . . . . .
6.2 Formule di quadratura di Newton-Cotes (a nodi
6.2.1 Errore di troncamento (rn ) . . . . . . .
6.2.2 Pesi per formule di Newton-Cotes . . .
6.2.3 Problema delle formule di quadratura .
6.3 Formule di quadratura composite . . . . . . . .
6.3.1 Quadratura automatica . . . . . . . . .
6.4 Estrapolazione di Richardson . . . . . . . . . .
6.5 Calcolo geometrico con integrali . . . . . . . . .
6.6 Calcolo fisico con integrali . . . . . . . . . . . .
6.7 Esempi numerici . . . . . . . . . . . . . . . . .
. . . . . . . .
equispaziati)
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
48
48
49
52
53
53
54
55
56
56
57
57
7 Approssimazione
7.1 Approssimazione ai minimi quadrati (LS) . . . . . . . . . . . . . . . . . . .
7.1.1 Metodo delle equazioni normali per l’approssimazione ai minimi
quadrati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.2 Minimi quadrati pesati. Polinomi ortogonali nelle equazioni normali
7.1.3 Metodo QR-LS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.4 Metodo della decomposizione in valori singolari (SVD-LS) . . . . . .
61
62
A Vettori e matrici
A.1 Operazioni tra vettori .
A.2 Operazioni tra matrici .
A.3 Norme . . . . . . . . . .
A.3.1 Norma vettoriale
A.3.2 Norma matriciale
A.4 Matrici definite in segno
68
68
68
69
69
69
70
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
65
66
66
Elenco delle figure
72
Elenco delle tabelle
73
Indice analitico
74
4
Indice
I matematici possono dimostrare solo teoremi banali
perché ogni teorema che viene dimostrato
è necessariamente banale.
- Richard Feynman -
I matematici sono come i francesi:
se si parla con loro, traducono nella loro lingua,
e diventa subito qualcosa di diverso.
- Johann Wolfgang von Goethe -
CAPITOLO
1
Calcolo numerico
Il calcolo numerico è l’arte di dare una risposta numerica ad un problema matematico
attraverso un elaboratore elettronico. Lo scopo è quello di definire metodi numerici, cioè
algoritmi, per la risoluzione con il calcolatore di problemi matematici (figura 1.1). Il calcolo
numerico deve essere svolto:
1. nel minimo tempo possibile;
2. con la massima accuratezza.
Figura 1.1: Analisi numerica
1.1
Approssimazioni e sorgenti d’errore
1) Semplificazioni introdotte nel modello.
ˆ Si suppone che il modello sia lineare.
ˆ Si suppone che alcune grandezze fisiche siano trascurabili.
2) Errori nei dati. Generalmente, i dati di un problema sono ottenuti da misurazioni,
influenzate da errori sistematici e da errori casuali.
Errori sistematici: dipendono dalla sensibilità dello strumento di misura.
1 - Calcolo numerico
7
=
$
CC
BY:
\
Calcolo numerico L-A
Errori casuali: sono dovuti a uno o più eventi imprevedibili.
È importante fare una stima degli errori, perché da essa dipendono la scelta del grado di
precisione e i test di arresto.
3) Errori di arrotondamento.
calcolatore.
Sono introdotti nella rappresentazione dei numeri sul
4) Errori di troncamento/discretizzazione. Sono introdotti quando si approssima
un procedimento infinito con uno finito. Ad esempio:
ˆ approssimare la derivata col rapporto incrementale;
ˆ approssimare l’integrale con la formula di quadratura.
1.2
Numeri finiti
Non tutti i numeri sono rappresentabili da calcolatore, ma solo:
ˆ numeri a punto fisso: insieme finito di interi;
ˆ numeri a punto mobile: insieme finito di reali.
Un numero con virgola in una certa base B può essere rappresentato come somme distinte
della parte intera e della parte decimale:
±(an . . . a0 . b1 b2 . . . )B = ±
n
X
ak · B k +
k=0
∞
X
bk · B −k
k=1
anche se la rappresentazione univoca di x ∈ R (con B ∈ N) è:
x
=
=
±0". d1 d2 . . . · B#p
∞
X
±
di · B −i · B p
d1 6= 0
0 ≤ di ≤ B − 1
i=1
=
1
≤m<1
B
±m · B p
m è la mantissa, B è la base, p è l’esponente. La rappresentazione univoca è la notazione
scientifica normalizzata: per poterla utilizzare al calcolatore, la sommatoria non può essere
infinita ma deve essere limitata a un termine t (dove t+1 è il numero di posizioni utilizzate
per rappresentare il numero).
Si possono anche utilizzare altre rappresentazioni.
Rappresentazione in complemento alla base.
−x in base B con t + 1 posizioni, con la forma:
Si rappresenta un numero negativo
B t+1 − x
Si ha overflow quando x < −B t .
Rappresentazione con esponente. Si aggiunge il fattore costante
cifre riservate all’esponente. Ad esempio:
x = 0.1039 · 10−6
Bi
2 ,
dove i sono le
con B = 10
2
Il fattore è 102 = 50. Se gli esponenti da −50 a +49 sono memorizzati con i valori da 00
a 99 si può scrivere:
x → 04410390
8
1.2 - Numeri finiti
=
$
CC
BY:
\
Calcolo numerico L-A
L’insieme finito di numeri normalizzati a virgola mobile è:
(
F (B, t, L, U ) =
x∈R:x=±
t
X
!
di · B
)
·B
−i
p
∪ {0}
i=1

D1 6= 0




 0 ≤ di ≤ B − 1
L≤p≤U
con:


L<0



U >0
di solito L = −U
Non tutti i numeri reali sono rappresentabili in F , perché:
1. l’esponente è limitato:
ˆ p > U : errore di overflow;
ˆ p < L: errore di underflow.
2. la mantissa ha t cifre disponibili: se il numero di cifre nella mantissa è superiore
a t, i numeri non sono esattamente rappresentabili, dunque occorre approssimarli
(troncamento o arrotondamento).
Il troncamento è ottenuto impostando un valore a piacere di t, dunque eliminando tutte
le cifre successive di peso inferiore:
fl T (x) = ± d1 B −1 + d2 B −2 + · · · + dt B −t · B p
L’arrotondamento è ottenuto aggiungendo 21 B −t alla mantissa e troncando alla t-esima
cifra:
!
t+1
h X
i
1 −t
−i
fl A (x) = ± fl T
di B + B
· Bp
2
i=1
L’approssimazione è fatta alla cifra più vicina:


 fl (x),
T
fl A (x) =

 fl (x) + B p−t ,
T
B
2
B
≥
2
se dt+1 <
se dt+1
L’insieme F (B, t, L, U ) contiene 2(U − L + 1)(B − 1)B t−1 + 1. F non è una perfetta
simulazione di R:
1. i numeri non sono uniformemente distribuiti sull’asse reale;
2. la densità dei numeri decresce con l’aumentare del valore assoluto del numero;
3. tutti i numeri reali compresi tra due consecutivi numeri finiti sono approssimati da
uno dei due valori.
Esempio. È dato l’insieme1 F (B = 2, t = 3, L = −1, U = 2). Allora 1− ≤ p ≤ 2 e le
possibili mantisse sono:
0.100
,
0.101
,
0.110 ,
0.111
quindi i numeri finiti rappresentabili sono 33 (compreso lo zero):
2(U − L + 1)(B − 1)B t−1 + 1 = 2 · (2 + 1 + 1) · (2 − 1) · 23−1 + 1 = 2 · 4 · 1 · 22 + 1 = 33
1 Si
tratta di un insieme di numeri in base binaria.
1.2 - Numeri finiti
9
=
$
CC
BY:
\
Calcolo numerico L-A
Nel dettaglio, questi numeri finiti sono:

0.100 · 2−1 = 12 · 12 = 14




0.100 · 20
= 21 · 1 = 21



+1

0.100 · 2
= 12 · 2 = 1



+2
0.100 · 2
= 12 · 4 = 2
5
−1
0.101 · 2
= 12 + 18 · 12 = 16



1
1
5
0

0.101 · 2
= 2 + 8 · 1 = 8



1
5
1
+1

0.101
·
2
=


2 + 8 · 2 = 4

1
1
0.101 · 2+2 = 2 + 8 · 4 = 52

0.110 · 2−1




0.110 · 20




0.110 · 2+1



0.110 · 2+2
 0.111 · 2−1



 0.111 · 20



 0.111 · 2+1


0.111 · 2+2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
=
=
=
=
=
=
=
=
+ 41 · 12 = 38
+ 41 · 1 = 34
+ 41 · 2 = 32
+ 41 · 4 = 3
7
+ 41 + 18 · 12 = 16
1
1
7
+ 4 + 8 · 1 = 8
+ 41 + 18 · 2 = 74
+ 41 + 18 · 4 = 72
Ponendo tutti i numeri finiti sull’asse reale, si nota come aumenta la discretizzazione
all’aumentare del valore assoluto dei valori, cioè allontanandosi dallo zero (figura 1.2).
−4
−3
− 72
−2
−1
0
− 25
1
2
1 1
4 2
5 5
5
16 8
4
3 3
3
8 4
2
7 7
7
16 8
4
3
4
5
2
7
2
Figura 1.2: Disposizione sull’asse reale dei numeri finiti rappresentati dall’insieme F (B = 2, t = 3, L =
−1, U = 2)
1.2.1
Errori di rappresentazione
Consideriamo i valori:
x = mB p
,
x̄ = fl (x) = m̄B p
Definizione 1 (Errore assoluto). x − fl (x).
x − fl (x)
Definizione 2 (Errore relativo).
con x 6= 0.
x
L’errore più significativo è l’errore relativo, perché mette in relazione la differenza
dovuta all’approssimazione con il valore della grandezza.
Teorema 1. Per l’errore assoluto vale:
x − fl (x) < B p−t
T
mentre per l’errore relativo vale:
x − fl (x)
T
≤ B 1−t
x
e
x − fl (x) ≤ 1 B p−t
A
2
e
x − fl (x)
1
A
≤ B 1−t
x
2
Dimostrazione. Valutiamo la distanza (errore assoluto) tra le mantisse nel caso
di troncamento (figura 1.3).
m
m̄1
m̄2 = m̄1 + B −t
Figura 1.3: Valutazione dell’errore nel caso di troncamento
m ∈ m̄1 , m̄1 + B −t
10
⇒
m̄ = m̄1
⇒
m − m̄ < B −t
1.2 - Numeri finiti
=
$
CC
BY:
\
Calcolo numerico L-A
m
1
m̄1 + B −t
2
m̄1
m̄2 = m̄1 + B −t
Figura 1.4: Valutazione dell’errore nel caso di arrotondamento
Valutiamo ora la distanza nel caso di arrotondamento (figura 1.4).
1
se m ∈ m̄1 , m̄1 + B −t
2
1 −t
se m ∈ m̄1 + B , m̄2
2



m̄ = m̄1 
⇒
⇒
⇒


m̄ = m̄2 
m − m̄ ≤ 1 B −t
2
Per il troncamento si può concludere che l’errore relativo è:
x − fl (x)
mB p − m̄B p B p−t
B −t
T
≤
≤
= B 1−t
=
x
mB p
0.d1 . . . dt · B p
B −1
perché B −1 ≤ |m| < 1.
La conclusione è del tutto analoga per l’arrotondamento.
1.2.2
Precisione di macchina (eps)
Definizione 3 (Precisione di macchina). Unificando le scritture dell’errore relativo per i
casi di troncamento e arrotondamento si può scrivere:
(
B 1−t (troncamento)
x − fl (x)
1 1−t
≤ eps
con eps =
x
B
(arrotondamento)
2
Nota 1.2.1. eps è chiamato anche unità di arrotondamento.
eps è il più piccolo numero finito positivo tale che:
fl (1 + eps) > 1
La formula dà una misura dell’accuratezza con la quale i numeri reali sono approssimati
da numeri finiti F (B, t, L, U ), quindi misura la precisione del calcolatore. In altre parole,
eps è il massimo errore relativo che si commette nel rappresentare un numero reale al
calcolatore.
Esempio.
Consideriamo x = 1 e cerchiamo eps per casi, avendo B = 10, t = 5.
ˆ Con y = 0.4 · 10−4 :
fl A (x + y) = fl A (1.00004) = 0.10000 · 101 = 1
non è eps
ˆ Con y = 0.5 · 10−4 :
fl A (x + y) = fl A (1.00005) = 0.10001 · 101 > 1
è eps
L’errore relativo che si commette nel rappresentare in F un numero reale x con fl (x)
è:
ε=
fl (x) − x
x
Teorema 2. Avendo x ∈ R, rappresentabile in F , si verifica che:
fl (x) = x(1 + ε)
,
con |ε| ≤ eps
cioè ogni reale rappresentabile in F può essere approssimato da un elemento di F con un
errore relativo non più grande di eps.
1.2 - Numeri finiti
11
=
$
CC
BY:
1.2.3
\
Calcolo numerico L-A
Formati IEEE 754 per floating point
Lo standard IEEE 754 adotta:
ˆ la tecnica di arrotondamento ai pari (round to even) per x esattamente equidistante
da due numeri finiti x1 e x2 consecutivi;
ˆ l’hidden bit, perché il primo bit di mantissa è sempre 1, quindi si può evitare di
memorizzarlo (e guadagnare un bit).
1) Precisione semplice 32 bit (base 2)
SEGNO
1
p∗
ESPONENTE
8
p∗ = p + 127
,
m
MANTISSA
23
0 ≤ p∗ ≤ 255
t = 23. m ha 24 bit (incluso l’hidden bit).
2) Precisione doppia 64 bit (base 2)
SEGNO
1
p∗
ESPONENTE
11
p∗ = p + 1023
,
m
MANTISSA
52
0 ≤ p∗ ≤ 2047
t = 52. m ha 53 bit (incluso l’hidden bit).
Gli eps nei due casi sono:
eps1 =
1 1−t
·2
= 2−23 ' 1, 2 · 10−7
2
1 1−t
·2
= 2−52 ' 2, 2 · 10−16
2
Alcune notazioni particolari sono in tabella 1.1.
eps2 =
ZERO
NOT A NUMBER (NaN)
INFINITO (OVERFLOW)
0/1
0/1
0/1
0
111. . . 11
111. . . 11
0
ogni configurazione diversa da 0
0
Tabella 1.1: Notazioni particolari di formati IEEE 754
1.2.4
Aritmetica finita (aritmetica floating point)
Lemma 1.2.1. I risultati di operazioni aritmetiche tra numeri finiti generalmente non
sono numeri finiti.
Ciò significa che in un calcolatore risulta impossibile implementare correttamente le
operazioni aritmetiche. Le operazioni in aritmetica finita associano a due numeri finiti
un terzo numero finito, che è ottenuto approssimando il risultato esatto dell’operazione
aritmetica.
ā = fl (a)
,
b̄ = fl (b)
ā op b̄ = fl (ā op b̄) = (ā op b̄)(1 + ε)
1.2.5
con |ε| ≤ eps
Propagazione degli errori
Si deve considerare l’esecuzione di una sequenza di operazioni, nella quale si verifica una
propagazione di errori di entità non trascurabile. Perché il risultato sia attendibile bisogna
controllare e gestire il fenomeno.
12
1.2 - Numeri finiti
=
$
CC
BY:
\
Calcolo numerico L-A
Propagazione nella moltiplicazione
fl fl (x) · fl (y) − (x · y)
x·y
=
x(1 + ε1 ) · y(1 + ε2 ) · (1 + ε3 ) − x · y
x·y
(1 + ε1 )(1 + ε2 )(1 + ε3 ) − 1
'
ε1 + ε2 + ε3
=
Propagazione nell’addizione
fl fl (x) + fl (y) − (x + y)
x+y
=
=
'
x(1 + ε1 ) + y(1 + ε2 ) · (1 + ε3 ) − (x + y)
x+y
xε1 + yε2 + xε3 + yε3 + xε1 ε3 + yε2 ε3
x+y
x
y
ε1 +
ε2 + ε3
x+y
x+y
Propagazione nella sottrazione
fl fl (x) − fl (y) − (x − y)
x−y
=
=
'
x(1 + ε1 ) − y(1 + ε2 ) · (1 + ε3 ) − (x − y)
x−y
xε1 − yε2 + xε3 − yε3 + xε1 ε3 − yε2 ε3
x+y
x
y
ε1 +
ε2 + ε3
x−y
x−y
Quando x è quasi uguale a y, ε1 e ε2 sono enormemente amplificati e cosı̀ lo è pure l’errore.
1.2.6
Cancellazione numerica
Nelle operazioni di sottrazione, quando i due operandi sono quasi uguali si ha una perdita
di cifre significative.
Esempio (1).
Consideriamo (B = 10, t = 6):
x1 = 0, 147554326
,
x2 = 0, 147251742
fl (x1 ) = 0, 147554
,
fl (x2 ) = 0, 147252
Allora:
Sul calcolatore la differenza è:
fl fl (x1 ) − fl (x2 ) = 0, 302000 · 10−3
mentre la vera differenza è:
x1 − x2 = 0, 302584 · 10−3
per cui l’errore relativo commesso è circa 0, 2 · 10−2 = 0, 2%. Le ultime cifre della mantissa
sono alterate perché, dopo aver eseguito fl (x1 ) − fl (x2 ) = 0, 000302, la rappresentazione
normalizzata ha introdotto tre zeri alla fine della mantissa.
Esempio (2).
Consideriamo due numeri ancora più vicini (B = 10, t = 6):
x1 = 0, 147554326
,
x2 = 0, 147551742
fl (x1 ) = 0, 147554
,
fl (x2 ) = 0, 147552
Allora:
Sul calcolatore la differenza è:
fl fl (x1 ) − fl (x2 ) = 0, 2 · 10−5
1.2 - Numeri finiti
13
=
$
CC
BY:
\
Calcolo numerico L-A
mentre la vera differenza è:
x1 − x2 = 0, 2584 · 10−5
per cui l’errore relativo commesso è circa 0, 2 · 10−0 = 20%.
L’operazione di sottrazione in sé non introduce alcuna perdita di precisione, ma può
amplificare gli errori presenti negli operandi.
Esempio (3).
Consideriamo il calcolo del risultato dell’equazione (B = 10, t = 4):
x2 − 6, 433x + 0, 009474 = 0
6, 443 −
x2 =
q
2
(6, 433) − 4 · 0, 009474
2
=
x = 0, 0014731
fl (x) = 0, 2000 · 10−2
esatto
numero finito
L’errore relativo che si commette è:
x − fl (x) ' 0, 357 = 36%
x
Si verifica che:
√
b − ∆ = 0, 6433 · 101 − 0, 6429 · 101
b − fl (b) 6, 433 − fl (6, 433) =
=0
errore in b
b
6, 433
√
∆ − fl √∆ √
6, 4300538 − fl (6, 429) ' 0, 16 · 10−3
√
=
errore
in
∆
6, 4300538
∆
Pur partendo da dati affetti da un piccolo errore relativo di arrotondamento, alla fine
l’errore è notevole.
Lemma 1.2.2. Per equazioni di secondo grado del tipo ax2 + bx + c = 0, in tutti i casi in
cui b2 ' 4ac bisogna utilizzare maggiore precisione per contenere l’errore.
1.3
Condizionamento di un problema matematico
Definizione 4 (Problema numerico). Descrizione chiara e non ambigua di una connessione
funzionale tra i dati x e i risultati desiderati y.
Definizione 5 (Algoritmo). Sequenza di istruzioni che devono essere eseguite per ottenere,
in un numero finito di passi, da un vettore dati x il corrispondente output ψ̃ che non è
necessariamente uguale a y. Ad ogni problema numerico è possibile associare più algoritmi.
Definizione 6 (Perturbazione nei dati). Una perturbazione nei dati è rappresentata da
x̃ = x + δx. Il problema f propaga gli errori nei dati (in assenza di errori nei calcoli e in
maniera indipendente dal procedimento di calcolo) come segue:
x → f (x) = y
x̃
→ f (x̃) = ỹ
→ ψ (x̃) = ψ̃
Il condizionamento di un problema è il confronto tra la risposta analitica f (x) e la
risposta f (x̃) = ỹ ottenuta a partire da dati perturbati. Il problema è ben condizionato
quando a piccole perturbazioni relative su x corrispondono perturbazioni relative su f (x)
dello stesso ordine di grandezza. Se ciò non si verifica, il problema è mal condizionato.
Lemma 1.3.1. Uno stesso problema può essere mal condizionato per certi dati, ma non
per altri.
14
1.3 - Condizionamento di un problema matematico
=
$
CC
BY:
\
Calcolo numerico L-A
Definizione 7 (Indice di condizionamento). L’indice di condizionamento di un problema
numerico è un valore K tale che:
f (x) − f (x̃)
x − x̃
≤K· f (x)
x
Il condizionamento è legato al problema numerico e non ha legami con gli errori di
arrotondamento, né con l’algoritmo utilizzato.
Esempio: valutazione di una funzione f in un punto x (f differenziabile).
f (x + δx) − f (x) '
f (x + δx) − f (x)
'
f (x)
f (x + δx) − f (x)
'
f (x)
f 0 (x) · δx
f 0 (x) · δx
f (x)
0
f (x) · x
δx
·
f (x)
x
|
{z
}
K
Supponiamo f (x) = tg (x), che diverge per x = π2 . Per valori di x vicini a multipli di π2 la
funzione f (x) amplifica gli errori sul dato x, quindi il problema risulta mal condizionato.
Infatti:
x = 1, 57079
⇒
tg (1, 57079) = 1, 58058 · 105
x 1 + tg 2 x 0
2
f (x) = 1 + tg (x)
⇒
K=
= 2, 48275 · 105
tg x
δx = |1, 57079 − 1, 57078| ' 6, 37 · 10−6
f (x + δx) − f (x)
' 1, 58
f (x)
Esempio: problema mal condizionato (Wilkinson 1963). Calcolare le radici
del polinomio p(x):
p(x)
=
(x − 1)(x − 2) · . . . · (x − 19)(x − 20)
= x20 − 210x19 + . . .
Al calcolatore: B = 2, t = 30 (servono per il calcolo degli zeri, che sono {1, 2, 3, . . . , 19, 20}).
Per memorizzare i coefficienti del polinomio è necessario arrotondare alla trentesima cifra
significativa binaria.
Perturbiamo ora il coefficiente di x19 :
−210
→
−210 + 2−23
per cui il polinomio diventa p(x) + 2−23 x19 = 0. Le radici sono cambiate:



























1, 00000 0000
2, 00000 0000
3, 00000 0000
4, 00000 0000
4, 99999 9928
6, 00000 6944
8, 00726 7603
8, 91725 0249
20, 84690 8101

10, 09526 6145 ± i0, 64350 0904




 11, 79363 3881 ± i1, 65232 9728
13, 99235 8137 ± i2, 51883 0070


16, 73073 7466 ± i2, 81262 4894



19, 50243 9400 ± i1, 94033 0347
1.3 - Condizionamento di un problema matematico
15
=
$
CC
BY:
\
Calcolo numerico L-A
Esempio: problema mal condizionato. Risolvere il sistema lineare:
x+y =2
x=1
il cui risultato è
1001x + 1000y = 2001
y=1
Perturbiamo ora il coefficiente di x dell’1%:
 1

x+y =2
1+
100

1001x + 1000y = 2001
⇒


 x = − 1 = −0, 1
9
1901

 y=
= 2, 112
900
cioè l’errore commesso è pari al 110%.
1.3.1
Stabilità di un algoritmo
La stabilità di un algoritmo è il confronto tra la risposta fornita dall’algoritmo ψ (x̃) e
f (x̃) = ỹ: valuta, quindi, la reazione fornita dall’algoritmo all’introduzione di perturbazioni nei dati iniziali.
Il valore calcolato con f può essere affetto da:
errore inerente: è generato dalla rappresentazione dei dati come numeri finiti:
EIN =
f (x̃) − f (x)
f (x)
errore algoritmico: è generato dal calcolo di ψ (x̃) e dovuto alle operazioni in aritmetica
finita:
ψ (x̃) − f (x̃)
EALG =
f (x̃)
L’accuratezza della soluzione, cioè lo scostamento rispetto al valore esatto che ci si attende,
dipende sia dal condizionamento del problema, sia dalla stabilità algoritmica:
ET OT
=
ψ (x̃) − f (x)
errore totale
f (x)
EALG (1 + EIN ) + EIN
'
EALG + EIN
=
La stabilità dell’algoritmo non garantisce che il risultato calcolato sia accurato. Per un
problema mal condizionato, la distinzione tra algoritmo stabile e instabile non è significativa perché l’errore totale è dominato dall’errore inerente. Per questo motivo, è opportuna
una riformulazione.
La bassa accuratezza dei risultati di un processo numerico è imputabile a:
ˆ alto condizionamento intrinseco del problema;
ˆ instabilità dell’algoritmo.
Un algoritmo è stabile se:
EALG ≺ g(n) · eps
dove:
ˆ n è il numero di operazioni effettuate;
c · n, c > 0 crescita dell’errore lineare
ˆ g(n) =
cn , c > 1 crescita dell’errore esponenziale
Quindi c’è stabilità se g(n) è lineare, cioè l’errore algoritmico è dello stesso ordine di
grandezza della precisione di macchina.
16
1.3 - Condizionamento di un problema matematico
=
$
CC
BY:
Esempio (1).
\
Calcolo numerico L-A
(1 + x) − 1
con l’algoritmo:
x
x = 10−15
;
y = (1 + x) − 1 /x
Valutare y =
Con l’algoritmo si ottiene y = 1, 11022302462516 invece di y = 1. Il problema è ben
condizionato:
0
f (x) · x =0
perché f 0 (x) = 0 ∀x 6= 0
K=
f (x) Verifichiamo se l’algoritmo è stabile:
fl (1 + x) = 1 + fl (x) · (1 + ε)
fl (1 + x) − 1 = fl (1 + x) − 1 · (1 + ε) ' x(1 + 2ε) + ε
fl (1+x)−1
fl (x)
|
1
· (1 + ε) − 1
1
{z
è il valore esatto di
=
x(1 + 2ε) + ε
ε
· (1 + ε) − 1 ' 2ε +
x(1 + ε)
x
}
f (x)
Se x è piccolo, l’errore su y può essere grande.
1 1
1
Esempio (2). La successione 1 , , , . . . , n , . . . può essere generata con le se3 9
3
guenti relazioni ricorrenti:

10

 pn =
pn−1 − pn−2
3
(1.3.1)
p =1

 0
1
p1 = 3
(
1
pn−1
3
p0 = 1
pn =
(1.3.2)
Bisogna generare i primi 100 termini della successione. La relazione 1.3.1 (figure 1.5(a)
e 1.5(b)) diverge!
Algoritmo instabile (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx xxx
p1(1) = 1;
p1(2) = 1/3;
for i=2:100
p1(i+1) = 10/3 * p1(i)-p1(i-1);
end
p1z=p1(1:35);
plot(1:35,p1z),title(Successione generata con algoritmo instabile - ZOOM),grid
figure
plot(1:101,p1),title(Successione generata con algoritmo instabile),grid
Analizziamo la propagazione dell’errore della 1.3.1:
p̃0 = p0 + ε ,
10
p̃2 =
p̃1 − p̃0 =
3
10
p̃3 =
p̃2 − p̃1 =
3
10
p̃4 =
p̃3 − p̃2 =
3
...
p̃1 = p1 + ε
10
7
(p1 + ε) − (p0 + ε) = p2 + ε
3
3
10
7
61
(p2 + ε) − (p1 + ε) = p3 + ε
3
3
9
10
61
583
(p3 + ε) − (p2 + ε) = p4 +
ε
3
9
27
1.3 - Condizionamento di un problema matematico
17
=
$
CC
BY:
\
Calcolo numerico L-A
Al contrario, la propagazione dell’errore della 1.3.1 (figure 1.5(c) e 1.5(d)) si sviluppa come
segue:
p̃0 = p0 + ε
1
p̃1 = p̃0 =
3
1
p̃2 = p̃1 =
3
...
1
1
(p0 + ε) = p1 + ε
3
3
1
1
1
(p1 + ε) = p2 + ε
3
3
9
Algoritmo stabile (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx xxx
p2(1) = 1;
for i=1:100
p2(i+1) = 1/3 * p2(i);
end
p2z=p2(1:35);
plot(1:35,p2z),title(Successione generata con algoritmo instabile - ZOOM),grid
figure
plot(1:101,p2),title(Successione generata con algoritmo instabile),grid
(a) Successione 1.3.1
(b) Successione 1.3.1 (zoom da p0 a p35 )
(c) Successione 1.3.1
(d) Successione 1.3.1 (zoom da p0 a p35 )
Figura 1.5: Successioni ottenute con algoritmi stabili o instabili
Z
1
Bisogna calcolare En =
xn ex−1 dx con n = 1, 2, . . . .
0
Z 1
h
i1 Z 1
nxn−1 ex−1 dx.
Integrando per parti:
xn ex−1 dx = xn ex−1 −
Esempio (3).
0
0
0
Ricorsivamente: En = 1 − n · En−1 , con n = 2, 3, . . . e valore iniziale E1 =
18
1
.
e
1.3 - Condizionamento di un problema matematico
=
$
CC
BY:
\
Calcolo numerico L-A
Al calcolatore, con B = 10 e t = 6, si ottiene:



 E1 ' 0, 367879
E6 ' 0, 127120




 E2 ' 0, 264242

E7 ' 0, 110160
E3 ' 0, 207274
E8 ' 0, 118720




E


4 ' 0, 170904

E9 ' −0, 0684800

E5 ' 0, 145480
ma la funzione è positiva in (0 , 1)
L’errore di arrotondamento nel calcolo di E1 è:
1
,
Ē1 = E1 + δ
con δ ' 4, 412 · 10−7
E1 =
e
Nel calcolo di E2 tale errore è moltiplicato per −2, nel calcolo di E3 è moltiplicato per −3
e cosı̀ via. In conclusione:
Ēn
=
1 − n · Ēn−1
=
En + (−1)n−1 · n! · δ
dove 9! · 4, 412 · 10−7 ' 1, 1601. Ne consegue che l’algoritmo scelto è instabile.
Calcoliamo ora utilizzando un algoritmo stabile:
En−1 =
1 − En
n
,
Per trovare un valore iniziale:
Z 1
Z
n x−1
En =
x e
dx ≤
0
n→+∞
En −→ 0
0
1
n = . . . , 3, 2
xn+1
x =
n+1
n
1
=
0
1
n+1
allora approssimiamo E20 = 0
Al calcolatore:
Per E20
1.3.2


E1 4 ' 0, 0627322
E2 0 ' 0, 0








E1 3 ' 0, 0669477
E
9
'
0,
0500000


1




E1 2 ' 0, 0717733
E1 8 ' 0, 0500000
E1 1 ' 0, 0773523
E
7
'
0,
0527778


1






E1 0 ' 0, 0838771
E
6
'
0,
0557190


1




E9 ' 0, 0916123
E1 5 ' 0, 0590176
1
1
l’errore iniziale è circa
, mentre per E19 è moltiplicato per
e cosı̀ via.
21
20
Bontà di un algoritmo
Un algoritmo è valido qualitativamente quando ha le seguenti caratteristiche:
1. generalità e robustezza: si applica a un qualsiasi insieme di dati di un certo
dominio;
2. semplicità di verifica delle ipotesi di applicazione;
3. stabilità numerica;
4. richiesta di risorse come numero di operazioni e quantità di memoria richiesta.
Definizione 8 (Costo (complessità) computazionale di un algoritmo). Numero di operazioni aritmetiche floating point che sono richieste per la sua esecuzione. Una operazione
elementare è misurabile come 1 flop (Floating-point operation).
Definizione 9 (Tempo di CPU). Tempo impiegato dall’unità centrale per eseguire un
determinato programma.
L’obiettivo è ottimizzare gli algoritmi per ridurre il numero di operazioni computazionali e, quindi, i tempi di esecuzione. Alcuni esempi di ottimizzazione sono:
ˆ il metodo di Gauss invece del metodo di Cramer nella risoluzione di sistemi lineari;
ˆ il metodo di Ruffini-Horner per calcolare il valore di un polinomio in un punto,
dimezzando il numero di moltiplicazioni necessarie.
1.3 - Condizionamento di un problema matematico
19
CAPITOLO
2
Radici reali di equazioni e sistemi di equazioni non lineari
2.1
Soluzione di equazioni non lineari
Bisogna determinare i valori di x per cui f (x) = 0. Le radici di un’equazione non lineare
non possono, in generale, essere espresse in forma chiusa. Anche quando questo è possibile,
l’espressione corrispondente può risultare molto complessa. Allora si ricorre a metodi
numerici iterativi approssimanti.
Il problema matematico consiste nel determinare x∗ tale che f (x∗ ) = 0. Il problema
perturbato, in aritmetica finita, consiste nel determinare xe = x∗ +h tale che f (x∗ +h) = 0,
dove:
fe = f + ε · g
con ε · g la perturbazione sui dati, mentre h è la perturbazione sui risultati. Allora:
fe (x∗ + h) = 0
f (x∗ + h) + ε · g(x∗ + h) = 0
che, sviluppato con Taylor:
1 2 00
1 2 00
∗
0 ∗
∗
0 ∗
f (x ) +h · f (x ) + h · f (ξ) + ε g(x ) + h · g (x ) + h · g (η) = 0
| {z }
2
2
0
Il numero di condizionamento del problema è:
h ' −ε
g(x∗ )
f 0 (x∗ )
Se f 0 (x∗ ) è molto piccolo, allora il problema è malcondizionato. Se f 0 (x∗ ) non è troppo
piccolo, allora il problema è ben condizionato e fe (x) = 0 ha una radice che non differisce
troppo da x∗ .
Supponiamo ora f (x) continua nell’intervallo [a0 , b0 ] e che f (a0 ) · f (b0 ) < 0. Allora
esiste almeno una soluzione x∗ di f (x) = 0 appartenente all’intervallo. Alcune procedure
per il calcolo delle radici convergono sia a singolarità, sia a radici. Questa situazione deve
essere prevenuta. L’idea di base sta nell’individuare un intervallo contenente una radice
(ad esempio discretizzando l’intervallo iniziale) effettuando poi una serie di iterazioni fino
a convergere ad una soluzione.
Alcuni criteri di arresto possono essere:
1. grandezza delle variazioni delle approssimazioni della radice:
xi+1 − xi < ε1
tolleranza su x
xi+1 − xi xi , xi+1 6= 0
< ε2
min xi , xi+1
20
2 - Radici reali di equazioni e sistemi di equazioni non lineari
=
$
CC
BY:
\
Calcolo numerico L-A
2. grandezza delle variazioni della funzione:
f (xi ) < ε3
tolleranza su f (x)
3. numero massimo di iterazioni desiderate.
2.1.1
Metodo di bisezione
Algoritmo.
1. Si individua un intervallo a0 , b0 contenente la radice e tale che f (a0 ) · f (b0 ) < 0.
2. Si calcola il punto medio dell’intervallo: xm =
3.
a 0 + b0
.
2
ˆ Se f (a0 ) · f (xm ) < 0, allora si prosegue con l’intervallo a0 , xm .
ˆ Se f (b0 ) · f (xm ) < 0, allora si prosegue con l’intervallo xm , b0 .
ˆ Se f (xm ) = 0, allora xm è la radice cercata.
Metodo di bisezione (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx
a = 0.5;
b = 2;
fa = funzione(a);
fb = funzione(b);
tolerance = 0.0000001;
while abs(b-a) >= tolerance
mid = (a+b)/2;
fmid = funzione(mid);
if fa*fmid < 0
b = mid;
fb = fmid;
else
a = mid;
fa = fmid;
endif
end
radice = (b+a)/2
xxx
% PUNTO DA IMPOSTARE
% PUNTO DA IMPOSTARE
% TOLLERANZA ORIZZONTALE DA IMPOSTARE
Figura 2.1: Metodo di bisezione
Dopo n passi si ottiene un intervallo an , bn di ampiezza:
bn − an =
bn−1 − an−1
b0 − a0
= ··· =
2
2n
2.1 - Soluzione di equazioni non lineari
21
=
$
CC
BY:
\
Calcolo numerico L-A
x∗ = xm ± en+1
en+1 < bn − an = b0 − a0
2
2n+1
È sempre convergente, ma la convergenza è lenta.
Osservazioni per migliorare l’algoritmo.
?
ˆ Sostituire f (a) · f (xm ) < 0 con sign (f (a)) = sign (f (xm )).
ˆ Organizzare la formula come una piccola correzione ad una buona approssimazione:
a+b
a + (b − a)
a+b
sostituire
con
. Infatti, in aritmetica dei numeri finiti
può
2
2
2
portare ad un risultato errato.
ˆ Il test di arresto bk − ak < ε potrebbe non essere mai soddisfatto. Sostituire con:
a − b < ε + eps · max |a| , |b|
ˆ Verificare se f (0) = 0 quando a < 0 e b < 0.
Nel caso di un numero dispari di radici, il metodo di bisezione determina un’approssimazione ad una sola di esse.
2.1.2
Metodo di Regula Falsi
Il metodo nasce dalla seguente idea:
ˆ si parte da un’approssimazione iniziale x0 ;
ˆ ad ogni passo si linearizza
il problema localmente, con una retta di pendenza kn
passante per xn , f (xn ) ;
ˆ come nuova approssimazione della radice si prende lo zero dell’equazione lineare:
f (xn ) + kn (x − xn ) = 0
con n = 0, 1, 2, . . .
⇒
xn+1 = xn −
f (xn )
kn
Le direzioni k possono essere
scelte
in vari modi. Il metodo di Regula
la
Falsi approssima
funzione nell’intervallo x0 , xn con la retta per i punti x0 , f (x0 ) e xn , f (xn ) , quindi
mantiene fissa la coordinata su x0 per tutte le rette approssimanti (figura 2.2):
kn =
Le rette si determinano con
yn − y0
xn − x0
x − xn
y − yn
=
e tagliano l’asse x nel punto di ascissa:
x0 − xn
y0 − yn
xn+1 = xn − f (xn ) ·
22
xn − x0
yn − y0
2.1 - Soluzione di equazioni non lineari
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 2.2: Metodo di Regula Falsi
Algoritmo.
1. Si scelgono due punti x1 e x2 tali che in essi la funzione assuma valori discorsi.
2. Si costruisce la retta passante per x1 e x2 :
x2 − x
f (x2 ) − y
=
x2 − x1
f (x2 ) − f (x1 )
3. Si ricava x3 come intersezione della retta con l’asse x:
x3 = x2 −
f (x2 )
(x2 − x1 )
f (x2 ) − f (x1 )
4. Si valuta il segno di f (x3 ). Si sostituisce x3 al punto, tra x1 e x2 , nel quale la
funzione è concorde.
Metodo di Regula Falsi (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx xxx
x1 = 2;
% PUNTO DA IMPOSTARE
x2 = 0.5;
% PUNTO DA IMPOSTARE
tolerance1 = 1;
% TOLLERANZA ORIZZONTALE DA IMPOSTARE
tolerance2 = 0.0000001;
% TOLLERANZA ORIZZONTALE DA IMPOSTARE
while abs(x2-x1) >= tolerance1 || abs(funzione(x3)) >= tolerance2
x3 = x2 - funzione(x2) * (x2-x1)/(funzione(x2)-funzione(x1));
if sign(funzione(x3)) = sign(funzione(x1))
x2 = x3;
else
x1 = x3;
endif
end
radice = x3
2.1.3
Metodo delle secanti
Il metodo delle secanti è simile a quello di Regula Falsi, ma ogni volta si procede con gli
ultimi punti trovati in successione, senza tener conto del valore positivo o negativo della
funzione (figura 2.3).
La funzione è approssimatanell’intervallo xn−1 , xn con la retta passante per i punti
xn−1 , f (xn−1 ) e xn , f (xn ) :
kn =
2.1 - Soluzione di equazioni non lineari
yn − yn−1
xn − xn−1
23
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 2.3: Metodo delle secanti
Le rette tagliano l’asse x nel punto di ascissa:
xn+1 = xn − f (xn ) ·
xn − xn−1
yn − yn−1
Il metodo delle secanti può essere più veloce, ma non converge sempre. Non c’è più la
certezza di avere sempre il punto cercato all’interno dell’intervallo. In particolare, il metodo
è catastrofico se i punti sono vicini ad un punto nel quale la derivata della funzione si
annulla (massimo o minimo relativo).
2.1.4
Metodo di Newton (delle tangenti)
Partendo da una stima iniziale x0 della soluzione, si genera una successione {xn } approssi-
mando ad ogni passo la curva f (x) mediante la retta tangente ad f nel punto xn , f (xn )
(figura 2.4).
kn = f 0 (xn )
Algoritmo.
Si calcola xn+1 come intersezione della tangente con l’asse x:
xx+1 = xn −
f (xn )
f 0 (xn )
Figura 2.4: Metodo di Newton (delle tangenti)
L’idea nasce dalla serie di Taylor, dove si conosce la funzione e la sua derivata prima:
f (xn+1 ) = f (xn ) + (xn+1 − xn ) · f 0 (xn ) + . . .
Poiché cerchiamo f (x) = 0, si pone f (xn+1 ) = 0 riscrivendo:
0 = f (xn ) + (xn+1 − xn ) · f 0 (xn )
24
⇒
xx+1 ' xn −
f (xn )
f 0 (xn )
2.1 - Soluzione di equazioni non lineari
=
$
CC
BY:
\
Calcolo numerico L-A
Come si nota, il metodo è inefficace quando si calcola la derivata su xn quando corrisponde
a un massimo o minimo relativo (punto con derivata nulla).
2.1.5
Ordine di convergenza
{xi } è una successione convergente ad α, inoltre α 6= xi per ogni valore di i.
Definizione 10 (Ordine di convergenza). Una successione {xi } ha ordine di convergenza
p se esiste un numero reale p ≥ 1 tale che:
xi+1 − α
p = γ
lim i→∞ xi − α
Lemma 2.1.1 (Fattore di convergenza). Il fattore di convergenza γ vale:
0 < γ ≤ 1, se p = 1
γ > 0,
se p > 1
Per il metodo di Newton si può scrivere:
en = xn − α
xn ha k decimali corretti
1
en ≤ · 10−k
2
en+1 ' γ
1
· 10−k
2
p
=
γ
· 10−pk
2
xn+1 ha pk decimali corretti
Il numero di decimali corretti tende ad essere moltiplicato per p ad ogni passo solo per
n → ∞. Per valori finiti di n, e soprattutto nei primi passi, l’aumento di cifre corrette
dipende anche dalla costante:
p
γn : en+1 = γn · en con lim γn = γ
n→∞
Nell’ipotesi in cui α sia una radice semplice:
e f 0 (α) 6= 0
f (α) = 0
Ponendo ek = xk − x∗ :
f (x∗ ) = 0 = f (xk ) + (x∗ − xk ) · f 0 (xk ) +
(x∗ − xk )2 00
· f (ξ)
2
e, dividendo per f 0 (xk ), si ottiene una riscrittura del metodo di Newton al II ordine:
(x∗ − xk )2 00
(x∗ − xk )2 00
·
f
(ξ)
· f (ξ)
f (xk )
∗
∗
2
2
+
x
−
x
+
=
x
−
x
+
=0
k
k
f 0 (xk )
f 0 (xk )
f 0 (xk )
ek+1 =
ek 2 f 00 (ξ)
·
2 f 0 (xk )
⇒
ek+1 xk →x∗ 1 f 00 (x∗ )
−→
·
ek 2
2 f 0 (x∗ )
La convergenza è:
lineare se p = 1 e 0 < γ < 1;
sublineare se p = 1 e γ = 1;
superlineare se 1 < p < 2;
quadratica se p = 2;
cubica se p = 3.
2.1 - Soluzione di equazioni non lineari
25
=
$
CC
BY:
\
Calcolo numerico L-A
Convergenza dei metodi numerici per equazioni non lineari
Con α radice semplice:
ˆ il metodo di bisezione ha convergenza lineare;
ˆ il metodo di Regula Falsi ha convergenza superlineare;
ˆ il metodo delle secanti ha convergenza superlineare (p = 1, 618);
ˆ il metodo di Newton ha convergenza quadratica.
Ciò significa che il metodo di Newton è il più efficiente per giungere a soluzione, tuttavia
bisogna tenere conto dell’inefficacia nei pressi dei punti di massimo e minimo relativo.
Teorema 3 (di convergenza globale). Sia f (x) ∈ C 2 a , b , con a , b intervallo chiuso e limitato.
di Newton converge all’unica soluzione α in a , b , per ogni scelta
Il metodo
di x0 entro a , b , se:
1. f (a) · f (b) < 0;
2. f 0 (x) 6= 0
∀x ∈ a , b ;
3. f 00 (x) > 0 oppure f 00 (x) < 0
∀x ∈ a , b ;
f (b) f (a) 4. 0 < b − a, 0 < b − a.
f (a)
f (b)
Esempio (1). La parabola x2 − 4x + 2 valutata in [−1 , 2] ha una radice in x =
0, 585786437. Con differenti valori di tolleranza si sono ottenuti i risultati della tabella 2.1.
Toll.
10−1
10−2
10−3
10−7
Bisezione
Radice (iter.)
0,54688 (8)
2.5(a)
0,58496 (12)
2.5(b)
0,58606 (15)
0,58579 (28)
Regula Falsi
Radice (iter.)
0,60261 (5)
2.5(c)
0,58797 (7)
2.5(d)
0,58607 (9)
0,58579 (18)
Secanti
Radice (iter.)
0,56876 (5)
0,58657 (6)
0,58579 (7)
0,58579 (8)
Tabella 2.1: Confronto tra i risultati del calcolo della radice di una parabola x2 − 4x + 2
Esempio (2). Il logaritmo log x valutato in [0, 5 , 2] ha una radice in x = 1. Con
differenti valori di tolleranza si sono ottenuti i risultati della tabella 2.2.
Toll.
10−1
10−2
10−3
10−7
Bisezione
Radice (iter.)
1,0156 (7)
2.6(a)
1,0010 (11)
2.6(b)
0,99988 (14)
1,0000 (27)
Regula Falsi
Radice (iter.)
1,0674 (2)
1,0052 (4)
2.6(c)
1,0004 (6)
2.6(d)
1,0000 (13)
Secanti
Radice (iter.)
1,0130 (3)
1,0007 (4)
1,0007 (4)
1,0000 (6)
Tabella 2.2: Confronto tra i risultati del calcolo della radice di un logaritmo log x
26
2.1 - Soluzione di equazioni non lineari
=
$
CC
BY:
\
Calcolo numerico L-A
(a) Bisezione (tolleranza 10−1 )
(b) Bisezione (tolleranza 10−2 )
(c) Regula Falsi (tolleranza 10−1 )
(d) Regula Falsi (tolleranza 10−2 )
Figura 2.5: Risultati del metodo di calcolo delle radici di una parabola
(a) Bisezione (tolleranza 10−1 )
(b) Bisezione (tolleranza 10−2 )
(c) Regula Falsi (tolleranza 10−2 )
(d) Regula Falsi (tolleranza 10−3 )
Figura 2.6: Risultati del metodo di calcolo delle radici di una logaritmo
2.1 - Soluzione di equazioni non lineari
27
=
$
CC
BY:
2.2
\
Calcolo numerico L-A
Soluzione di sistemi di equazioni non lineari

f1 (x1 , x2 , . . . , xn ) = 0



f2 (x1 , x2 , . . . , xn ) = 0
...



fm (x1 , x2 , . . . , xn ) = 0
Data F : Rn → Rm , calcolare x ∈ Rn tale che F (x) = 0.
T
x = (x1 , , x2 , . . . , xn )
,
f : Rn → R è continuamente differenziabile se
Il gradiente di f in x è dato da:

F = (f1 , , f2 , . . . , fm )
T
∂f
esiste ed è continua per i = 1, 2, . . . , n.
∂xi
∂f (x)
∂x1
∂f (x)
∂x2
..
.




∇f (x) = 



 ∂f (x)
∂xn










F : Rn → Rm è una funzione a valori vettoriali:




x1
f1 (x)
 x2 
 f2 (x) 




F :  . →

..
 .. 


.
fm (x)
xn
La derivata di F in x (matrice Jacobiana) è la matrice:

∂f1 ∂f1 ...
 ∂x ∂x2 x=xk
1 x=xk

 ∂f ∂f2 2

...

∂x
∂x
1 x=xk
2 x=xk
J (xk ) = 

..
..
..

.

.
.

∂fm  ∂fm ...
∂x1 ∂x2 x=xk
x=xk
∂f1 ∂xn x=xk
∂f2 ∂xn x=xk
..
.
∂fm ∂xn 











x=xk
Il gradiente di F in x è la matrice ∇F (x) = J (x).
2.2.1
Metodo di Newton-Raphson
Algoritmo.
1. Dato x0 ∈ Rn e F , per ogni iterazione di k si valuta J (xk ).
2. Si risolve il sistema lineare J (xk ) · s k = −F (xk ).
3. Si pone xk+1 = xk + sk .
Il metodo ha convergenza locale quadratica se x0 è sufficientemente vicino alla soluzione.
La valutazione dello Jacobiano richiede di conoscere (o poter valutare) n2 derivate
parziali. Esistono alcune varianti dell’algoritmo per migliorarne l’efficienza.
1) Approssimazione con rapporti incrementali:
∂fj fj (xk + ei sij ) − fj (xk )
' (J k )ij =
∂xi x=xk
sij
28
2.2 - Soluzione di sistemi di equazioni non lineari
=
$
CC
BY:
\
Calcolo numerico L-A
ˆ ei : i-esimo vettore della base canonica Rn ;
ˆ sij : incrementi scelti ad ogni passo k.
Il metodo che si ottiene è l’analogo n-dimensionale di quello delle secanti.
2) Metodo della corda: si utilizza lo Jacobiano, oppure una sua approssimazione J (x0 )
o A (x0 ), per tutte le iterazioni k. Si potrebbe poi fattorizzare J (x0 ) = L · U e
utilizzare i medesimi L e U per ogni iterazione.
3) Metodo di Shamanskii: si valuta lo Jacobiano ogni m iterazioni, e poi lo si utilizza
per le m iterazioni successive:
J k+1 = J k
con l = 1, . . . , m
Giunti a xk+m+1 si rivaluta lo Jacobiano.
4) Metodo di tipo secanti: si approssima J (x+ ) con una quantità A+ aggiornata ad
ogni iterazione. L’approssimazione monodimensionale a+ di f 0 (x) è:
a+ =
f (x+ ) − f (xc )
x+ − xc
Analogamente, con l’equazione delle secanti:
A+ (x+ − xc ) = F (x+ ) − F (xc )
che è ottenuta linearizzando il problema nell’intorno di x+ .
5) Aggiornamento di Broyden: A c (matrice n × n) e x c sono le approssimazioni
correnti dello Jacobiano e della soluzione. Ponendo sc = x+ − xc diventa:
A c · s + = −F (xc )
Ac → A+
Per calcolare A+ bisogna considerare che la formula cercata deve soddisfare l’equazione delle secanti, per cui:
F (x+ ) − F (xc ) − A c s c · s Tc
A+ = Ac +
s Tc · s c
Algoritmo.
(con aggiornamento di Broyden)
1. Dato x 0 ∈ Rn e F , per ogni iterazione di k si sceglie una matrice iniziale A 0 (ad
esempio, A 0 = J (x0 ) oppure A 0 = I ).
2. Per k = 0, 1, 2, . . . si risolve il sistema lineare:
A k · s k = −F (xk )
e si pone xk+1 = xk + sk .
3. Si aggiorna:
h
A k+1 = A k +
i
F (k + 1) − F (xk ) − A k s k · s Tk
2.2 - Soluzione di sistemi di equazioni non lineari
s Tk · s k
29
=
$
CC
BY:
2.2.2
\
Calcolo numerico L-A
Minimizzazione di una funzione
Data f : Rn → R, differenziabile continuamente due volte, bisogna trovare x ∈ Rn tale
che in esso f assume valore minimo.
x = (x1 , x2 , . . . , xn )T
Se f ∈ C 1 (Rn ), allora i punti di stazionarietà locale (massimi, minimi, sella) sono soluzione
del seguente sistema lineare:
∇f (x) = 0
quindi la determinazione può avvenire risolvendo il sistema. Per verificare se un punto è
un massimo, un minimo oppure un punto di sella, in genere bisogna esaminare la matrice
hessiana H (x) = ∇2 f (x).
∂ 2 f (x)
H(x) ij =
,
∂xi · ∂xj
i, j = 1, . . . , n
Si può applicare il metodo di Newton anche per risolvere ∇f (x) = 0.
Algoritmo.
1. Dato x0 ∈ Rn e f , per ogni iterazione di k si valuta ∇2 f (xk ).
2. Si risolve il sistema lineare:
∇2 f (xk ) · sk = −∇f (xk )
3. Si pone xk+1 = xk + sk . sk definisce una direzione di discesa da xk a xk+1 .
30
2.2 - Soluzione di sistemi di equazioni non lineari
CAPITOLO
3
Sistemi lineari
Esiste un vettore x che verifichi tutte le equazioni lineari del seguente sistema, simultaneamente?


 a11 x1 + a12 x2 + a13 x3 + · · · + a1n xn = b1



 a21 x1 + a22 x2 + a23 x3 + · · · + a2n xn = b2
a31 x1 + a32 x2 + a33 x3 + · · · + a3n xn = b3

..


.



am1 x1 + am2 x2 + am3 x3 + · · · + amn xn = bm
Il sistema è compatibile quando ammette almeno una soluzione, viceversa è incompatibile.
Avendo, come sopra, m equazioni e n incognite si classifica:
ˆ sistema normale quando m = n;
ˆ sistema indeterminato quando m < n;
ˆ sistema sovradeterminato quando m > n.
Nei sistemi indeterminati non ci sono sufficienti informazioni per determinare un unico
valore per tutte le incognite: il rango della matrice dei coefficienti è minore del numero di
incognite.
Nei sistemi sovradeterminati ci sono più equazioni che incognite: di solito si usa il
sistema dei minimi quadrati per la soluzione.
In generale si applica il teorema di Rouché-Capelli.
Teorema 4 (di Rouché-Capelli). Il sistema lineare A x = b ammette soluzione se e
solo se la matrice dei coefficienti A e la matrice completa [A b ] hanno lo stesso rango:
r = Rank (A ) = Rank ([A b ])
Se r = n, la soluzione è unica. Se r < n, il numero di soluzioni è infinito: r variabili
incognite possono essere espresse in termini di n − r variabili con valori arbitrari. Se
Rank (A ) 6= Rank ([A b ]), allora il sistema non ammette soluzioni.
Teorema 5. Il sistema lineare normale (cioè con m = n) A x = b ammette una sola
soluzione se e solo se A è non singolare.
Corollario 6. Se il sistema è omogeneo (cioè b = 0 ) e A è non singolare, allora esiste
solo la soluzione nulla x = 0 .
La matrice A è non singolare se soddisfa una delle seguenti condizioni:
1. det (A ) 6= 0;
3 - Sistemi lineari
31
=
$
CC
BY:
\
Calcolo numerico L-A
2. esiste la matrice inversa A −1 di A ;
3. Rank (A ) = n.
Se A è non singolare allora si può risolvere1 :
A −1 A x = A −1 b
| {z }
⇒
x = A −1 b
I
3.1
Condizionamento di un sistema lineare
∆A è la matrice delle perturbazioni. ∆b e ∆x sono i vettori delle perturbazioni. Sono
possibili le seguenti combinazioni:
ˆ A (x + ∆x ) = b + ∆b (perturbazione del termine noto);
ˆ (A + ∆A ) (x + ∆x ) = b (perturbazione della matrice dei coefficienti);
ˆ (A + ∆A ) (x + ∆x ) = b + ∆b .
3.1.1
Perturbazione del termine noto
Dalla forma perturbata si sottrae la forma standard del sistema, ottenendo:
A ∆x = ∆b
⇒
∆x = A −1 ∆b
∆x = A −1 ∆b ≤ A −1 · ∆b 1
1
b = A x ≤ A · x ≤ A · ⇒
x b Combinando risulta:
∆x x | {z }
≤
err. rel. nella soluzione
−1 A · A |
{z
}
·
indice di condizionamento
∆b b | {z }
err. rel. nei dati
Definizione 11 (Indice di condizionamento). L’indice (o numero) di condizionamento
(K(A ), µ(A ) oppure cond (A )) è il fattore di amplificazione delle perturbazioni relative
introdotte in b .
3.1.2
Perturbazione della matrice dei coefficienti
A è non singolare, quindi anche A + ∆A è non singolare.
A x = (A + ∆A ) (x + ∆x ) = b
0 = A ∆x + ∆A (x + ∆x )
⇒ ∆x = −A −1 ∆A (x + ∆x )
⇒ ∆x = A −1 ∆A (x + ∆x ) ≤
∆x −1 ∆A ⇒ x + ∆x ≤ | A {z· A } · A −1 A · ∆A · x + ∆x K(A )
Se K(A ) è piccolo (ordine np con p = 0, 1, 2, 3), allora il problema (cioè la matrice) è ben
condizionata.
Se K(A ) è grande (ordine 10n ), allora il problema è mal condizionato2
1 Il
metodo della matrice inversa è meno efficiente e meno accurato.
esempio, la matrice di Hilbert.
2 Ad
32
3.1 - Condizionamento di un sistema lineare
3.1.3
=
$
CC
BY:
\
Calcolo numerico L-A
Proprietà dell’indice di condizionamento
Definizione 12 (Indice di condizionamento). L’indice di condizionamento è una misura
di quanto una matrice è vicina ad essere singolare. K(A ) grande significa che A è quasi
singolare.
Proprietà 3.1.1. K(A ) ≥ 1.
Dimostrazione. A · A −1 ≥ A A −1 = I = 1.
Proprietà 3.1.2. K2 (A ) = 1 ⇔ A = αQ . La matrice Q è unitaria e ortogonale
(Q T = Q −1 ).
q
p
Dimostrazione. Q 2 = ρ(Q T · Q ) = ρ(I ) = 1.
λM AX −1 .
Proprietà 3.1.3. Se A è simmetrica, allora K2 (A ) = A 2 · A
= 2
λmin q
p
p
Dimostrazione. A 2 =
ρ(A T · A ) =
ρ(A 2 ) =
ρ2 (A ) = ρ(A ) =
λM AX .
−1 A = 1 .
2
λmin Nota 3.1.1. Se A è hermetiana/simmetrica e definita positiva:
‚ −1 ‚
‚ ‚
‚A ‚ = λmin
‚A ‚ = λM AX
e
2
2
Nota 3.1.2. La matrice A è tanto meglio condizionata quanto più vicini sono tra loro i suoi autovalori.
Esempio: matrice di Hilbert. La matrice di Hilbert, che è una tipica matrice mal
condizionata, risulta invece ben condizionata per il calcolo degli autovalori, essendo simmetrica.

1 1 1 1 
1
2 3 4 5 

 1 1 1 1 1 


 2 3 4 5 6 


1
1
1
1
1
1
(n)

aij =
A (5) = 


i+j−1
 31 41 51 16 71 




 4 5 6 7 8 
1 1 1 1 1
5 6 7 8 9


25
−300
1 050
−1 400
630
4 800
−18 900
26 880 −12 600 
−1 
 −300

(5)

79 380 −117 600
56 700 
A
=  1 050 −18 900

 −1 400
26 880 −117 600
179 200 −88 200 
630 −12 600
56 700
−88 200
44 100
−1 La matrice di Hilbert ha K(A ) = A · A ' e3,5n che conferma il suo mal condizionamento.
Esempio: sistema mal condizionato.
1, 000 x + 2, 000 y = 3, 000
x=1
⇒
0, 499 x + 1, 001 y = 1, 5
y=1
Dopo aver perturbato i coefficienti sulla terza e quarta cifra decimale si ottiene:
1, 000 x + 2, 000 y = 3, 000
x=3
⇒
0, 500 x + 1, 002 y = 1, 5
y=0
3.1 - Condizionamento di un sistema lineare
33
=
$
CC
BY:
\
Calcolo numerico L-A
cioè perturbando poco i dati del problema è stato modificato completamente il risultato.
1, 000 2, 000
1
A =
x =
K(A ) = 2 083
0, 499 1, 001
1
1, 000 2, 000
3
AA =
xx =
K(A ) = 3 127
0, 500 1, 002
0
Gli errori relativi sui dati e sulle soluzioni sono:
AA − A ' 5, 7e−4
,
A xx − x ' 1, 58
x Esempio: sistema ben condizionato.
2, 000 x − 1, 000 y = −1, 000
x=1
⇒
−1, 000 x + 2, 000 y = 5, 000
y=3
Dopo aver perturbato i coefficienti sulla terza e quarta cifra decimale si ottiene:
2, 000 x − 1, 000 y = −1, 000
x = 0, 9993
⇒
−1, 001 x + 2, 001 y = 5, 000
y = 2, 9987
quindi la perturbazione sui dati è accettabile.
2, 000 −1, 000
1
x =
A =
−1, 000 2, 000
3
2, 000 −1, 000
0, 9993
AA =
xx =
−1, 001 2, 001
2, 9987
Gli errori relativi sui dati e sulle soluzioni sono:
AA − A ' 4, 7e−4
,
A 3.2
K(A ) = 3
K(A ) = 3, 001
xx − x ' 4, 7e−4
x Metodi numerici per risolvere sistemi lineari
Metodi diretti: l’esatta soluzione è costruita in un numero finito di passi, in assenza di
errori di arrotondamento nei dati e nei calcoli.
Metodi iterativi: la soluzione è ottenuta come limite di una successione di soluzioni
di problemi lineari più semplici. La matrice A non viene modificata durante il
calcolo. Anche in assenza di errori di arrotondamento, bisogna comunque troncare
il procedimento risolutivo, commettendo un errore.
3.2.1
Metodo di eliminazione di Gauss
Se fosse possibile scomporre A (non singolare) in A = L U , dove L è una matrice
triangolare inferiore e U triangolare superiore, allora si potrebbe scrivere:
Ly = b
LUx =b
⇒
Ux =y
|{z}
y
Metodo di sostituzione in avanti.

a11 x1




a

21 x1 + a22 x2



 ..
.
 ai1 x1 + ai2 x2 + · · · + aii xi



 ..


.


an1 x1 + an2 x2 + · · · + · · · + ann xn
Il costo computazione è circa
34
Il sistema triangolare inferiore si risolve:
=
=
=
=
b1
b2
bi
bn
⇒

b1


x1 =


a

11


bk −





x =

 k
k−1
X
j=1
akk
akj xj

 k = 2, . . . , n
aii 6= 0

i = 1, . . . , n
n2
2 .
3.2 - Metodi numerici per risolvere sistemi lineari
=
$
CC
BY:
\
Calcolo numerico L-A
Metodo di sostituzione all’indietro. Il sistema triangolare superiore si risolve:

bn


xn =


a

nn

n

X
bk −
akj xj 

 k = n − 1, . . . , 1

j=k+1


aii 6= 0
x
=


 k

akk
i = 1, . . . , n
Il costo computazione è circa
Nella fattorizzazione LU :
A3
A3
A3
n2
2 .
= L 2A 2
= L 2L 1A 1
= L 2L 1A
A
−1 −1
A3
= L1
L
−12
= L 2L 1
·A3
= L ·U
1. A 3 è triangolare superiore con elementi della diagonale non nulli.
2. L i è triangolare inferiore e non singolare, per cui è necessario e sufficiente che gli
elementi della diagonale non siano nulli.
3. L i −1 è triangolare inferiore.

1
0
0
...
 m21
1
0
...


1
...
L =  m31 m32
 ..
..
..
..
 .
.
.
.
mn1 mn2 mn3 . . .
0
0
0
..
.











U =



1
a11
0
0
..
.
a12
(2)
a22
0
..
.
a13
(2)
a23
(3)
a33
..
.
...
...
...
..
.
a1n
(2)
a2n
(3)
a3n
..
.
0
0
0
...
ann
(n)








Gli elementi di A n sulla diagonale principale si chiamano perni e devono essere diversi da
zero affinché si abbia fattorizzazione LU .
Nella fattorizzazione:
−1 −1
b = L1
b 3 = L 2b 2
L
b3
−12
b 3 = L 2L 1b 1
= L 2L 1
·b3
b 3 = L 2L 1b
= L ·y
Nel metodo di eliminazione di Gauss, y si ottiene applicando successivamente le trasformazioni elementari di Gauss L i al vettore b ; allo stesso modo si ottiene U applicando le
stesse trasformazioni alla matrice A .
Algoritmo.
h
i
1) L 1 A |b
h
i
2) L 2 L 1 A |b
..
.
h
i h
i h
i
n − 1) L n−1 L n−2 . . . L 2 L 1 A |b = A n |b n = U |y
Il metodo di Gauss fornisce la fattorizzazione LU e risolve L y = b . La soluzione x si
ottiene poi risolvendo con sostituzione all’indietro il sistema triangolare U x = y :
h
i
h i−1 h i−1 h i−1
h
i−1 h
i
A |b
= L1
· L2
· L3
· . . . · L n−1
· A n |b n
h
i−1 h
i
= L n−1 · L n−2 · . . . · L 1
· An | bn
|{z}
|
{z
} |{z}
y
U
L
h
= L U |y
⇒
i
A = LU
⇒
3.2 - Metodi numerici per risolvere sistemi lineari
Ly = b
35
=
$
CC
BY:
\
Calcolo numerico L-A
Costo computazionale.
Per la fattorizzazione servono:
ˆ (n − 1) + (n − 2) + · · · + 1 =
n(n − 1)
divisioni per ottenere L ;
2
2
(n − 1) · n(2n − 1)
moltiplicazioni per
ˆ (n − 1)2 + (n − 2)2 + · · · + n − (n − 1) =
6
ottenere U ,
1 3
n operazioni per la fattorizzazione.
3
1
Per la risoluzione del sistema lineare triangolare servono n2 operazioni, quindi com2
3
n
n2
plessivamente il costo è O
+
.
3
2
quindi complessivamente servono circa
Esistenza della fattorizzazione LU
Ci si chiede se esista sempre una fattorizzazione A = L U quando det (A ) 6= 0. La
risposta è no.
Esempio.
Non esistono matrici L e U tali che A = L U per queste due matrici:
A =
0
1
1
0
A −1 =
0
1
1
0
(k)
Se e solo se i perni akk (con k = 1, 2, . . . , n) sono diversi da zero3 , allora esiste una
sola fattorizzazione LU di A . Si vuole garantire che il metodo di Gauss funzioni sempre
quando A è non singolare, e quindi ammette sicuramente soluzione.
Esempio.
Il sistema:
3y
x +2y
=
=
5
0
⇒
A =
0
1
3
2
non è risolvibile col metodo di Gauss, però ha soluzione. Permutando le equazioni si ha
un sistema equivalente:
x
+2y
3y
=
=
0
5
⇒
A =
1
0
2
3
⇒
b =
0
5
Il sistema è ora risolvibile col metodo di Gauss, perché a11 6= 0.
La soluzione, quindi, è la permutazione di posizione tra equazioni (pivoting). Una
strategia per avere un algoritmo stabile è utilizzare il pivoting parziale:
1. scegliere r uguale al più piccolo intero maggiore o uguale a k, tale che:
k ark = max akik k≤i≤n
2. se r 6= k, scambiare l’equazione k-esima con la r-esima.
Si possono utilizzare le matrici di permutazione, che differiscono dalla matrice identità
per lo scambio di righe: una pre-moltiplicazione provoca scambio di righe, mentre una
post-moltiplicazione provoca uno scambio di colonne.
3 Cioè
36
i minori principali di ordine k sono diversi da zero.
3.2 - Metodi numerici per risolvere sistemi lineari
=
$
CC
BY:
\
Calcolo numerico L-A
Esempio. Scambio delle righe

 
a11
0 0 1 0
 0 1 0 0   a21

 
 1 0 0 0  ·  a31
a41
0 0 0 1
1 e 3:
a12
a22
a32
a42
a13
a23
a33
a43
 
a31
a14
 a21
a24 
=
a34   a11
a41
a44
a32
a22
a12
a42
a33
a23
a13
a43

a34
b
a24 

a14  b
a44
Teorema 7. Se una matrice A n × n è non singolare, allora esiste una matrice di
permutazione P n × n non singolare per cui P A = L U .
Infatti, se A è non singolare, allora esiste per ogni ordine almeno una sottomatrice
non singolare: applicando su A opportuni scambi di righe e/o colonne si può fare in modo
che A abbia le sottomatrici principali non singolari. Concludendo si può generalizzare il
metodo di Gauss con pivoting:
Ax = b
⇒
P Ax = P b
LUx =Pb
|{z}
y
Ly = P b
Ux =y
⇒
y = L −1 P b
U = L −1 P A
Calcolo della matrice inversa e del determinante
Il problema di determinare la matrice inversa A −1 di una matrice A quadrata non
singolare si può ricondurre al problema di risolvere n sistemi normali.
A · A −1 = I
A −1 = (x1 , x2 , x3 , . . . , xn )
h
iT
I = (e1 , e2 , e3 , . . . , en )
con ej = 0 . . . 0 |{z}
1 0...0
j
Bisogna risolvere A x j = e j con j = 1, . . . , n. La matrice A è la medesima, quindi
bisogna fattorizzare A = L U una sola volta. Il costo computazione è n3 .
Per il calcolo del determinante:
det (P ) det (A ) = det (L ) det (U )
| {z }
| {z } |Q {z }
1
(−1)s
⇒
det (A ) = (−1)s ·
n
i=1
n
Y
uii
uii
i=1
dove s è il numero complessivo di scambi effettuati dalla matrice di permutazione. Il rango
è il numero r degli elementi non nulli sulla diagonale di U .
3.2.2
Fattorizzazione di Cholesky per sistemi lineari
Teorema 8. Se A è una matrice simmetrica definita positiva, allora esiste ed è unica
una matrice R triangolare inferiore con elementi positivi sulla diagonale principale, tale
che:
A = RRT
Il calcolo della soluzione del sistema lineare A x = b allora avviene come:
Ry = b
R RTx = b
⇐⇒
RTx = y
| {z }
y
3.2 - Metodi numerici per risolvere sistemi lineari
37
=
$
CC
BY:
3.2.3
\
Calcolo numerico L-A
Fattorizzazione di matrici e sistemi lineari
1. Fattorizzazione LU con algoritmo di Gauss.
2. Fattorizzazione RRT con algoritmo di Cholesky.
3. Fattorizzazione QR con algoritmo di Householder.
Per tutti i metodi vale:
ˆ L , R : matrice triangolare inferiore;
ˆ U : matrice triangolare superiore;
ˆ Q : matrice ortogonale (Q Q T = I ).
Definizione 13 (Matrice sparsa). Una matrice è sparsa quando il numero degli elementi
che possono essere diversi da zero è di ordine O(n), quindi una minoranza.
Con i metodi di fattorizzazione si riduce il fill-in, cioè il numero di valori che da zero assumono altro valore con l’algoritmo di calcolo, appesantendo i requisiti richiesti e l’onerosità
di calcolo.
38
3.2 - Metodi numerici per risolvere sistemi lineari
CAPITOLO
4
Interpolazione
Solitamente si vuole approssimare:
ˆ una funzione f (x) non nota, ma della quale si conoscono alcuni valori yi su un insieme
di punti xi :
φ(xi ) = yi
ˆ una funzione nota in forma analitica, ma complicata:
φ(xi ) = f (xi )
Nel problema di interpolazione bisogna costruire una funzione che passi per tutti i punti
assegnati.
Definizione 14 (Problema di interpolazione). Dati, in alternativa:
ˆ i punti (xi , yi ),
i = 0, . . . , n
con
xi ∈ R m ,
xi 6= xj
m≥1
;
i 6= j
ˆ una famiglia di funzioni φ(x ; a0 , . . . , an ) = y (modello matematico),
si cercano i valori a0 , . . . , an (parametri o gradi di libertà) tali che:
φ(xi ; a0 , . . . , an ) = yi
,
i = 0, . . . , n
L’interpolazione può essere:
lineare: φ(x ; a0 , . . . , an ) = a0 φ0 (x) + a1 φ1 (x) + · · · + an φn (x);
polinomiale: φ(x ; a0 , . . . , an ) = a0 + a1 x + a2 x2 + · · · + an xn ;
trigonometrica: φ(x ; a0 , . . . , an ) = a0 +a1 exi +a2 e2xi +· · ·+an enxi , con i =
√
−1;
polinomiale a tratti (spline);
razionale: φ(x ; a0 , . . . , an , b0 , . . . , bm ) =
4.1
a0 + a1 x + · · · + an xn
.
b0 + b1 x + · · · + bm xm
Problema di interpolazione
L’interpolante deve verificare le condizioni:
ˆ φ(xi ; a0 , . . . , an ) = yi
,
i = 0, . . . , n;
ˆ a0 φ0 (xi ) + a1 φ1 (xi ) + · · · + an φn (xi ) = yi
4 - Interpolazione
,
i = 0, . . . , n;
39
=
$
CC
BY:
ˆ
n
X
aj φj (xi ) = yi
\
Calcolo numerico L-A
,
i = 0, . . . , n.
j=0
Ciò significa, unificando in un’unica espressione, che bisogna verificare:


 
 
y0
φ0 (x0 ) φ1 (x0 ) . . . φn (x0 )
a0
 φ0 (x1 ) φ1 (x1 ) . . . φn (x1 )   a1   y1 


 
 

 ·  ..  =  .. 
..
..
..
..

  .   . 
.
.
.
.
yn
an
φ0 (xn ) φ1 (xn ) . . . φn (xn )
cioè A · a = b . Il vettore a contiene parametri incogniti dell’interpolante.
4.2
Interpolazione polinomiale
Si può risolvere il problema interpolando mediante un polinomio.
Teorema 9. Dati n + 1 punti di collocazione (xi , yi ), con i = 0, . . . , n e con xi =
6 xj
quando i 6= j, esiste ed è unico il polinomio p ∈ P n che verifica le condizioni p(xi ) = yi ,
con i = 0, . . . , n.
Dimostrazione. Le condizioni di interpolazione p(xi ) =
costituiscono un sistema lineare di ordine n + 1:

 
 
a0
x0 0 x0 1 . . . x0 n
 x1 0 x1 1 . . . x1 n   a1  

 
 
 ..
..
..  ·  ..  = 
..

 .

.
.
.
.  
xn 0
xn 1
...
xn n
an
yi , con i = 0, . . . , n
y0
y1
..
.





yn
che si scrive nella forma V a = y , dove:
V = vij = xi j
matrice di Vandermonde
Poiché det (V ) =
n
Y
(xi − xj ) e i punti xi sono distinti, allora V è non
i,j=0 , i>j
singolare. Allora, il sistema ammette soluzione e questa è unica.
L’interpolazione polinomiale nella base delle potenze:
pn (x) = a0 + a1 x + a2 x2 + · · · + an xn
ha la matrice A di Vandermonde mal condizionata, specialmente per polinomi di grado
elevato. Il costo è O(n3 ), quindi si fa un cambio di base per Pn . Un cambio di base dà lo
stesso polinomio interpolante (di grado n) per uno stesso insieme di dati.
Due metodi per calcolare i coefficienti sono:
1. il metodo di interpolazione di Lagrange: semplice ma oneroso;
2. il metodo di interpolazione di Newton: richiede differenze divise.
I due metodi producono due polinomi equivalenti: la differenza consiste nell’approccio per
ottenere i coefficienti.
4.2.1
Interpolazione di Lagrange
n
Si introduce in Pn un’opportuna base di funzioni: Li (x) i=0 . Ogni funzione risolve un
problema semplice di interpolazione:
0, se j 6= i
Li (xj ) =
1, se j = i
40
4.2 - Interpolazione polinomiale
=
$
CC
BY:
\
Calcolo numerico L-A
Il problema iniziale è risolto da:
= L0 (x) · y0 + L1 (x) · y1 + · · · + Ln (x) · yn
n
X
=
Li (x) · yi
Pn (x)
i=0
n
Bisogna determinare le funzioni Li (x) i=0 . Al massimo, ognuna avrà grado n e n zeri
distinti, quindi:
= k(x − x1 )(x − x2 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn )
n
Y
= k·
(x − xj )
Li (x)
j=0 , j6=i
1
Valutiamo k considerando Li (xi ) = 1: k =
n
Y
.
(xi − xj )
j=0 , j6=i
n
Y
Allora: Li (x) =
(x − xj )
j=0 , j6=i
n
Y
,
i = 0, . . . , n.
(xi − xj )
j=0 , j6=i
Quando si cambia il numero di punti da interpolare bisogna ricalcolare tutti i Li (x). Il
problema, con un numero maggiore di punti, crea delle oscillazioni nel grafico.
4.2.2
Interpolazione di Newton
Si vuole costruire facilmente il polinomio di interpolazione di n + 1 punti a partire dal
polinomio di interpolazione di un sottinsieme di n punti.
Definizione 15 (Differenza divisa). Assegnati i valori di f (x) nei punti x0 , x1 , . . . , xm
(distinti) dell’asse reale, si definisce la differenza divisa di f (x) rispetto agli argomenti
x0 , x1 :
F [x0 , x1 ] =
f (x1 ) − f (x0 )
f (x0 ) − f (x1 )
=
= F [x1 , x0 ]
x0 − x1
x1 − x0
(differenza divisa di ordine 1)
Aumentando l’ordine:
F [x0 , x1 , x2 ] =
F [x0 , . . . , xm ] =
F [x0 , x1 ] − F [x1 , x2 ]
x0 − x2
(differenza divisa di ordine 2)
F [x0 , . . . , xm−1 ] − F [x1 , . . . , xm−1 ]
x0 − xm
(differenza divisa di ordine m)
La differenza divisa è un operatore lineare, simmetrico rispetto ai suoi argomenti.
Teorema 10. Sia f ∈ C n [a, b] e siano distinti in [a, b] i punti x0 , . . . , xm . Allora esiste
xi ∈ [a, b] tale che:
f n (ξ)
F [x0 , . . . , xm ] =
n!
Teorema 11. Se pn−1 ∈ P n−1 è il polinomio di interpolazione dei punti xi , f (xi ) , con
i = 0, . . . , n − 1, allora la funzione:
pn (x) = pn−1 (x) +
n−1
Y
(x − xj ) · F [x0 , . . . , xn ]
j=0
è un polinomio in P n e soddisfa pn (xi ) = f (xi ) per i = 0, . . . , n.
4.2 - Interpolazione polinomiale
41
=
$
CC
BY:
\
Calcolo numerico L-A
Iterando la formula si ottiene la forma di Newton:
pn (x)
=
F [x0 ] + (x − x0 ) · F [x0 , x1 ] + · · · +
n−1
Y
(x − xj ) · F [x0 , . . . , xn ]
j=0
=
d0 + (x − x0 ) · d1 + · · · +
n−1
Y
(x − xj ) · dn
j=0
4.2.3
Valutazione di un polinomio con metodo di Horner
Il metodo di Horner permette di valutare un polinomio svolgendo N addizioni e N moltiN +1
plicazioni (invece che N e
del metodo tradizionale), quindi è molto utile per l’uso
2
in algoritmi iterativi.
Un polinomio può essere scritto come:
n
h
io
p(x) = d0 + (x − x0 ) d1 + (x − x1 ) d2 + · · · + (x − xn−2 dn−1 + (x − xn−1 )dn . . .
Allora, ricorsivamente:
p0 = 1
pk+1 = pk · x + dk+1
con k = 0, . . . , n − 1
Quindi, a partire da x (punto di valutazione) e dal vettore d dei coefficienti, si ottiene il
valore p del polinomio nel punto x. Il metodo va associato all’interpolazione di Newton
quando si ricerca il valore della funzione interpolata in un punto.
4.3
Errori di interpolazione. Fenomeno di Runge
In generale, non è vero che aumentando il numero di punti di interpolazione e il grado k
del polinomio la successione pk dei polinomi converga a f (x), per nodi xi equidistanti.
Consideriamo come esempio la funzione di Runge:
f (x) =
1
1 + x2
Scegliamo punti di interpolazione equidistanti su [a, b] = [−5 , +5]. L’errore aumenta col
grado all’estremità dell’intervallo (figura 4.1).
Figura 4.1: Funzione di Runge ottenuta interpolando con un polinomio di grado 9 (a sinistra) e di grado
15 (a destra)
L’errore che si compie è:
Q
E(x) = f (x) − p(x) =
42
nx
· f (n+1) (ξ)
(n + 1)!
4.3 - Errori di interpolazione. Fenomeno di Runge
=
$
CC
BY:
con:
Q
nx=
n
Y
\
Calcolo numerico L-A
x − xi .
i=0
L’errore di interpolazione dipende da:
ˆ regolarità della funzione;
ˆ disposizione dei punti di interpolazione sull’asse delle ascisse.
Bisogna determinare i punti xi in modo che, per qualunque x, risulti minima la produttoria.
Ampiamente utilizzati al proposito sono i polinomi di Chebyshev la cui formula ricorre a
tre termini:

 T0 (x) = 1
T1 (x) = x

Tn+1 (x) = 2x · Tn (x) − Tn−1 (x)
w(x) = √
1
1 − x2
,
[a, b] = [−1 , +1]
I nodi sono gli zeri x0 , . . . , xn ∈ R del polinomio di grado n + 1 definito in [−1 , +1]:
2(n − i) + 1 π
xi = cos
con i = 0, . . . , n
2(n + 1)
4.4
Interpolazione polinomiale a tratti
I polinomi, pur essendo funzioni regolari facilmente calcolabili con derivate ancora polinomiali, hanno lo svantaggio di oscillare all’aumentare del grado (solitamente sopra al
5◦ grado). Una soluzione è suddividere l’intervallo di interpolazione in tratti più piccoli,
lavorando su questi con polinomi di grado relativamente basso.
Si assegnano m + 1 osservazioni yi con i = 0, . . . , m nei nodi:
a = x0 < x 1 < x 2 . . . < x m = b
Un polinomio interpolante a tratti consiste di m polinomi di grado n m:
p0 (x) , p1 (x) , . . . , pm−1 (x)
con pk (x) definito su [xk , xk+1 ] che soddisfa:
pk (xk ) = yk
pk (xk+1 ) = yk+1
con k = 0, . . . , m − 1
Cosı̀ facendo, però, si è persa un’importante proprietà: i polinomi a tratti non sono necessariamente funzioni regolari (C 1 ). Ad esempio, se si usa n = 1, p(x) è continua ma non
derivabile: p0 (x) non è continua e ha salti nei nodi poiché avrà un valore costante dk su
ogni sottointervallo.
4.4.1
Funzione spline
Definizione 16 (Spline). Una funzione spline s(x) è un polinomio a tratti con condizioni
di massima regolarità nei nodi. Una spline di grado n su un intervallo [a, b] è una funzione
s tale che:

 x ∈ Ij
j = 0, . . . , k ;
1. s(x) = sj (x), con

sj (x) ∈ Pn
2. ha continuità sui nodi:
h
i
h
i
D(l) sj−1 (xj ) = D(l) sj (xj ) ,
4.4 - Interpolazione polinomiale a tratti
con
l = 0, . . . , n − 1
s(x) ∈ C n−1
43
=
$
CC
BY:
\
Calcolo numerico L-A
Sono assegnate m + 1 osservazioni yk con k = 0, . . . , m nei punti distinti xk in [a, b].
Una spline interpolante a tratti consiste in m polinomi pk (x), con k = 0, . . . , m − 1, di
grado n m e definiti su [xk , xk+1 ]:
1. pk−1 (xi ) = pk (xi ) = yi , con k = 1, . . . , m − 1;
l = 0, . . . , N
2. pk−1 (l) (xk ) = pk (l) (xk ), con
k = 1, . . . , m − 1
L’interpolante a tratti è di classe C N , funzione continua fino alla derivata di ordine N ≤
n − 1.
Esempio: interpolante spline cubica. È definita da due polinomi cubici su intervalli
[x1 , x2 ] e [x2 , x3 ] che si raccordano C 2 .
p1 = a1 + a2 x + a3 x2 + a4 x3
p2 = b1 + b2 x + b3 x2 + b4 x3
Bisogna risolvere un sistema 8 × 8 nelle incognite ai e bi (i = 1, 2, 3, 4).

a1 + a2 x1 + a3 x1 2 + a4 x1 3 = y1




 a1 + a2 x2 + a3 x2 2 + a4 x2 3 = y2



 b1 + b2 x2 + b3 x2 2 + b4 x2 3 = y2
b1 + b2 x3 + b3 x3 2 + b4 x3 3 = y3


a2 + 2a3 x2 + 3a4 x2 2 = b2 + 2b3 x2 + 3b4 x2 2




2a3 + 6a4 x2 = 2b3 + 6b4 x2



2a3 + 6a4 x1 = 2b3 + 6b4 x3
=0
(Le derivate seconde denono essere nulle agli estremi.)
44
4.4 - Interpolazione polinomiale a tratti
CAPITOLO
5
Decomposizione ai valori singolari (SVD)
La SVD è una fattorizzazione, basata sull’uso di autovalori e autovettori, utilizzata per
produrre un’approssimazione di una matrice con minor rango. Una matrice A può essere
fattorizzata (figura 5.1) come:
A = U ΣV T
Figura 5.1: Rappresentazione grafica della tecnica SVD
ˆ U è una matrice unitaria m × m, le cui colonne1 rappresentano gli autovettori di
AAT;
ˆ Σ è una matrice diagonale m × n, i cui elementi σi della diagonale sono i valori
singolari di A e stanno tra loro in relazione:
σ1 ≥ σ2 ≥ · · · ≥ σp ≥ 0
,
p = min(m , n)
Inoltre, σi 2 sono gli autovalori di A T A ;
ˆ V T è una matrice unitaria, trasposta coniugata n × n, le cui colonne2 rappresentano
gli autovettori di A T A .
Teorema 12. Se A è hermetiana definita positiva, allora i valori singolari sono anche
gli autovalori di A e gli autovettori sono le colonne di V .
Nota 5.0.1. Quando si scelgono le dimensioni delle matrici per la SVD è conveniente tenere a mente quando illustrato in figure 5.2(a) e 5.2(b), relativamente all’occupazione di memoria e al costo computazionale
degli algoritmi che operano sulle matrici.
1 Le
2 Le
colonne di U sono i vettori u i (vettori singolari sinistri).
righe di V T (cioè le colonne di V ) sono i vettori v i (vettori singolari destri).
5 - Decomposizione ai valori singolari (SVD)
45
=
$
CC
BY:
\
Calcolo numerico L-A
(a) A m×n = U m×m Σ m×n V
T
n×n
(b) A m×n = U m×n Σ n×n V
T
n×n
Figura 5.2: Economia computazionale nell’esecuzione della tecnica SVD
5.1
Approssimazione di matrice con minor rango
Si approssima una matrice con una somma di matrici più semplici.
A = E 1 + E 2 + · · · + E p,
E i = σi ui vi T
p = min(m , n)
matrice
a rango 1
E i = σ1
σ1 ≥ σ2 ≥ · · · ≥ σr > σr+1 = · · · = σp = 0
,
r<p
Allora r è il rango di A e si può scrivere:
A =
r
X
σi ui v i T
i=1
dove ui e vi sono le colonne delle matrici U e V .
Teorema 13. È data la SVD di una matrice A con rango r. Fissato un intero positivo
k < r si definisce:
k
X
Ak =
σi ui vi T
i=1
che è un’approssimazione di A di rango k.
L’errore che si commette nel considerare A k anziché A è:
min = A − B = A − A k = σk+1
B∈β
2
2
n
o
β = B ∈ Rm×n : Rank (B) = k
Il più piccolo valore singolare non nullo di A è la distanza di A dall’insieme di tutte le
matrici a rango deficiente. Poiché σi è in ordine decrescente, l’approssimazione migliora
quando k aumenta.
5.2
Risoluzione di sistemi lineari malcondizionati
Per risolvere A x = y , con A mal condizionata:
x = A −1 y
= V Σ −1 U T y
D
E
X ui T , y
=
· vi
σi
i
Il rumore nei dati (vettore termine noto) è y = ŷ + δy .
D
E
D
E
r
r
X
ui T , ŷ
ui T , δy
X
x = A −1 ŷ + δy =
· vi +
· vi
σi
σi
i=1
i=1
46
5.1 - Approssimazione di matrice con minor rango
=
$
CC
BY:
\
Calcolo numerico L-A
Bisogna eliminare l’effetto dovuto a piccoli valori singolari. Un filtro elimina le alte frequenze del rumore E e le alte frequenze di informazioni utili. Il livello di troncamento è
k < r, dove r è il rango massimo.
Con la SVD:
1. si calcola la fattorizzazione di A ;
2. si eliminano i valori singolari minori della tolleranza;
3. si costruisce la soluzione x :
x = A −1 ŷ + δy
' V k Σ k −1 U k T y =
D
E
k
ui T , y
X
i=1
σi
· vi
v ∈ Rk , mentre A v ∈ Rn . Variando v , allora A v varia nel sottospazio lineare di Rn
generato dalle colonne di A (figura 5.3).
Figura 5.3: Soluzione di sistemi lineari malcondizionati con SVD
5.2 - Risoluzione di sistemi lineari malcondizionati
47
CAPITOLO
6
Integrazione numerica
Si vuole determinare un’approssimazione dell’integrale definito:
Z b
I(f ; a, b) =
f (x) dx
a
Osservazioni:
ˆ sono noti solo i valori di f (x) in un insieme finito di punti;
ˆ l’integrale non è valutabile in forma chiusa.
6.1
Formule di quadratura
In (f ) =
n
X
wi · f (xi )
i=0
wi sono i coefficienti o pesi (ci ); xi sono i nodi. Il resto della formula di quadratura è:
rn = I − In
Si fa la somma pesata di valori della funzione in punti opportuni, che appartengono o
meno all’intervallo di integrazione. Allora:
Z b
In (f ; a, b) =
pn (x) dx
a
dove pn (x) è il polinomio che interpola la funzione f (x) in n + 1 punti del tipo xi , f (xi ) .
Se pn (x) è il polinomio interpolante di Lagrange in n + 1 punti distinti:
pn (x) =
n
X
f (xi ) · li (x)
i=0
b
Z
In (f ) =
pn (x) dx =
a
n
X
i=0
f (xi ) ·
Z
b
li (x) dx
| a {z
}
coefficienti
La formula di quadratura risulta esatta per costruzione per i polinomi di grado almeno n
(grado di precisione almeno n). Una formula di quadratura In ha grado di precisione k
se è esatta (cioè ha resto rn = 0) quando la funzione integranda è un polinomio qualsiasi
p(x) di grado minore o uguale a k.
I(p) = In (p)
48
∀p ∈ P k
6 - Integrazione numerica
=
$
CC
BY:
\
Calcolo numerico L-A
Ad esempio, in figura 6.1 si ha un integrale I1 con grado di precisione k = 1: se la funzione
è un polinomio di grado 1 allora I1 è esatto, mentre se la funzione ha grado diverso da 1
allora utilizzando I1 si commette un errore.
Figura 6.1: Grado di precisione dell’integrazione (esempio con I1 )
6.2
Formule di quadratura di Newton-Cotes (a nodi
equispaziati)
Le formule di Newton-Cotes si distinguono in formule chiuse e aperte. Le formule chiuse
usano entrambi gli estremi di integrazione:
1. formula dei trapezi (lineare);
2. formula di Simpson 1/3 (quadratica);
3. formula di Simpson 3/8 (cubica).
Le formula aperte usano solo punti interni all’intervallo di integrazione:
4. formula del punto medio.
Formula dei trapezi.
(figura 6.2):
Su un intervallo [a, b] si può approssimare la funzione linearmente
Z
b
f (x) dx
a
'
1
X
ci · f (xi )
i=0
= c0 · f (x0 ) + c1 · f (x1 )
= c0 · f (a) + c1 · f (b)
i
hh
=
f (a) + f (b)
2
Figura 6.2: Integrazione con formula dei trapezi
6.2 - Formule di quadratura di Newton-Cotes (a nodi equispaziati)
49
=
$
CC
BY:
\
Calcolo numerico L-A
Dimostrazione. Nell’interpolazione di Lagrange con n = 1:
= L0 (x) · f (x0 ) + L1 (x) · f (x1 )
x − x1
x − x0
=
· f (x0 ) +
· f (x1 )
x0 − x1
x1 − x0
p(x)
Si cambia la variabile:
x ∈ [a, b]
ξ ∈ [0, 1]
x0 = a
x1 = b
ξ=
x−a
h
,
⇒
p(ξ) = (1 − ξ) · f (a) + ξ · f (b)
⇒
Integrando:
Z
Z b
f (x) dx '
dx
con h = b − a
h
x=a ⇒ ξ=0
x=b ⇒ ξ=1
dξ =
b
Z
p(x) dx
0
a
a
1
p(ξ) dξ
= h
= f (a) · h
Z
1
(1 − ξ) dξ + f (b) · h
0
Z
1
ξ dξ
0
1
2 1
ξ2
ξ
= f (a) · h · ξ −
+ f (b) · h ·
2 0
2 0
i
hh
=
f (a) + f (b)
2
Formula di Simpson 1/3.
una parabola (figura 6.3):
Z
Su un intervallo [a, b] si può approssimare la funzione con
b
f (x) dx
'
a
2
X
ci · f (xi )
i=0
= c0 · f (x0 ) + c1 · f (x1 ) + c2 · f (x2 )
a+b
= c0 · f (a) + c1 · f
+ c2 · f (b)
2
i
hh
=
f (x0 ) + 4 · f (x1 ) + f (x2 )
3
Figura 6.3: Integrazione con formula di Simpson 1/3
Dimostrazione. Si interpola:
p(x) =
50
(x − x1 )(x − x2 )
(x − x0 )(x − x2 )
(x − x0 )(x − x1 )
· f (x0 )+
· f (x1 )+
· f (x2 )
(x0 − x1 )(x0 − x2 )
(x1 − x0 )(x1 − x2 )
(x2 − x0 )(x2 − x1 )
6.2 - Formule di quadratura di Newton-Cotes (a nodi equispaziati)
=
$
CC
BY:
\
Calcolo numerico L-A
Si cambia la variabile:
x0 = a
a+b
x1 =
2
x2 = b
ξ=
x − x1
h
,
dξ =

 x = x0
x = x1

x = x2
⇒
⇒
x ∈ [a, b]
ξ ∈ [−1, 1]
dx
b−a
con h =
h
2
⇒ ξ = −1
⇒ ξ=0
⇒ ξ=1
ξ(ξ − 1)
ξ(ξ + 1)
· f (x0 ) + (1 − ξ 2 ) · f (x1 ) +
· f (x2 )
2
2
p(ξ) =
Integrando:
Z b
Z
f (x) dx ' h
1
p(ξ) dξ
−1
a
= f (x0 ) ·
h
2
Z
1
−1
ξ(ξ − 1) dξ + f (x1 ) · h
Z
1
(1 − ξ 2 ) dξ + f (x2 ) ·
−1
h
2
Z
1
ξ(ξ + 1) dξ
−1
1
1
1
h ξ3
ξ3
h ξ3
ξ2
ξ2
= f (x0 ) ·
+ f (x1 ) · h ξ −
+ f (x2 ) ·
−
+
2 3
2 −1
3 −1
2 3
2 −1
i
hh
f (x0 ) + 4 · f (x1 ) + f (x2 )
=
3
Formula di Simpson 3/8. Su un intervallo [a, b] si può approssimare la funzione con
una curva cubica (figura 6.4):
Z b
3
X
f (x) dx '
ci · f (xi )
a
i=0
=
=
c0 · f (x0 ) + c1 · f (x1 ) + c2 · f (x2 ) + c3 · f (x3 )
i
3 h
h f (x0 ) + 3 · f (x1 ) + 3f (x2 ) + f (x3 )
8
Figura 6.4: Integrazione con formula di Simpson 3/8
Formula del punto medio. Su un intervallo [a, b] si può approssimare la funzione con
una funzione del punto medio (figura 6.5):
Z b
f (x) dx ' (b − a) · f (xm )
a
a+b
(b − a)3 00
= (b − a) · f
+
· f (η)
2
24
6.2 - Formule di quadratura di Newton-Cotes (a nodi equispaziati)
51
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 6.5: Integrazione con formula del punto medio
6.2.1
Errore di troncamento (rn )
Definizione 17 (Errore di interpolazione polinomiale).
E(x) = f (x) − pn (x) =
Z
Sapendo che
b
Y
1
(x) · f (n+1) (ξ)
(n + 1)! n
b
Z
a
Z
p(x) dx+rn '
f (x) dx =
a
con
n
Y
Y
(x) =
x − xi
n
i=0
b
p(x) dx si può definire un altro errore.
a
Definizione 18 (Errore di una formula di quadratura interpolatoria).
1
rn =
(n + 1)!
Z
b
f (n+1) (ξ) ·
a
Y
(x) dx
n
con f ∈ C n+1 [a, b] , ξ ∈]a, b[.
In una formula di quadratura di Newton-Cotes, poiché i nodi xi sono equidistanti,
l’espressione del resto si semplifica.
Teorema
14
(Formula di Newton-Cotes con n pari, aperta o chiusa). Se f ∈
n+2
C
[a, b] e ξ ∈]a, b[:
hn+3 · f (n+2) (ξ)
rn =
(n + 2)!
β
Z
t2 (t − 1) · · · (t − n) dt
α
(0 , n)
per formule chiuse
.
(−1 , n + 1) per formule aperte
Il grado di precisione è n + 1.
dove (α , β) =
Teorema 15 (Formula
di Newton-Cotes con n dispari, aperta o chiusa). Se
n+1
f ∈C
[a, b] e ξ ∈]a, b[:
hn+2 · f (n+1) (ξ)
rn =
(n + 1)!
(0 , n)
(−1 , n + 1)
Il grado di precisione è n.
dove (α , β) =
52
Z
β
t(t − 1) · · · (t − n) dt
α
per formule chiuse
.
per formule aperte
6.2 - Formule di quadratura di Newton-Cotes (a nodi equispaziati)
=
$
CC
BY:
Esempio.
\
Calcolo numerico L-A
Nella formula dei trapezi l’errore di troncamento è:
h3 (2)
r1 =
· f (η)
2!
Z
1
|0
1
t(t − 1) dt = − h3 f (2) (η)
12
{z
}
1
−
6
con n = 2, h = b − a.
Errori nelle formule di Newton-Cotes.
1. Nella formula dei trapezi (h = b − a): r1 (f ) = −
h3 00
f (ξ).
12
2. Nella formula di Simpson 1/3 (h =
b−a
2 ):
r2 (f ) = −
h5 (4)
f (ξ).
90
3. Nella formula di Simpson 3/8 (h =
b−a
3 ):
r3 (f ) = −
3h5 (4)
f (ξ).
80
4. Nella formula del punto medio (h =
6.2.2
b−a
2 ):
r0 (f ) =
h3 00
f (ξ).
3
Pesi per formule di Newton-Cotes
Si può dimostrare che i coefficienti (pesi) wi di una formula di quadratura dipendono solo
da n. Per questo motivo, non dipendendo né dall’intervallo di integrazione [a, b] né dalla
funzione f (x), è possibile calcolarli a priori.
c0
1
2
c1
1
2
c2
2
1
3
4
3
1
3
3
3
8
9
8
9
8
3
8
4
..
.
14
15
..
.
64
45
..
.
24
45
..
.
64
45
..
.
n
1
c3
c4
...
14
45
..
.
Tabella 6.1: Pesi per formule chiuse di Newton-Cotes a n + 1 punti
6.2.3
Problema delle formule di quadratura
Le formule di quadratura hanno una forte instabilità numerica quando n > 8. Per questo
bisogna ricorrere a metodi migliorativi:
ˆ formule composite;
– formula dei trapezi composita;
– formula di Simpson composita;
ˆ estrapolazione di Richardson;
ˆ integrazione di Romberg.
6.2 - Formule di quadratura di Newton-Cotes (a nodi equispaziati)
53
=
$
CC
BY:
6.3
\
Calcolo numerico L-A
Formule di quadratura composite
Si suddivide l’intervallo di integrazione [a, b] in N parti [xi , xi+1 ], con i = 0, 1, . . . , N − 1.
Su ogni intervallo si fa una somma di integrali:
b
Z
f (x) dx =
a
N
−1 Z xi+1
X
f (x) dx
xi
i=0
Si applica, poi, la formula elementare interpolatoria su ciascun intervallo.
Formula dei rettangoli composita. Su un intervallo [a, b] si può approssimare la
funzione come segue (figura 6.6):
Z
b
Z
f (x) dx
a
x1
=
Z
x2
x0
Z
xN
f (x) dx + · · · +
f (x) dx +
x1
f (x) dx
xN −1
h
i
= h f (x0 ) + f (x1 ) + · · · + f (xi ) + · · · + f (xN −1 ) + r
Figura 6.6: Integrazione con formula dei rettangoli composita
Formula dei trapezi composita. Su un intervallo [a, b] si può approssimare la funzione
come segue (figura 6.7):
Z
b
h
i
f (x) dx = h f (x0 ) + 2f (x1 ) + · · · + 2f (xi ) + · · · + f (xN −1 ) + f (xN ) + r
a
(b − a)3 00
· f (ξ)
12N 2
L’errore globale di troncamento è la somma degli errori su ciascun intervallo:
r=−
N
−1
X
b−a 2
R=−
h
12
f (2) (ηi )
i=0
N
Figura 6.7: Integrazione con formula dei trapezi composita
54
6.3 - Formule di quadratura composite
=
$
CC
BY:
\
Calcolo numerico L-A
Formula di Simpson composita. Su un intervallo [a, b] si può approssimare la funzione
come segue (interpolando quadraticamente a tratti):
Z
b
Z
f (x) dx
x2
=
a
x0
=
=
Z
x4
Z
xN
f (x) dx + · · · +
f (x) dx +
x2
f (x) dx
xN −2
i hh
i
hh
f (x0 ) + 4f (x1 ) + f (x2 ) +
f (x2 ) + 4f (x3 ) + f (x4 ) + · · · +
3
3
i
hh
+ f (xN −2 ) + 4f (xN −1 ) + f (xN ) + r
3
hh
f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + 2f (x4 ) + · · · +
3
i
+4f (x2i−1 ) + 2f (x2i ) + 4f (x2i+1 ) + · · · + 2f (xN −2 ) + 4f (xN −1 ) + f (xN ) + r
r=−
6.3.1
(b − a)5
· f (4) (ξ)
2880 · N 4
Quadratura automatica
Ingressi
f (x)
[a, b]
Etoll
NM AX
Uscite
In
Est
M
Tabella 6.2: Ingressi e uscite di un programma P di quadratura automatica
Rb
Il programma P calcola il valore dell’integrale I(f ; a, b) = a f (x) dx con un errore
stimato Est < Etoll e con un numero di valutazioni di funzione M < NM AX . Se ciò non è
possibile, il programma si interrompe.
P è composto da:
1. una successione di formule di quadratura, che comportano un numero crescente di
valutazioni di f (x);
2. un criterio per determinare In ;
3. un criterio per determinare la stima automatica dell’errore Est .
Esempi di metodi di quadratura automatica P sono il metodo di Simpson composito
adattivo e il metodo di Romberg (non adattivo).
Metodo di Simpson composito adattivo.
Algoritmo.
1. Si applicano due formule di quadratura composite, con passo h e
[a, b] (Simpson S(h) e S( h2 )).
h
, ad un intervallo
2
2. Si stima l’errore di integrazione con l’estrapolazione di Richardson.
3.
ˆ Se la tolleranza richiesta è raggiunta, allora S( h2 ) (oppure una combinazione
delle due approssimazioni) viene presa come valore di I su quell’intervallo.
ˆ Se la tolleranza non è raggiunta, allora l’intervallo [a, b] viene suddiviso a metà
e il processo viene ripetuto su ognuno dei due sottointervalli.
6.3 - Formule di quadratura composite
55
=
$
CC
BY:
6.4
\
Calcolo numerico L-A
Estrapolazione di Richardson
Si può dare una stima automatica del resto confrontando tra loro le approssimazioni composite dell’integrale (IN e I2N ), ottenute con due diversi valori di N (numero di intervalli,
cioè passi h e h2 ).
rN = I − IN =
δN
NS
r2N = I − I2N =
,
δ2N
2S N S
δN e δ2N differiscono per f (S) (ξ). Nell’ipotesi che la derivata f (S) (ξ) vari poco al variare
di x, si suppone che δN ' δ2N = δ. Allora rN − r2N è dato da:
I2N − IN '
δ
· (2S − 1)
2S · N S
I2N − IN
.
2S − 1
Si può procedere con successivi raddoppi di N fino a quando:
I2N − IN 2S − 1 ≤ Etoll
Stima del resto: I − I2N '
I2N − IN
.
2S − 1
L’approssimazione dell’integrale sarà I2N +
6.5
Calcolo geometrico con integrali
A) Lunghezza di una funzione regolare su intervallo limitato.
Z br
2
L=
1 + f 0 (x) dx
a
B) Lunghezza di una curva.
(Arco parametrico C(t) = x(t) , y(t) .)
Z 1
Z
0 L=
C (t) dt =
0
1
r
2 2
x0 (t) + y 0 (t) dt
0
C) Area di una funzione positiva su intervallo limitato.
Z
A=
b
f (x) dx
a
D) Area
di unacurva parametrica. La curva è espressa nella forma parametrica
C(t) = x(t) , y(t) , con t ∈ [0 , 1]. L’area è sottesa dalla curva con l’origine degli assi: se
la curva è chiusa, questo equivale all’area della regione che resta definita dalla curva.
1
A=±
2
Z
0
1
1
C(t) × C (t) dt = ±
2
0
Z 1h
i
x(t)y 0 (t) − x0 (t)y(t) dt
0
Il segno ± dipende dalla parametrizzazione (+ per la parametrizzazione antioraria, − per
quella oraria).
E) Volume di una funzione regolare su intervallo limitato.
D = [a, b] × [c, d]. Funzione positiva: f (x, y) > 0.)
ZZ
V =
f (x, y) dx dy
(Intervallo limitato
D
56
6.4 - Estrapolazione di Richardson
=
$
CC
BY:
\
Calcolo numerico L-A
F) Ipervolume di una funzione regolare su intervallo limitato. (Intervallo limitato E = [a, b] × [c, d] × [e, f ]. Funzione positiva: f (x, y, z) > 0.)
ZZZ
V =
f (x, y, z) dx dy dz
E
G) Volume di un solido di rotazione.
Z
b
V =π
2
f (x) dx
a
L’area della sezione all’ascissa x è:
2
A = π · y 2 = π · f (x)
6.6
Calcolo fisico con integrali
A) Massa e baricentro di un corpo bidimensionale. P è una regione piana che ha
densità superficiale m(x, y).
ZZ
m(x, y) dx dy
massa =
P
Le coordinate del baricentro xb e yb sono:
ZZ
1
xb =
x · m(x, y) dx dy
massa
P
,
1
yb =
massa
ZZ
y · m(x, y) dx dy
P
B) Massa e baricentro di un solido. E è un volume che ha densità m(x, y, z).
ZZZ
massa =
m(x, y, z) dx dy dz
E
Le coordinate del baricentro xb , yb e zb sono:
ZZZ

1


x
=
x · m(x, y, z) dx dy dz
b


massa Z Z Z E


1
yb =
y · m(x, y, z) dx dy dz

massa Z Z ZE



1

 zb =
z · m(x, y, z) dx dy dz
massa
E
Nota 6.6.1. Gli integrali delle formule del baricentro sono i momenti rispetto ai tre piani coordinati.
C) Momenti di inerzia rispetto agli assi.
ZZZ


 Ix =
(y 2 + z 2 ) · m(x, y, z) dV



Z
Z
Z
E

Iy =
(x2 + z 2 ) · m(x, y, z) dV

Z Z ZE




 Iz =
(x2 + y 2 ) · m(x, y, z) dV
E
6.7
Esempi numerici
Confronto tra i metodi numerici non compositi. Sono state scelte cinque funzioni
da integrare sull’intervallo [0 , 4]. Per ognuna di esse è stata calcolata la primitiva e il
valore reale dell’integrale definito; in seconda battuta, il calcolatore ha determinato il
valore dell’integrale coi tre metodi dei trapezi, di Simpson 1/3 e di Simpson 3/8. Per ogni
6.6 - Calcolo fisico con integrali
57
=
$
CC
BY:
\
Calcolo numerico L-A
risultato è stato calcolato lo scostamento percentuale ε rispetto al valore reale. I risultati
sono riepilogati in tabella 6.3, mentre gli integrali sono:
Z 4
x · e2x dx = 5216, 926477
(6.7.1)
0
Z
4
x2 · e−2x dx
=
0, 24661508
(6.7.2)
0, 57275
(6.7.3)
1, 65364321
(6.7.4)
−0, 113731448
(6.7.5)
0
4
Z
sin 2x dx =
0
Z
4
sin x dx =
0
Z
4
e−x · sin(10x) dx
=
0
Integrale
Valore reale
Trapezi
Simpson 1/3
Simpson 3/8
Grafico
(6.7.1)
5216,926477
−357, 1
−57, 96
−30, 71
(6.8)
(6.7.2)
0,24661508
95, 65
19, 31
2, 875
(6.9)
(6.7.3)
0,57275
−245, 5
337, 20
106, 88
(6.10)
(6.7.4)
1,65364321
191, 53
−16, 12
−6, 759
(6.11)
(6.7.5)
−0, 113731448
124, 0
397, 7
438, 8
(6.12)
Tabella 6.3: Risultati del confronto tra le formule di quadratura di Newton-Cotes a nodi equispaziati
Figura 6.8: Calcolo della (6.7.1) coi metodi dei trapezi e di Simpson
58
6.7 - Esempi numerici
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 6.9: Calcolo della (6.7.2) coi metodi dei trapezi e di Simpson
Figura 6.10: Calcolo della (6.7.3) coi metodi dei trapezi e di Simpson
6.7 - Esempi numerici
59
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 6.11: Calcolo della (6.7.4) coi metodi dei trapezi e di Simpson
Figura 6.12: Calcolo della (6.7.5) coi metodi dei trapezi e di Simpson
60
6.7 - Esempi numerici
CAPITOLO
7
Approssimazione
Si presenta la necessità di approssimare:
dati quando la funzione da approssimare f (x) non è nota in forma analitica, ma di essa
si conoscono alcuni valori yi su un insieme di punti xi ;
funzioni quando la funzione è nota in forma analitica, ma è una funzione complicata e
la si vuole approssimare con una rappresentazione più semplice.
Figura 7.1: Approssimazione di dati minimizzando la distanza lungo y
C’è una sostanziale differenza tra approssimazione e interpolazione. L’interpolazione
passa per i punti dati, mentre l’approssimazione costruisce una curva minimizzando la
distanza tra la curva e i dati forniti (figura 7.1). La scelta della distanza con la quale si
vuole approssimare i dati (misura dell’errore) determina il procedimento da scegliere:
ˆ con pochi dati affidabili bisogna usare l’interpolazione;
ˆ con un insieme discreto di dati (ad es. dati sperimentali affetti da variabilità statistica, per i quali si deve tener conto di un margine d’errore) bisogna approssimare:
1. con l’approssimazione ai minimi quadrati :
v
um
2
uX
yi − fn (xi )
y − fn = t
2
i=1
2. con l’approssimazione uniforme:
y − fn = max yi − fn (xi )
∞
7 - Approssimazione
i=1,...,m
61
=
$
CC
BY:
7.1
\
Calcolo numerico L-A
Approssimazione ai minimi quadrati (LS)
Bisogna minimizzare l’errore ei = f1 (xi ) − yi . I punti dati sono (xi , yi ), mentre xi , f (xi )
sono i punti approssimati (figura 7.2(a)).
(a) Esempio di approssimazione ai minimi
quadrati
(b) Cancellazione d’errore
Figura 7.2: Approssimazione ai minimi quadrati
Tuttavia, gli errori possono cancellarsi l’un l’altro (figura 7.2(b)): quindi la soluzione
è minimizzare la somma dei quadrati.
S=
m
X
(ei )2
= e1 2 + e2 2 + e3 2 + . . .
i=1
m 2
X
yi − fn (xi )
=
i=1
m h
i2
X
=
yi − (axi + b)
i=1
L’approssimazione ai minimi quadrati equivale a minimizzare l’errore S:
min y − f1 2
= min
a,b
2
m h
X
i2
yi − (axi + b)
i=1
Assegnati i punti (xi , yi ) con i = 1, . . . , m e scelte n + 1 funzioni base del tipo:
Φ0 , Φ 1 , . . . , Φn
con n m
si vuole costruire la funzione di approssimazione individuata con il metodo dei minimi
quadrati (cioè i coefficienti ai sono determinati in modo che lo scarto quadratico medio S
sia minimo):
fn (x) = a0 Φ0 + ai Φ1 + · · · + an Φn
y − fn (x) è il vettore di elementi.
yi −
n
X
aj Φj (xi )
con i = 1, . . . , m
j=0
m
y −Ha





y0
y1
..
.
ym
62


 
 
−
 
Φ0 (x0 )
Φ0 (x1 )
..
.
Φ0 (xm )
con Hij = Φj (xi )

Φ1 (x0 ) . . . Φn (x0 )
Φ1 (x1 ) . . . Φn (x1 ) 


..
..
..

.
.
.
Φ1 (xm ) . . . Φn (xm )



·

a0
a1
..
.





an
7.1 - Approssimazione ai minimi quadrati (LS)
=
$
CC
BY:
\
Calcolo numerico L-A
Il vettore a contiene i parametri incogniti dell’approssimante. Si vuole determinare il
valore di a che renda minimo il residuo:
2
S = y − H a 2
Si tratta della soluzione di un sistema lineare sovradeterminato (m > n) perché si vuole
H a = y . Avendo più vincoli che variabili, non esiste in generale una soluzione esatta:
quindi, si cerca una soluzione approssimata nel senso dei minimi quadrati.
Scegliendo i polinomi nella base delle potenze:
Φ0 = 1 , Φ1 = x , Φ 2 = x 2 , . . . , Φ n = x n
si vuole determinare fn (x) = a0 + a1 x + a2 x2 + · · · + an xn che renda minima la somma
m h
i2
X
S=
y − fn (xi ) .
i=0
7.1.1
Metodo delle equazioni normali per l’approssimazione ai
minimi quadrati
1) Approssimazione lineare (n = 1).
Si deve minimizzare l’errore S =
m h
X
i2
yi − (axi + b) .
i=1
Poiché è il minimo di una funzione in due variabili (a, b), si calcolano le derivate parziali
di S rispetto a entrambe le variabili e le si pongono uguali a zero.
 X

m
Pm
Pm
∂S




=
0
axi 2 + i=1 bxi = i=1 xi yi



 ∂a
i=1
⇒
m
X


Pm
Pm

 ∂S


axi + i=1 b
= i=1 yi


=0
∂b
i=1
Infatti:
∂S
∂a
=
=
∂S
∂b
=
=
m
X
2(yi − axi − b)(−xi )
i=1
m
X
−
xi yi +
i=1
m
X
m
X
axi 2 +
m
X
i=1
bxi = 0
i=1
(−2)(yi − axi − b)
i=1
m
X
−
yi +
i=1
m
X
axi +
m
X
i=1
b=0
i=1
Si risolve il sistema:
 X
m
xi 2

 i=1
 X
m

xi
m
X

 X
m
xi  xi yi

a

 i=1
i=1
= X
·
m
b


m
yi
i=1





i=1
Si pone:
Sx =
Sxx =
m
X
i=1
m
X
xi ,
xi 2 ,
i=1
Sy =
Syy =
m
X
i=1
m
X
yi
xi yi
i=1
Il sistema allora ha soluzione:
Sxx Sy − Sxy Sx
m · Sxy − Sx Sy
a=
,
b=
2
m · Sxx − Sx
m · Sxx − Sx 2
La retta che approssima i dati ai minimi quadrati è y = ax + b. Un esempio di approssimazione lineare è in figura 7.3(a).
7.1 - Approssimazione ai minimi quadrati (LS)
63
=
$
CC
BY:
\
Calcolo numerico L-A
2) Approssimazione quadratica (n = 2). Per minimizzare l’errore si deve calcolare
il minimo di una funzione in tre variabili, calcolando le derivate parziali di S rispetto alle
variabili:

 X
 X


m
m
m
m
X
X
∂S

4
3
2
2

=
0
xi
xi
xi 
xi yi 



 ∂a

 i=1


 
  i=1
i=1
i=1

 X
 X



m
m
m
m
a

X
X




∂S
3
2


· b =
x
x
x
y
x
⇒
i
i
i
i
i
=0





∂b
 i=1
 i=1



i=1
i=1
c






m
m
m

X
X
X






2
∂S

y
x
x
m
i
i
i

=0
∂c
i=1
i=1
i=1
Un esempio di approssimazione quadratica è in figura 7.3(b).
(a) Approssimazione lineare (grado n = 1)
(b) Approssimazione quadratica (grado n = 2)
(c) Approssimazione cubica (grado n = 3)
(d) Approssimazione con gradi n = 6 e n = 7
Figura 7.3: Approssimazione ai minimi quadrati col metodo delle equazioni normali
3) Approssimazione con grado n arbitrario. Sono riportati in figura 7.3(c) e 7.3(d)
due esempi, rispettivamente con grado n = 3 e coi gradi n = 6 e n = 7.

m


 X
 m

xi

 i=1

..

.

 X
m

xi n
fn (x) = a0 + a1 x + a2 x2 + · · · + an xn

m
m
X
X

xi . . .
xi n 
 
 
i=1
i=1

a0

..

..
  a1  
.
.
 
 
 ·  ..  = 
  .  

..
..


.
.

a

n

m
X
2n 
...
...
xi
i=1
64
1
x0
1
x1
...
...

yi
i=1
m
X
xi yi
..
.
i=1
m
X
xi n yi









i=1
i=1

m
X
1
xm


·

1
1
..
.
x0
x1
..
.
1
xm


 a0
1

=
·
a1
x0

1
x1
...
...
1
xm


·

y0
y1
..
.





ym
7.1 - Approssimazione ai minimi quadrati (LS)
=
$
CC
BY:
\
Calcolo numerico L-A
H TH a = H Ty
2
Teorema 16. mina S = y − H a ⇐⇒
H TH a = H Ty.
2
Dimostrazione.
S(a ) = y − H a 2
=
(y − H a )T · (y − H a )
=
yTy − yTH a − aTH Ty + aTH TH a
=
y T y − 2y T H a + a T H T H a
=
−2y T H + 2H T H a = 0
2
∇S(a )
⇒ H TH a = H Ty
H T H è definita positiva se e solo se la matrice H ha rango massimo. In questo caso, A
è non singolare, quindi il problema ha un’unica soluzione.
Bisogna fare attenzione al malcondizionamento k(H T H ) = k(H )2 : errori di arrotondamento nella risoluzione del sistema possono causare grandi errori nell’approssimante dei
dati.
Teorema 17. Il problema LS ammette sempre soluzione. La soluzione è unica se e solo se
la matrice H ha rango massimo (cioè se le colonne di H sono linearmente indipendenti).
Il problema ha infinite soluzioni quando le colonne di H sono linearmente dipendenti,
tuttavia la soluzione di lunghezza minima è unica.
7.1.2
Minimi quadrati pesati. Polinomi ortogonali nelle equazioni
normali
Si può associare un peso wi a ciascun punto:
min
a0 ,a1 ,...,an
N
X
h
i2
wi · yi − fn (xi )
min H a − y
a
wi > 0, indipendenti da ai
i=1
m
T
W Ha −y
m
H W H a = H TW y
T
Wii = wi
matrice diagonale n × n
sistema di equazioni normali n × n
Si può evitare la risoluzione del sistema delle equazioni normali scegliendo come funzioni
base polinomi ortogonali :
hΦk , Φj i =
m
X
wi Φk (xi )Φj (xi ) = 0
con k 6= j
i=0
con matrice dei pesi W e matrice del sistema H T W H a = H T W y diagonale, di
coefficienti:
m
X
wi fi Φj (xi )
aj ∗ =
i=0
m
X
con j = 0, . . . , n
wi Φj 2 (xi )
i=0
7.1 - Approssimazione ai minimi quadrati (LS)
65
=
$
CC
BY:
7.1.3
\
Calcolo numerico L-A
Metodo QR-LS
Algoritmo.
1. Si suppone che H abbia rango massimo:
min S = H a − y 2
2
2. Si applica una fattorizzazione QR alla matrice del sistema H = Q R :
Q
R =
matrice ortogonale
matrice triangolare superiore non singolare
R1
0
H a − y 2
2
= Q R a − y 2
2
2
= R a − Q T y | {z } 2
c
3. Si partiziona il vettore c :
c1
c =
c2
Ra − c =
,
2
min H a − y 2
= c2 2
2
R1 a − c1
c1
+ min R1 a − c1 2
2
4. Si risolve il sistema triangolare R1 a = c1 . Il residuo è dato da:
2 2
min H a − y = c2 2
7.1.4
2
Metodo della decomposizione in valori singolari (SVD-LS)
Teorema 18. Sia:
H ∈ C m×n
H = U ΣV
di rango k, con m ≥ n ≥ k
T
Allora la soluzione di minima norma del problema dei minimi quadrati è data da:
∗
a =
k
X
ui H · y
i=1
e il valore minimo è γ 2 =
σi
·
vi
H 2
·
y
u
.
i
i=1
Pn
Dimostrazione. ******************
*****************
66
7.1 - Approssimazione ai minimi quadrati (LS)
=
$
CC
BY:
\
Calcolo numerico L-A
Figura 7.4: Esempio approssimazione ***
(a) ***
(b) ***
Figura 7.5: Soluzione esempio approssimazione ***
7.1 - Approssimazione ai minimi quadrati (LS)
67
APPENDICE
A
Vettori e matrici
A.1
Operazioni tra vettori
Dati due vettori:
h
x = x1
x2
...
xm
iT
,
y =
h
y1
y2
...
ym
iT
si possono definire due operazioni.
Definizione 19 (Somma di vettori). Dati due vettori x e y aventi la medesima dimensione, la loro somma è:
h
i
x + y = x1 + y1 x2 + x2 . . . xm + ym
Definizione 20 (Prodotto scalare tra vettori). Dati due vettori x e y aventi la medesima
dimensione, il loro prodotto scalare è:
p = xT ·y =
m
X
xi · yi
i=1
A.2
Operazioni tra matrici
Definizione 21 (Matrice simmetrica). Una matrice è simmetrica se A = A T .
Definizione 22 (Matrice antisimmetrica). Una matrice è antisimmetrica se A = −A T .
Definizione 23 (Prodotto tra matrici). Il prodotto tra matrici è possibile solo tra una
matrice A (di dimensioni m × n) e una matrice B (di dimensioni n × p), per cui A ha
tante colonne quante sono le righe di B . Risulta una matrice C (di dimensioni m × p)
con elementi:
n
X
i = 1, . . . , m
cij =
aik bkj
con:
j = 1, . . . , p
k=1
Prodotto tra matrici con uso del prodotto scalare (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx xxx
for i=1:m
for j=1:p
C(i,j) = A(i,:) * B(:,j);
end
68
A - Vettori e matrici
=
$
CC
BY:
\
Calcolo numerico L-A
Prodotto tra matrici (codice MATLAB)
xxx xxx xxx xxx xxx xxx xxx xxx
for i=1:m
for j=1:p
for k=1:n
C(i,j) = C(i,j) + A(i,k) * B(k,i);
end
Il costo computazionale è
p X
m X
n
X
2 = 2mpn, quindi con m = p = n la complessità
i=1 j=1 k=1
è 2n3 .
A.3
A.3.1
Norme
Norma vettoriale
Una norma vettoriale è una funzione:
• : C n → R+ ∪ {0}
che assegna un valore reale a ciascun vettore x e verifica le seguenti proprietà:
∀x ∈ C n ;
1. x ≥ 0 e x = 0 ⇔ x = 0,
∀x ∈ C n , ∀α ∈ C;
2. αx = α · x ,
3. x + y ≤ x + y (disuguaglianza triangolare),
Norma 1.
∀x , y ∈ C n .
n
X
xi .
x =
1
i=1
v
u n
q
uX
√
Norma 2 (euclidea). x 2 =
x , x = x T x = t (xi )2 .
i=1
Norma infinito (di Chebyshev).
x = max xi .
∞
i=1,...,n
Teorema 19. Siano k • k0 e k • k00 due norme vettoriali. Allora le due norme sono
equivalenti, cioè esistono due costanti reali α, β tali che 0 < α ≤ β e che (∀x ∈ C n ):
00
0
00
α· x
≤ x ≤ √β · x x x ≤
≤ n · x ∞
∞
2
√ x ≤ x 1 ≤
n · x2
2
√ x n · x ∞
≤
x 1 ≤
∞
A.3.2
Norma matriciale
Una norma matriciale è una funzione:
• : C n×n → R+ ∪ {0}
che assegna un valore reale a ciascuna matrice A e verifica le seguenti proprietà:
1. A ≥ 0 e A = 0 ⇔ A = 0,
∀A ∈ C n×n ;
2. αA = α · A ,
∀A ∈ C n×n , ∀α ∈ C;
A.3 - Norme
69
=
$
CC
BY:
\
Calcolo numerico L-A
3. A + B ≤ A + B (disuguaglianza triangolare),
4. A · B ≤ A · B ,
∀A , B ∈ C n×n .
∀A , B ∈ C n×n ;
Definizione 24 (Norma matriciale indotta). Ad ogni norma vettoriale si può associare
una norma matriciale. La norma:
A x A = sup p
con A ∈ C n×n , x ∈ C n
p
x
kx k6=0
p
è detta norma matriciale indotta dalla norma vettoriale (norma naturale).
Proprietà delle norme naturali.
I x p
ˆ I p = sup x = 1;
kx k6=0
p
ˆ A x ≤ A · x .
Norma 1.
n
X
A = max
aij (il massimo della somma sulle colonne, in modulo).
1
j=1,...,n
i=1
q
Norma 2 (euclidea). A 2 = ρ (A T A ), dove ρ (A ) è il raggio spettrale di A (il
suo massimo autovalore).
n
X
aij (il massimo della somma
Norma infinito (di Chebyshev). A ∞ = max
i=1,...,n
j1
sulle righe, in modulo).
Norma di Frobenius (o di Schur).
v
uX
u n 2
A = t
aij .
F
i,j=1
Teorema 20. Tutte le norme matriciali sono equivalenti:
1 √ · A ∞
n
1 √ · A 1
n max aij i,j
1 √ · A F
n
A.4
≤ A 2
≤ A 2
≤ A 2
≤ A 2
√
n · A ∞
√ ≤
n · A 1
≤ n · max aij i,j
A ≤
F
≤
Matrici definite in segno
Definizione 25 (Matrice definita in segno). Se, per ogni x 6= 0 , il numero reale x T A x
mantiene lo stesso segno, si dice che la matrice A è definita in segno. In particolare:
ˆ x T A x > 0: matrice definita positiva;
ˆ x T A x ≥ 0: matrice semidefinita positiva;
ˆ x T A x ≤ 0: matrice semidefinita negativa;
ˆ x T A x < 0: matrice definita negativa;
ˆ in tutti gli altri casi, A è indefinita.
70
A.4 - Matrici definite in segno
=
$
CC
BY:
\
Calcolo numerico L-A
Teorema 21 (Criterio di Sylvester). Una matrice simmetrica A è definita positiva se
e solo se:
det (A k ) > 0
con k = 1, . . . , n
dove det (A k ) è il determinante della matrice di ordine k formata dalle intersezioni delle
prime k righe e k colonne di A .
A.4 - Matrici definite in segno
71
Elenco delle figure
1.1
1.2
72
1.3
1.4
1.5
Analisi numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disposizione sull’asse reale dei numeri finiti rappresentati dall’insieme F (B =
2, t = 3, L = −1, U = 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Valutazione dell’errore nel caso di troncamento . . . . . . . . . . . . . . . .
Valutazione dell’errore nel caso di arrotondamento . . . . . . . . . . . . . .
Successioni ottenute con algoritmi stabili o instabili . . . . . . . . . . . . . .
10
10
11
18
2.1
2.2
2.3
2.4
2.5
2.6
Metodo di bisezione . . . . . . . . . . . .
Metodo di Regula Falsi . . . . . . . . . .
Metodo delle secanti . . . . . . . . . . . .
Metodo di Newton (delle tangenti) . . . .
Risultati del metodo di calcolo delle radici
Risultati del metodo di calcolo delle radici
21
23
24
24
27
27
4.1
Funzione di Runge ottenuta interpolando con un polinomio di grado 9 (a
sinistra) e di grado 15 (a destra) . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1
5.2
5.3
Rappresentazione grafica della tecnica SVD . . . . . . . . . . . . . . . . . . 45
Economia computazionale nell’esecuzione della tecnica SVD . . . . . . . . . 46
Soluzione di sistemi lineari malcondizionati con SVD . . . . . . . . . . . . . 47
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
Grado di precisione dell’integrazione (esempio con I1 ) .
Integrazione con formula dei trapezi . . . . . . . . . . .
Integrazione con formula di Simpson 1/3 . . . . . . . . .
Integrazione con formula di Simpson 3/8 . . . . . . . . .
Integrazione con formula del punto medio . . . . . . . .
Integrazione con formula dei rettangoli composita . . . .
Integrazione con formula dei trapezi composita . . . . .
Calcolo della (6.7.1) coi metodi dei trapezi e di Simpson
Calcolo della (6.7.2) coi metodi dei trapezi e di Simpson
Calcolo della (6.7.3) coi metodi dei trapezi e di Simpson
Calcolo della (6.7.4) coi metodi dei trapezi e di Simpson
Calcolo della (6.7.5) coi metodi dei trapezi e di Simpson
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
49
50
51
52
54
54
58
59
59
60
60
7.1
7.2
7.3
7.4
7.5
Approssimazione di dati minimizzando la distanza lungo y . . . . . . . .
Approssimazione ai minimi quadrati . . . . . . . . . . . . . . . . . . . .
Approssimazione ai minimi quadrati col metodo delle equazioni normali
Esempio approssimazione *** . . . . . . . . . . . . . . . . . . . . . . . .
Soluzione esempio approssimazione *** . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
61
62
64
67
67
. . . .
. . . .
. . . .
. . . .
di una
di una
. . . . . .
. . . . . .
. . . . . .
. . . . . .
parabola
logaritmo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
Elenco delle figure
Elenco delle tabelle
1.1
Notazioni particolari di formati IEEE 754 . . . . . . . . . . . . . . . . . . . 12
2.1
2.2
Confronto tra i risultati del calcolo della radice di una parabola x2 − 4x + 2 26
Confronto tra i risultati del calcolo della radice di un logaritmo log x . . . . 26
6.1
6.2
6.3
Pesi per formule chiuse di Newton-Cotes a n + 1 punti . . . . . . . . . . . . 53
Ingressi e uscite di un programma P di quadratura automatica . . . . . . . 55
Risultati del confronto tra le formule di quadratura di Newton-Cotes a nodi
equispaziati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Elenco delle tabelle
73
Indice analitico
A
Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 14,
complessità computazionale . . . . . . .
stabilità . . . . . . . . . . . . . . . . . . . . . . . . . .
Approssimazione . . . . . . . . . . . . . . . . . . . . 7,
ai minimi quadrati (LS) . . . . . . . . . . .
ai minimi quadrati pesati . . . . . . . . .
equazioni normali (metodo) . . . . . . .
polinomi ortogonali . . . . . . . . . . . . .
matrice con minor rango (SVD) . . .
QR-LS (metodo) . . . . . . . . . . . . . . . . . .
SVD-LS (metodo) . . . . . . . . . . . . . . . .
Arrotondamento
eps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
di una formula di quadratura interpolatoria . . . . . . . . . . . . . . . . . . . . . . . . . .
19
52
19
inerente . . . . . . . . . . . . . . . . . . . . . . . . . . 16
16
nelle formule di Newton-Cotes . . . . 53
61
propagazione . . . . . . . . . . . . . . . . . . . . . 12
62
relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
65
63 Euclide (norma di) . . . . . . . . . . . . . . . . 69, 70
65
46 F
66 Floating point . . . . . . . . . . . . . . . . . . . . . . . . . 12
formati IEEE 754 . . . . . . . . . . . . . . . . . 12
66
Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
11 Frobenius (norma di) . . . . . . . . . . . . . . . . . . 70
B
Bisezione (metodo di) . . . . . . . . . . . . . . 21, 26
Broyden (aggiornamento di) . . . . . . . . . . . 29
C
Cancellazione numerica . . . . . . . . . . . . . . . .
Chebyshev (norma di) . . . . . . . . . . . . . 69,
Chebyshev (polinomi di) . . . . . . . . . . . . . .
Cholesky (fattorizzazione di) . . . . . . . . . .
Condizionamento . . . . . . . . . . . . . . . . . . 14,
indice . . . . . . . . . . . . . . . . . . . . . 15, 32,
sistema lineare . . . . . . . . . . . . . . . . . . . .
Convergenza . . . . . . . . . . . . . . . . . . . . . . . 25,
fattore . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ordine . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Corda (metodo della) . . . . . . . . . . . . . . . . . .
G
Gauss (eliminazione di) . . . . . . . . . . . . . . . . 34
H
Hilbert (matrice di) . . . . . . . . . . . . . . . . . . . 33
Horner (metodo di) . . . . . . . . . . . . . . . . . . . 42
13
70 I
43 Interpolazione . . . . . . . . . . . . . . . . . . . . . 39,
di Lagrange . . . . . . . . . . . . . . . . . . . . . . .
37
di Newton . . . . . . . . . . . . . . . . . . . . . . . .
16
Horner (metodo di) . . . . . . . . . . . . . . .
33
polinomiale . . . . . . . . . . . . . . . . . . . . . . .
32
polinomiale a tratti . . . . . . . . . . . . . . .
26
Runge (fenomeno di) . . . . . . . . . . . . .
25
spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
29
L
Lagrange (interpolazione di) . . . . . . . . . . .
D
Differenza divisa . . . . . . . . . . . . . . . . . . . . . . 41
61
40
41
42
40
43
42
43
40
N
Newton (interpolazione di) . . . . . . . . . . . . 41
E
Newton (metodo di) . . . . . . . . . . . . . . . 24–26
Errore
Newton-Cotes (formule di quadratura di) .
algoritmico . . . . . . . . . . . . . . . . . . . . . . . 16
49, 52, 53
assoluto . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Newton-Raphson (metodo di) . . . . . . . . . 28
di interpolazione . . . . . . . . . . . . . . . . . . 42 Numeri finiti . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
di interpolazione polinomiale . . . . . . 52
aritmetica . . . . . . . . . . . . . . . . . . . . . . . . 12
di rappresentazione . . . . . . . . . . . . . . . 10
cancellazione numerica . . . . . . . . . . . . 13
di troncamento . . . . . . . . . . . . . . . . . . . 52
propagazione degli errori . . . . . . . . . . 12
74
Indice analitico
=
$
CC
BY:
P
Perturbazione . . . . . . . . . . . . . . . . . . . . . 14,
Pivoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Precisione di macchina (eps) . . . . . . 11,
Propapagazione degli errori . . . . . . . . . . . .
Punto medio (formula del) . . . . . . . . . . . .
\
Calcolo numerico L-A
32
36
16
12
51
Q
Quadratura (formule di) . . . . . . . . . . . . . . . 48
a nodi equispaziati (di Newton-Cotes)
49
composite . . . . . . . . . . . . . . . . . . . . . . . . 54
Quadratura automatica . . . . . . . . . . . . . . . 55
R
Regula Falsi (metodo di) . . . . . . . . . . . 22,
Rettangoli (formula composita dei) . . . .
Richardson (estrapolazione di) . . . . . . . . .
Runge (fenomeno di) . . . . . . . . . . . . . . . . . .
26
54
56
42
S
Schur (norma di) . . . . . . . . . . . . . . . . . . . . . . 70
Secanti (metodo delle) . . . . . . . . . . . . . 23, 26
metodo di tipo secanti . . . . . . . . . . . . 29
Shamanskii (metodo di) . . . . . . . . . . . . . . . 29
Simpson (formula composita di) . . . . . . . 55
Simpson (formula di) . . . . . . . . . . . . . . 50, 51
Simpson (metodo composito adattivo di) .
55
Sistemi lineari
condizionamento . . . . . . . . . . . . . . . . . . 32
metodi numerici di risoluzione . . . . 34
soluzione (SVD) . . . . . . . . . . . . . . . . . . 46
Sistemi non lineari . . . . . . . . . . . . . . . . . . . . 28
Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Sylvester (criterio di) . . . . . . . . . . . . . . . . . . 71
T
Tangenti (metodo delle) . . . . . . . . . . . . 24–26
Trapezi (formula composita dei) . . . . . . . 54
Trapezi (formula dei) . . . . . . . . . . . . . . . . . . 49
U
Unità di arrotondamento (eps) . . . . . . . . 11
V
Vandermonde (matrice di) . . . . . . . . . . . . . 40
Indice analitico
75