Sei sulla pagina 1di 69

Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 30 marzo 2011 30 marzo 2011 30 marzo 2011 30 marzo

marzo 2011


1 1 1 1
1 1 1 1

Il valore assoluto ci dice quanto piccolo o grande un numero indipendentemente dal segno; un numero
che ha un valore assoluto piccolo sar un numero piccolo e viceversa.
Dovremmo avere la nostra soluzione vera, (che dovrebbe essere esattamente il vettore che risolve il sistema
lineare), e abbiamo la nostra soluzione ricavata. Vorremmo confrontare queste soluzioni sono diverse. Come
faccio a confrontare questi vettori e dire quant la differenza: grande o piccola? Ho bisogno un giudice,
un numero che riesce a quantificare la differenza dei due vettori: lestensione del valore assoluto e si
chiama norma

n
norma vettoriale se soddisfa:
1. ( )
n
x f 0 x > \ { } 0 0 e 0 = deve essere una funzione positiva e voglio che si annulli solo nel
vettore nullo.
2.
n
x e x x =
Voglio che sia lineare rispetto ali scalari se ho un multiplo di un vettore x, allora voglio poter portar
fuori il multiplo con valore assoluto esempio: v 3 v 3 = e v 3 v 3 = deve essere sempre positi
vo.
3.
n
y x, y x y x + +
deve valere la propriet triangolare ovvero la somma della somma dei due vettori deve essere minore
o uguale della somma delle norme
2
x non nientaltro che il teorema di Pitagora
2
n
2
2
2
1
x x x + + + = ... *img
{ } x , , x max x
x x x x
n
n 2 1
1
K =
+ + + =

...

Se la norma di un vettore mi restituisce un numero grande vuol dire che nel vettore da qualche parte c
un valore grande
Costruiamo la nostra funzione che prende dentro delle matrici quadrate nxn

nxn
: norma matriciale
1. { } 0 0 \ A 0 A
nxn
= >
2.
nxn
A e A A =
3.
nxn
B A, B A B A + +
( ) 4 x 7 x 5 x 4 3 x
1 2
= = = =

,
|
|

\
|
|
|

\
|
=
7
3
4 2
2 1
A 7 A 6 A
1
= =


Tra le possibili norme che ci sono sulle matrici, ci interessano quelle che si combinano bene con le corri
spondenti norme vettoriali; cosa vuol dire?
y x xy = nel mondo delle matrici e dei vettori questo non pi vero se moltiplico posso dire che
x A Ax non sempre sposso dire se la norma che uso per questo vettore Ax uguale alla norma
30 marzo 2011 30 marzo 2011 30 marzo 2011 30 marzo 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


2 2 2 2
2 2 2 2

che uso per x se la corrispondente norma matriciale scelta in un certo modo una relazione che permet
te di dire tante cose.
Andare a capire quali sono le norme matriciali che mi permettono di avere gratis questa disuguaglianza
vale sono se prendo le norme in un certo modo.
( )
( )
( ) i s
A A A
a A
n
1 j
j i,
A
n
1 i
ij
A
max
a
max
a
max
n 1
T
2
n
n 1 j i
2
j i
F
n 1 i
n 1 j
1
=
=
=
=
=
=
=
=
=
=

, ,
, , ,
,
, ,
,...,
K
K
K

21
1
2
1
2
1
x A Ax


|
|

\
|
=
|
|

\
|
=
|
|

\
|
=
5 1
3
b
x
x
x
001 1 499 0
2 1
A
2
1
, , ,

b x
x A
Ax
b x
b


b
1
A
x
1 \

b
b
A A
x
x
1


F
A una norma matriciale ma non quella norma che mi permette di usare questo giochino ax <= ecc.
una norma che posso usare, si chiama norma di Frobenius ma non rientra in quella che posso usare per
la disuguaglianza.
Una matrice possiede n autovalori se prendete i valori assoluti di questi autovalori e ne prendete il massimo
quello il raggio raggio raggio raggio spettrale. spettrale. spettrale. spettrale.
Useremo la norma ogni volta che vogliamo quantificare una grandezza del vettore di una matrice e sap
piamo che possiamo usare questa relazione se scegliamo le norme matriciali in un certo modo.



SISTEMI LINEARI
Ax=b
lo possiamo scrivere in modo compatto in questo modo qui come matrice vettore delle incogni-
te uguale a vettore dei termini noti.
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 30 marzo 2011 30 marzo 2011 30 marzo 2011 30 marzo 2011


3 3 3 3
3 3 3 3
abbiamo chiuso con il teorema di Rouch capelli che dice cosa succede a seconda dei dati che
abbiamo adesso noi.
Esempio

=
=

= +
= +

=
=

= +
= +

=
=

= +
= +
2 1 x
2 x

4982 1 x 001 1 x 499 0
000 3 x 000 2 x 000 1
0 x
3 x

550 1 x 002 1 x 500 0
000 3 x 000 2 x 000 1
2 x
1 x

500 1 x 001 1 x 499 0
000 3 x 000 2 x 000 1
2
1
2 1
2 1
2
1
2 1
2 1
2
1
2 1
2 1
/ , , ,
, , ,
, , ,
, , ,
, , ,
, , ,

Errore inerente
|
|

\
|
=
|
|

\
|
=
2 x
1 x
x
001 1 499 0
2 1
A
, ,

3
3
1
10 5 1 b
10 3
001 3
A 3 b 3 A

= = = ,
,

|
|

\
|
=
|
|

\
|
=
5 0
1
x
0015 0
0
b
, ,

|
|

\
|

=
|
|

\
|

\
|

1 499 0
2 001 1
10 3
1
1 499 0
2 001 1
998 0 01 0
1
A
3
1
,
,
,
,
, ,

b
b
A A
x
x
1

stima dellerrore che mi aspetto sulla soluzione al limite anche uguale


5 1
3
10 5 1
10 3
001 3
3
x
x
3
3
,
, ,

mi aspetto un errore che minore uguale di circa 1,5


1 x
1 x
=
=


Abbiamo una soluzione in aritmetica esatta dopo di che abbiamo lasciato b uguale e abbiamo
perturbato alcuni dei coefficienti, di A abbiamo sporcato sulla terza cifra decimale alcuni dei
nostri coefficienti questa perturbazione dellordine della terza cifra decimale mi ha portato a so-
luzioni che differiscono a quelle del sistema di partenza dellordine delle unit -3 ordini di gran-
dezza-
Nel terzo caso ho lasciato a invariata e mi ha portato a soluzione esatta che differisce dal mio si-
stema delle ordine delle unit
Il tutto su un sistema due per due!
Sapendo in anticipo che accade questa cosa, ne dobbiamo tenere conto e adesso formalizziamo
quello che abbiamo visto che accade in un sistema due per due

Sistema lineare
Ax=b
(facciamo un po di conti sul terzo caso e poi vediamo
( ) b b x x A + = +
30 marzo 2011 30 marzo 2011 30 marzo 2011 30 marzo 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


4 4 4 4
4 4 4 4

b b x A Ax + = + sostituiamo Ax con b perch Ax = b e possiamo togliere i due b
b x A =
b A x A A
1 1
=

e questo uguale a
b A x
1
=


Vogliamo quantificare la nostra perturbazione x volgiamo una misura di quanto grande x in
funzione di quanto grande b A
1


Per poter quantificare la grandezza uso le funzioni di prima uso il concetto di norma
x quale norma? Non ci interessa qualsiasi norma va bene
b A b A x
1 1
=


b = Ax mi dice la norma di b uguale alla norma di Ax
||b||=||Ax|| <= ||A|| * ||x||
dividiamo per la nomra di b * la norma di x
Imgj..
mettiamo insieme a<= bc e \/c <= b/a
A <= b
C <= d
Allora ac>= bd
Ci fa arrivare a
Img

Delta x la perturbazione sulla soluzione la diff dovuta al fatto che sto usando un T.N. diverso

x
<= K(A)
b
risolviamo lesercizio
|| A ||
oo
= 3

.

La norma infinito di delta x 1
La norma infinito di x 1
Nel nostro caso la disuguaglianza verificata teroicamente mi si dice che mi devo aspettare
qualcosa di minore guale di 1.5 ed effettivamente 1 .
Errore relativo sulle soluzioni dellordine delle unit
Delta b la differenza che c tra il vettore originile e il vettore perturbato e (sottolineto doppio)
delta x la differenza che c tra la soluzione perturbata e la soluzione con il vettore origninale
(sottolineato una sola volta)

. Brugnano, C. Magherini, A. Sestini: Calcolo Numerico, Master - Universit & Professioni, 2005.

R.L. Burden, J.D. Faires: Numerical Analysis, Seventh Edition, Brooks/Code, Pacific Grove, 2001.

V. Comincioli: Analisi Numerica - Metodi Modelli Applicazioni, McGraw-Hill, Milano 1995.

P. Deuflhard, A. Hohmann: Numerical Analysis: A First Course in Scientific Computation, Walter de Gruyter,
Berlino, 1995.

D. Kincaid, W. Cheney: Numerical Analysis: Mathematics of Scientific Computing, 3rd Edition, Brooks/Code,
Pacific Grove, 2001.

A. Quarteroni, R. Sacco, F. Saleri: Matematica Numerica (3a edizione), Springer, 2008.


Ax = b
A(x + delta x ) = b delta b
|| delta || <= || A || || A -1 || || delta b ||
---------- ------
|| x || || b ||
sempre positivo ma sepre maggiore di uno
1 = || I || la norma della matrice identica sempre uno per definizione la matrie identica la scrivo
come || A * A-1 || <= || A || * || A -1||
uno nel migliore dei casi abbiamo uno quando abbniamo delle matrici perfettamente condizionate
ci dice he l'err sui dati non si potr ridurre
se io ho una matrice tranquilla
se la norma piccola tutti gli elementi soni piccoli se la norma grande c' n almeno uno che
grande?

Matrice singolare

format long
for n = 5 : 15
fprintf('************\n');
fprintf('matrice randome di ornine %i \n ', n );
A = rand (n );
% fprint f ('Marice di Hilbert di ordine %i\n', n);
% A=hilb(n);
num_cond = norm(A) * norm ( inv(A))
prende una matri9ce e se si pu calcola l'inverso
sinuliamo un sistema linare
ci siamo costruiti la mat dei coefficient A e cerchiamo di fare l'insieme delle soluzione x calcolo
come viene il b corrispondente e poi da a e da b cerchiao di ricostruire il vettore tutti uno
fprinf()
x = ones(n,1);
b= A*x;
deltab = 1e-10*rand(n,1);
x_pert = A\(b + deltab);
disp ('Soluzioni (dati estatti dati perturbati ):');
dips([x x_pet]);
err = norm ( x_pert -x ) / norm(x);
fprintf('Errore: %e \n', err);
pause
end

K(A)
Permette di visualizzare su schermo sia una
stringa sia una variabile numerica
Funzine norm:
Si applica a matrici o a vettori per le matrici se
mettiamo solo norm (x) come se scriverst di default
norm(x,2) vi restituisce la norma due
Se volete la norma 1 dovete specificare 1
Infinito inf
Norma di frobenius 'fro'


si parte da una matrice random 5 x 5 e poi ci sono i due vettori uno esatto e uno perturbato.

Costruire 4 function che risolvono questi problemi
trovare max e min tra 3 valori a, b, c
ordinare in modo crescente 3 valori a, b, c
trovare max e min di un vettore v
ordinare in modo crescente un vettore v

password: CNMP2011
Calcolo Numerico
1 aprile 2011

1 1 1 1
A=nxn matrice A di dimensioni nxn, non singolare cio la soluzione esiste ed unica: o c
o non c.
Ax=b sistema lineare che ha soluzione x=A
-1
b
Matrice inversa A
-1
. Come si calcola?
Si calcola prendendo la trasposta della matrice dei complementi algebrici (At) fratto i determi-
nanti dove il determinante la matrice che ottengo eliminando riga e colonna su quellelemento.
quindi su una matrice quadrata nxn quanti determinanti devo calcolare?
|
|
|

\
|
n , n 1 , n
n , 1 1 , 1
a a
a a
L
M O M
L
Ho n
2
determinanti di sottomatrici (n-1)x(n-1)
1 2 ) 2 n )( 1 n ( n
2
K
Devo calcolare tanti determinati di matrici 3x3 che a sua volta si scaricano sulle due per due e un
determinante di una matrice due per due richiede due moltiplicazioni. Un determinante di una
matrice 3x3 mi richiede lesecuzione di 3 determinanti 2x2 quindi sei.
Per calcolare nxn so calcolare nxn so calcolare nxn so calcolare nxn sono necessarie n! moltiplicazioni no necessarie n! moltiplicazioni no necessarie n! moltiplicazioni no necessarie n! moltiplicazioni. (in verit richiede qualche moltiplica-
zione in pi ma quelle non pesano, possono essere trascurate.)
Il calcolo dellinversa richiede n
2
determinanti di matrice (n-1)x(n-1) ognuna delle quali richiede
(n-1) moltiplicazioni. Quindi
) ! n ( n )! 1 n ( n
2

Questo algoritmo pessimo dal punto di visto computazionale (150 anni!).
Ci sono degli algoritmi pi efficienti per ottenere la soluzione senza passare attraverso il calcolo
esplicito di A
-1
.
Un sistema lineare Ax = b possiede una matrice dei coefficienti con particolari strutture e/o pro-
priet, che ne rendono molto semplice la risoluzione. Questo accade ad esempio quando la ma-
trice dei coefficienti e diagonale, triangolare o ortogonale.
SISTEMA SISTEMA SISTEMA SISTEMA DIAGONALE DIAGONALE DIAGONALE DIAGONALE
il caso pi semplice
a
ii
=0 i=1, ,n
In una matrice diagonale ci potrebbero essere degli zeri sulla diago-
nale, ma dato che nel nostro caso una matrice non singolare la dia-
gonale non deve contiene zeri altrimenti il determinante sarebbe ze-
ro.
soluzione del sistema:






i , i i i
a b x
n , , 1 i
=
= K
pseudocodice
function x = diago (A, b)
n=lungh (b);
x=zeros(n, 1)
for i=1 n
x(i)=b(i)/A(i,i);
and
SISTEMI LINEARI
|
|
|
|
|

\
|
=
n , n
2 , 2
1 , 1
a 0 0
0
a 0
0 0 a
A
L
O M
M
L

=
=
=
n n nn
2 2 22
1 1 11
b x a
b x a
b x a
M O
|
|
|

\
|
=
|
|
|

\
|
n
1
n
1
b
b
x
x
A M M
Calcolo Numerico
1 aprile 2011

2 2 2 2
Implemento un ciclo for. Il calcolo dellinversa nella matrice diagonale abbastanza semplice
semplicemente la matrice diagonale dove metto gli elementi diagonali al denominatore.
Il costo computazionale di questo al Il costo computazionale di questo al Il costo computazionale di questo al Il costo computazionale di questo alg gg goritmo di n operazioni moltiplicative oritmo di n operazioni moltiplicative oritmo di n operazioni moltiplicative oritmo di n operazioni moltiplicative. . . .
SISTEMA SISTEMA SISTEMA SISTEMA TRIANGOLARE TRIANGOLARE TRIANGOLARE TRIANGOLARE
Il secondo caso pi semplice che ci possiamo trovare.
matrice triangolare inferiore
non vuol dire che non ci siano zeri nella parte inferiore.
a
ii
=0 i<j
a
ii
0 i=1, , n


sistema triangolare inferiore




matrice triangolare superiore

a
ii
=0 i>j
a
ij
0 i=1, , n

sistema triangolare superiore



Il determinante di una matrice triangolare sempre il prodotto della diagonale.
Proviamo a risolvere il sistema con il metodo della SOSTITUZIONE in avanti (in avanti perch
partiamo dalla prima e arriviamo fino allultimo.) :
Risolviamo il sistema partendo dallalto verso il passo:
3 , 3 2 2 , 3 1 1 , 3 3 3
2 , 2 1 1 , 2 2 2
i , i i 1
a ) x a x a b ( x
a ) x a b ( x
a b x
=
=
=

Generica equazione del sistema:
i i i , i 1 i 1 i , i 2 2 , 1 1 1 , 1
b x a x a x a x a = + + + +

K
Ho gi trovato gli (x-i) dai passi precedenti e devo trovare lultimo termine.
i , i
1 i 1 i , i 2 2 , 1 1 1 , 1 i
i , i
i i , i
a
x a x a x a b
a
x a


=
K

Algoritmo per determinare la soluzione di un sistema lineare quando la matrice triangolare in-
feriore:
i , i
1 i
1 j
j j , i i i
a x a b x
n , , 1 i
|
|

\
|
=
=

=
K

|
|
|
|
|
|

\
|
=
n , n 3 , n 2 , n 1 , n
3 , 3
2 , 2 1 , 2
1 , 1
a a a a
0
a
a a
0 0 a
A
L
O M
M M
M
L L
|
|
|
|
|
|

\
|
=

n , n
n , 1 n 1 n , 1 n
2 , n 2 , 2
n , 1 1 n , 1 2 , 1 1 , 1
a 0 0
a a
a a 0
a a a a
A
L L
M
M O M
L

= + + +
= +
=
n n n , n 2 2 , n 1 1 , n
2 2 2 , 2 1 1 , 2
1 1 1 , 1
b x a x a x a
b x a x a
b x a
K
M O M M

=
= + + +
= + + +
n n n , n
2 n n , 2 2 2 , 2
1 n n , 1 2 2 , 1 1 1 , 1
b x a
b x a x a
b x a x a x a
M M O
K
K
Calcolo Numerico
1 aprile 2011

3 3 3 3
Andiamo a contare le moltiplicazione e divisioni:
Per calcolare: sono necessarie tot divisioni
x
1


11 1 1
a / b x = 1
x
2

( )
22 1 21 2 2
a / x a b x = 2
x
3


( )
22 2 31 1 21 2 3
a / x a x a b x =
3
... ... ...
x
n


nn
1 n
1 j
j ij n n
a x a b x
|
|

\
|
=

=
n
In totale abbiamo n-1 termini da moltiplicare e la mia divisione finale fratto a
n,n


Si osserva che: dove la formula per calcolare la
somma dei primi n numeri naturali.
|
|

\
|
= =
2
n
2
n
2
n
2 2
Il costo computazionale dellalgoritmo dellordine di grandezza n2
Per le matrici triangolari superiori la stessa cosa.
x
1


1 , 1
n
2 j
j j 2 n 1
a x a b x
|
|

\
|
=

=
n
... ... ...
X
n-2


( )
2 n , 2 n n n , 2 n 1 n 1 n , 2 n 2 n 2 n
a x a x a b x

=
3
x
n-1


( )
1 n , 1 n n n , 1 n 1 n 1 n
a x a b x

=
2
x
n


nn n n
a b x =
1
Algoritmo per determinare la soluzione di un sistema lineare quando la matrice triangolare in-
feriore:

i , i
n
1 i j
j j , i i
i
a
x a b
x
1 ,...., n i

+ =

=
=

non cambia niente dal punto di vista computazionale perch fa solo il contrario
SISTEMA ORTOGONALE SISTEMA ORTOGONALE SISTEMA ORTOGONALE SISTEMA ORTOGONALE
La MATRICE ORTOGANLE la matrice trasposta uguale alla matrice inversa:
A
-1
= A
t
ovvero A
t
A=I (I= matrice identica)
lunico caso in cui risolveremo il sistema lineare usando la formula x=A
-1
b = A
t
b
Costo computazionale: n
2

2
n
2
) 1 n ( n
n 2 1
2

+
= + + + K
2
) 1 n ( n +
Calcolo Numerico
1 aprile 2011

4 4 4 4

Metodi di fattorizzazione
Le matrici generiche non sono cos semplici ma ci possiamo ricondurre ai casi semplici.
Supponiamo che la matrice A si possa scrivere in questo modo:
3 2 1
F F F A =
dove
3 2 1
F F F possono essere delle matrici diagonali, triangolari o ortogonali
e non necessariamente lo stesso tipo.
Allora possiamo scrivere la sua scrittura alternativa :
b x F F F
3 2 1
=
x F F
3 2
lo chiamiamo z zz z
b z F
1
=
Una volta trovato z chiamiamo: y x F
3
= ora ci possiamo calcolare y risolvendo un sistema faci-
le.
b x F F F
3 2 1
= conosciamo sia F
1
e conosciamo y perch il termine noto b del nostro siste-
ma (limportante che riusciamo a risolvere in maniera rapida il sistema).
Il giochino funziona se il prodotto di A piccolo allora riesco a risolvere in 2/3 sistemi semplici.
Ma devo anzitutto essere in grado di scrivere
3 2 1
F F F A = e lalgoritmo non deve costare trop-
po. Se riesco a fattorizzare la matrice A in un prodotto di matrici semplici allora riesco a risolvere
in modo semplice il sistema.
Metodo di Cramer
Esempio di sistema:
) A det(
36 2 1
34 3 2
39 2 3
det
x
) A det(
3 36 1
1 34 2
1 39 3
det
x
) A det(
3 2 36
1 3 34
1 2 39
det
x
3 2 1
|
|
|

\
|
=
|
|
|

\
|
=
|
|
|

\
|
=
Il metodo della sostituzione
buono ma non va bene per il calcolatore perch non riesce a vedere qual la strada pi sempli-
ce. Lalgoritmo Cramer non sta a vedere se ci sono o non ci sono incognite ma ci sono i deter-
minanti da fare e non semplice dal punto di vista computazionale.
Eliminazione di Gauss (o riduzione)
il metodo che sta alla base della nostro algoritmo per la risoluzione dei sistemi lineari.Possiamo
invertire lordine, moltiplicare per una costante oppure posso sommare due equazioni. Linsieme
delle equazioni non cambia. Eseguiamo ripetutamene delle operazioni di riduzioni allo scopo di
trasformare questo sistema lineare in sistema lineare tiangolare superiore.

= + +
= + +
= + +

26 x 3 x 2 x
34 x x 3 x 2
39 x x 2 x 3
3
1
3
2
3 2 1
3 2 1
3 2 1

( )
8 x
3
1
x
3
5
34 x x 3 x 2
39 x x 2 x 3
3
2
3 2
3 2 1
3 2 1
= +
= + +
= + +

( )
13 x
3
2
x
3
4
34 x 3 x x
39 x x 2 x 3
3
1
3 2
3 2 1
3 2 1
= +
= + +
= + +

= + +
= + +
= + +
13 x
3
8
x
3
4
0
8 x
3
1
x
3
5
0
39 x x 2 x 3
3 2
3 2
3 2 1

5
33
x
5
12
0
13 x
3
2
x
3
4
0
8 x
3
1
x
3
5
0
5
4
3
3 2
3 2
= +
= + +
|

\
|
= + +

= + +
= + +
= + +
5
33
x
5
12
0 0
8 x
3
1
x
3
5
0
39 x x 2 x 3
3
3 2
3 2 1

= + +
= + +
= + +
36 x 3 x 2 x
34 x x 3 x 2
39 x x 2 x 3
3 2 1
3 2 1
3 2 1
CASO GENERALE

Calcolo Numerico
8 aprile 2011

1 1 1 1
[ ]

=
n n , n 1 , n 1 , n
3 n , 3 2 , 3 1 , 3
2 n , 2 2 , 2 1 , 2
1 n , 1 2 , 1 1 , 1
b a a a
b a a a
b a a a
b a a a
b , A
K
M M M M
K
K
K

Riepilogo:
Abbiamo visto degli algoritmi semplici per risolvere matrici particolari (diagonali, ortogonali,
triangolari inferiori e superiori) semplici da calcolare, poi siamo passati al caso pi generale e,
attraverso i metodi di fattorizzazione, abbiamo cercato di scrivere la matrice A come prodotto di
matrici semplici dopo di che la risoluzione del sistema si risolve mediante un numero ridotto di
sistemi lineari di quegli semplici. Il metodo di fattorizzazione pi famoso quello di Gauss che
prevede la trasformazione del sistema lineare in un sistema triangolare superiore. Abbiamo visto
lesempio del sistema 3x3 e adesso vogliamo vederlo nel caso generico.
La filosofia di prendere la matrice, quindi il sistema lineare corrispondente, e le operazioni di
riduzione che laltra volta abbiamo fatto sulle equazioni ora dobbiamo farle sulla matrice. L Le e o op pe e- -
r ra az zi io on ni i d di i r ri id du uz zi io on ne e l le e f fa ac cc ci ia am mo o i in n o or rd di in ne e non possiamo pi vedere quel la soluzione migliore
perch il calcolatore non sa individuarla di conseguenza andiamo in ordine partendo dalla pri-
ma colonna, mettendo degli zeri sotto il primo elemento, come se avessi fatto n-1 riduzioni, per
poi passare alla seconda colonna e cos via fino allultimo elemento.
Qual quel coefficiente che moltiplicato per la prima riga e sommato con la seconda fa in odo
che a
21
si annulli? Il numeretto magico che serve
1 , 1
1 , 2
a
a
loperazione che mi fa venire uno ze-
ro la sostituzione della seconda riga con la somma di quella pi questo coefficiente moltiplica-
to per la prima riga.
Se noi volessimo scrivere questa operazione avremo per tutti i coefficienti i nuovi elementi che
andranno nella seconda riga:
n , , 2 j a
a
a
a a
j , i
1 , 1
1 , 2
j , 2
) 2 (
j , 2
K =

+ =
Il vecchio elemento di posto
2,j
pi il moltiplicatore per lelemento di colonna j che sta per sulla
prima riga e lo facciamo da 2 fino ad n perch sappiamo gi che nel primo ci andr zero.
Anche la b dovr assumere lo stesso tragga mento
1
1 , 1
1 , 2
2
) 2 (
2
b
a
a
b b =
Se vogliamo a fare lo stesso discorso per annullare a
31
devo fare la sessa cosa:
n , , 2 j a
a
a
a a
j , i
1 , 1
1 , 3
j , 3
) 2 (
j , 3
K = =
1
1 , 1
1 , 3
3
) 2 (
3
b
a
a
b b =
manca ancora un passo di generalizzazione: se al posto della riga fissata ci metto la generica riga
i allora la formula diventa:
espressione generica che dice come cambiano questi ele-
menti * mettendo zeri nella prima colonna
*
n , , 2 i
n , , 2 j
a
a
a
a a
) 1 (
j , i ) 1 (
1 , 1
) 1 (
1 , i ) 1 (
j , i
) 2 (
j , i
K
K
=
=
=
Calcolo Numerico
8 aprile 2011

2 2 2 2
alla fine dei cicli ho una matrice fatta cos

) 2 (
n
) 2 (
n , n
) 2 (
3 , n
) 2 (
2 , n
) 2 (
3 , 4
) 2 (
2 , 4
) 2 (
3 , 3
) 2 (
2 , 3
) 2 (
2
) 2 (
n , 2
) 2 (
3 , 2
) 2 (
2 , 2
1 n , 1
) 2 (
3 , 1 2 , 1 1 , 1
b a a a 0
a a
a a
b a a a 0
b a a a a
L
M M M M M
M M M
M M M
L
L

A questa matrice non ci posso arrivare se a
11
zero in partenza. Quindi questo vale sempre se
0 a
1 , 1

Poi nel secondo passo cerchiamo di mettere a posto la seconda incognita. Allora la prima sem-
pre fissa e adesso la lasciamo invariata nella seconda e la usiamo per mettere degli zeri in tutti gli
elementi:
Dopo di che la prima cosa da fare andare a mettere uno zero nella posizione
2 , 2
2 , 3
a
a

quindi quelli con lapice
(2)
sono i vecchi e qulli con lapice
(3)
sono i nuovi
n , , 3 j b
a
a
b b a
a
a
a a
) 2 (
2 ) 2 (
2 , 2
) 2 (
1 , 3
3
) 3 (
3
) 2 (
j , 2 ) 2 (
2 , 2
) 2 (
2 , 3 ) 2 (
j , 3
) 3 (
j , 3
K = = =
n , , 3 j b
a
a
b b a
a
a
a a
) 2 (
2 ) 2 (
2 , 2
) 2 (
1 , 4
4
) 3 (
4
) 2 (
j , 2 ) 2 (
2 , 2
) 2 (
2 , 4 ) 2 (
j , 4
) 3 (
j , 4
K = = =
n , , 3 i
n , , 3 j
b
a
a
b b a
a
a
a a
) 2 (
2 ) 2 (
2 , 2
) 2 (
1 , i
i
) 3 (
i
) 2 (
j , 2 ) 2 (
2 , 2
) 2 (
2 , i ) 2 (
j , i
) 3 (
j , i
K
K
=
=
= =

) 3 (
n
) 3 (
n , n
) 3 (
3 , n
) 3 (
3
) 3 (
n , 3
) 3 (
3 , 3
) 2 (
2
) 2 (
n , 2 2 , 2
1 n , 1 2 , 1 1 , 1
b a a 0 0
b a a 0
b a a 0
b a a a
il giochino si rompe se 0 a
) 2 (
2 , 2
(diverso)
Osservazione: supponete di avere una matrice grande, una 100x100 ad esempio, ed innescate il
vostro metodo di Gauss al passo 93 lelemento pivot a
93,93
=0. abbastanza seccante perch
lelemento uguale a zero e tutto lo sforzo fatto non servito a niente. Per questo motivo sareb-
be bello sapere subito se in uno dei 100 passi avr dei problemi, se ci sar una condizione simile
a 0 a
1 , 1
= 0 a
) 2 (
2 , 2
= , con un metodo che per coinvolga solo gli elementi della mia matrice origina-
ria.
Avete: la scrittura
) 2 (
j , i
a dellaggiornamento degli elementi della matrice A al passo 1. Al passo due
a
ij
(3)
sono le operazioni da fare. Ora riusciamo ad estrapolare quali sono le operazioni al passo k
generico.
Al generico passo k dovremmo andare a scrivere qual il generico nuovo elemento di posto ij
nuovo vuol dire k+1.

n-1 perch lultimo elemento n sulla diagonale e mi va
bene

n ,..., 1 k j
n ,..., 1 k i
1 n ,..., 1 k
a
a
a
a a
) k (
j , k ) k (
k , k
) k (
k , i ) k (
j , i
) 1 k (
j , i
+ =
+ =
=
=
+
n ,..., 1 i b
a
a
b b
) k (
j , k ) k (
k , k
) k (
k , i ) k (
j , i
) 1 k (
i
= =
+
Calcolo Numerico
8 aprile 2011

3 3 3 3
for k=1 : n-1
for i=n+1 : n
m(i,k) = a(i,k) / a(k,k);
for j=k+1 : n
a(i,j)=a(i,j)-m(i,k)a(k,j);
end
b(i)=b(i)-m(i,k)*b(k);
end
end
Nota: abbiamo spazio nella parte inferiore della matrice e quindi possiamo andare a metterci i
risultati dei moltiplicatori quindi sostituiamo ad m a
Sono rimaste un paio di questioni in sospeso: questo metodo non si applica a qualsiasi matrice
non singolare perch ha una condizione.
-> cosa centra questo con i metodi di fattorizzazione?
Vediamo come il metodo dellottimizzazione di Gauss pu portare alla fattorizzazione. Viene
fuori osservando che la matrice [A
(2)
b
(2)
] venuta fuori dopo il primo passo di Gauss
la nuova matrice:
[A
(2)
, b
(2)
]=

n n , n 2 , n 1 , n
2 n , 2 2 , 2 1 , 2
1 n , 1 2 , 1 1 , 1
2 , n
2 , 1
) 2 (
n
) 2 (
n , n
) 2 (
3 , n
) 2 (
2 , n
) 2 (
3 , 4
) 2 (
2 , 4
) 2 (
3 , 3
) 2 (
2 , 3
) 2 (
2
) 2 (
n , 2
) 2 (
3 , 2
) 2 (
2 , 2
1 n , 1
) 2 (
3 , 1 2 , 1 1 , 1
b a a a
b a a a
b a a a
1 0 0 m
0 1
0
1 m
0 0 1
b a a a 0
a a
a a
b a a a 0
b a a a a
L L
M M M M
M M M M
M M M M
L L
L L
L L
O M M
M O O O M M
M O O M
M O
L L L
L
M M M M M
M M M
M M M
L
L
=
=L
1
[Ab] L
1
0 a a
a
a
a 1 a m
1 , 2 1 , 1
1 , 1
1 , 2
1 , 2 1 , 1 1 , 2
= + = +
La matrice L
1
, per la matrice di partenza, una matrice triangolare inferiore dove gli elementi
della diagonale sono tutti uguali a uno e gli altri elementi diversi da zero sono solo quelli della
prima colonna e sono i moltiplicatori m
i,1
=a
i,1
/a
1,1

Moltiplicando L
1
per questi ottengo leffetto di annullare la prima colonna a partire dal secondo
elemento e aggiornare gli altri elementi della matrice, infatti la trasformazione elementare di
Gauss annulla tutti gli elementi tranne uno: il pivot che nel primo caso corrisponde allelemento
a
1,1
.
Nella generica operazione elementare di Gauss sar una matrice quadra triangolare inferiore
con gli elementi della diagonale uguale a 1 dove sotto ci saranno tutti zeri tranne nella colonna
dove ci saranno tutti i coefficienti moltiplicatori.
Questo mi aiuta a vedere il metodo di Gauss come un metodo di fattorizzazione perch si parte
dal primo passo:
[a
(2)
b
(2)
]=L
1
[a
(1)
b
(1)
]
[a
(3)
b
(3)
]=L
2
[a
(2)
b
(2)
]
[ ]
) 2 ( ) 2 (
2
) 2 (
n
) 2 (
n , n
) 2 (
3 , n
) 2 (
2 , n
) 2 (
3 , 3
) 2 (
2 , 3
) 2 (
2
) 2 (
n , 2
) 2 (
3 , 2
) 2 (
2 , 2
1 n , 1
) 2 (
3 , 1 2 , 1 1 , 1
2 , n
2 , 3
) 3 (
n
) 3 (
n , n
) 3 (
3 , n
) 3 (
3
) 3 (
n , 3
) 3 (
3 , 3
) 2 (
2
) 2 (
n , 2 2 , 2
1 n , 1 2 , 1 1 , 1
b A L
b a a a 0
a a
b a a a 0
b a a a a
1 0 m 0
0 1
m
1 0
0 0 1
b a a 0 0
b a a 0
b a a 0
b a a a
=

L
M M M
M M M
L
L
L
O M M
M O O M
M O
L L

Calcolo Numerico
8 aprile 2011

4 4 4 4
=L
2
L
1
[a b]
[a
(n)
b
(n)
]=L
n-1
L
2
L
1
[a b]
Se noi chiamiamo A
(n)
U (sta per upper la triangolare superiore)
U=L
n-1
L
n-2
...L
2
L
1
adesso portiamo tutte le L a sinistra ed iniziamo a moltiplicare a sinistra en-
trambi i membri per linversa di L
n-1
-1

A U L .... L L
A L ... L L L
A L ... L L U L
1
1 n
1
2
1
1
1 3 n
1
1 n
1
2 n
1 3 n 2 n
1
1 n
=
=
=


Linversa di una matrice triangolare inferiore ancora una matrice triangolare inferiore
Il prodotto di matrice triangolari inferiore una matrice triangolare inferiore
Ho il prodotto di n-1 matrici triangolari inferiore e questo a sua volta ancora una matrice tri-
angolare inferiore quindi possiamo chiamarlo:
LU=A quindi
L fata cos:

1 m m m
0 1
0 m
1 m
0 0 1
L
1 n , n 2 , n 1 , n
2 , 3
1 , 2
L
O M M
M O M
M O
L L

= A
la matrice che raccoglie tutti i moltiplicatori e c la ritroviamo esattamente nella triangolare
inferiore di A.


L
L

U
U

Calcolo Numerico
13 aprile 2011

1 1 1 1
A=
|
|
|

\
|
n , n 1 , n
n , 1 1 , 1
a a
a a
L
M O M
L
=
|
|
|
|
|
|

\
|

1 m m
0
1 m
0 0 1
1 n , n 1 n
21
L L
O O M
M O O O M
M O
L L
|
|
|
|
|
|

\
|

n , n
n , 1 n 1 n , 1 n
2 , n 2 , 2
n , 1 1 n , 1 2 , 1 1 , 1
a 0 0
a a
a a 0
a a a a
L L
M
M O M
L

L U
Ax=b
for k=1 n=1
for i=k+1: n
A (i, k) =A (i, k)/A (n, k);
for j=k+1: n
A (i, j) =A (i, j)-A (i, k)*A (k, j);
[b (i) = (bi)-A (i, k)*b (k);] lo trascuriamo perch il b
che viene fuori y la
risoluzione del sistema
lineare Ly=b
end
end
La fattorizzazione ci permette di risolvere il sistema Ax = b sostituendo L con U LUx = b diven-
ta cos un sistema lineare triangolare inferiore e possiamo risolvere con il metodo di sostituzione
in avanti.

=
=
y Ux
b Ly

Quanto costa fattorizzare LU.
Trascuriamo b e andiamo a veder quante moltiplicazioni dobbiamo fare per fattorizzare A.
Passo 1 Quando k= 1 noi abbiamo un ciclo per i che va da 2 fino a n in cui la prima operazio-
ne che facciamo il calcolo dei moltiplicatori, quindi il calcolo degli m, che sono n-1
e richiedono una divisione. Ho sicuramente n-1 divisioni alla terza riga.
Dopo di che manca laggiornamento della parte restante della matrice. Gli elementi
che devo aggiornare sono (n-1)2 ogni aggiornamento richiede 1 operazione molti-
plicativa.
n-1 + 1 (n-1)2
Passo 2 Avremo un moltiplicatore in meno perch il ciclo andr da 3 a n e dovremo aggior-
nare (n-2)2 elementi.
n-2 + 1 (n-2)2
...
Passo n-1. Dovr calcolare un solo moltiplicatore e lunico elemento che rimane da aggiornare
nn.
1 + 1* (1)
2


6
) 1 n 2 )( 1 n ( n
2
) 1 n (
+


|
|

\
|
= + + + =
3
n
6
n
3
n
6
n
3
n
2
1
2
n
3 2 2 3

Calcolo Numerico
13 aprile 2011

2 2 2 2
Abbiamo un sistema lineare generico che volgiamo risolvere con un metodo delleliminazione di
Gauss mi costa
|
|

\
|

3
n
3
:
|
|

\
|

3
n
2
per calcolare il vettore y a partire da Ly=b e
|
|

\
|

3
n
3
per calcolare
Ux=y siamo migliorati rispetto al fattoriale .
C rimasto in sospeso: possiamo riprendere il discorso sulle limitazioni della riduzione elemen-
tare di Gauss. Ogni volta dovevamo mettere delle condizioni
Ci sono ancora per delle condizioni necessarie:
0 a
0 a
0 a
) 1 n (
1 n , 1 n
) 2 (
22
11


M

Lelemento che si trova in posizione a
22
al passo 2 deve essere diverso da zero, in sostanza i p i p i p i pi- i- i- i-
vot vot vot vot devono devono devono devono esser diversi da zero esser diversi da zero esser diversi da zero esser diversi da zero.
Come si fa a capire se a partire alla matrice di partenza il metodo di gauss incontrer qualche
problema senza scoprirlo alla fine.
Se vedo che a
11
zero allora incontra problemi il metodo di gauss gi allinizio
|
|
|
|
|
|

\
|
|
|
|
|
|
|

\
|

=
|
|
|
|
|
|

\
|
M M
M M
M M
L L L
L L L
L M
O O M M
M O O M
M O
L L
M M
M M
M M
L L L
L L L
22 21
12 11
21 22 21
12 11
a a
a a
1 0 0
0
0
1 m
0 0 1
a a
a a

L
1
A
il procedimento di riduzione di gauss.
Siccome io sto facendo il prodotto di una matrice triangolare inferiore con una matrice generica,
allora posso scrivere
|
|

\
|
|
|

\
|

=
|
|

\
|
22 21
12 11
21 22 21
12 11
a a
a a
1 m
0 1
a a
a a

Perch gli elementi a destra sono tutti nulli che vanno a eliminare gli elementi sotto.
|
|

\
|
|
|

\
|

=
|
|

\
|
22 21
12 11
21 22 21
12 11
a a
a a
det
1 m
0 1
det
a a
a a
det
Il determinante uguale al prodotto tra il pivot del passo 1 per
il pivot al passo 2 se siamo arrivati al passo 2, vuol dire che a
11

era gi diverso da zero. Allora vuol dire che:
0 a
) 2 (
22
se 0
a a
a a
det
22 21
12 11

|
|

\
|

|
|
|

\
|
=
33
22
11
) 3 (
33
) 2 (
22 11
a
a
a
det a a a Andando avanti siccome 0 a
11
e 0 a
) 2 (
22
, allora il terzo pivot
diverso da zero se il determinante della sottomatrice originaria di ordine 3 diverso da zero.



( )
|
|

\
|
=
22 21
12 11
22 11
a a
a a
det 1 1 a a
Calcolo Numerico
13 aprile 2011

3 3 3 3
una propriet:
Se A una matrice nxn avente, minori principali di ordine 1, ..., n-1 non nulli, allora esiste L tri-
angolare inferiore con elementi diagonali uguali a 1 e una matrice U triangolare inferiore t. c. A =
LU
Si arriva a dimostrare che se noi abbiamo una matrice quadrata nxn con minori (determinante di
sottomatrice) principali di ordine 1... n-1 allora esisteranno --- def sopra se la matrice di coeffi-
cienti soddisfa questa propriet il metodo di Gauss non incontrer problemi durante la sua ese-
cuzione.
Inoltre, se A non singolare, allora la fattorizzazione LU unica
Dimostrazione:
Supponiamo che riusciamo a scrivere la matrice A anche come LU e LU U L LU A = = Allo-
ra possiamo moltiplicare a sinistra per entrambi i membri per ( )
1
L

, e la stessa cosa per U posso
moltiplicare a destra per linversa di U per entrambi i membri ( ) ( )
1 1
U U L L

=
Ma si detto che linversa di una matrice triangolare inferiore ancora una matrice triangolare
inferiore si fa vedere facilmente che linversa di una matrice triangolare inferiore con diagonale
1 linversa ancora matrice triangolare inferiore con diagonale uguale 1

Quindi (L)
-1
L = una cosa fatta cos:
ho il prodotto di due matrici trian-
golari superiore U U
-1



U U
-1
I matrice identica I matrice identica I matrice identica I matrice identica
Lunica possibilit per cui queste due matrici siano uguali che siano uguali alla matrice identi-
ca allora L deve essere per forza uguale a L
( ) I L L L L
1
=

e cos vale anche per U
RIASSUNTO: abbiamo scritto un metodo di risoluzione di sistemi quasi generici, non siamo an-
cori arrivati alla matrice nxn non singolare, ma adesso sappiamo risolvere una matrice ortogo-
nale, triangolare e generiche nxn ma tutti i minori devono essere diversi da zero, il che co-
munque una condizione.
Tutti i minori principali sulla matrice A sono diversi da zero, ma se per verificarlo dobbiamo cal-
colare n determinanti, abbiamo perso il vantaggio di utilizzare il metodo di Gauss. Per c cc c c cc ci ii i i ii i s ss s s ss so oo o o oo on nn n n nn no oo o o oo o
d dd d d dd de ee e e ee el ll l l ll ll ll l l ll le ee e e ee e t tt t t tt ti ii i i ii ip pp p p pp po oo o o oo ol ll l l ll lo oo o o oo og gg g g gg gi ii i i ii ie ee e e ee e d dd d d dd di ii i i ii i m mm m m mm ma aa a a aa at tt t t tt tr rr r r rr ri ii i i ii ic cc c c cc ci ii i i ii i p pp p p pp pe ee e e ee er rr r r rr r c cc c c cc cu uu u u uu ui ii i i ii i g gg g g gg ga aa a a aa ar rr r r rr ra aa a a aa an nn n n nn nt tt t t tt ti ii i i ii it tt t t tt ta aa a a aa a e ee e e ee es ss s s ss ss ss s s ss se ee e e ee er rr r r rr re ee e e ee e v vv v v vv ve ee e e ee er rr r r rr ri ii i i ii if ff f f ff fi ii i i ii ic cc c c cc ca aa a a aa at tt t t tt ta aa a a aa a q qq q q qq qu uu u u uu ue ee e e ee el ll l l ll ll ll l l ll la aa a a aa a c cc c c cc co oo o o oo on nn n n nn nd dd d d dd di ii i i ii iz zz z z zz zi ii i i ii io oo o o oo on nn n n nn ne ee e e ee e, , ne vediamo
due, ci non vuol dire che sono le uniche matrici per cui il metodo di Gauss arriva fino in fondo.
MATRICE DIAGONALE DOMINATE
Si dividono in:
matrice diagonale dominante p pp p p pp pe ee e e ee er rr r r rr r r rr r r rr ri ii i i ii ig gg g g gg gh hh h h hh he ee e e ee e se n , , 1 i a a
n
i j
1 j
ij ii
K =

=

se n , , 1 i a a
n
i j
1 j
ij ii
K = >

=
si dice che maggiore strettamente



|
|
|
|
|
|

\
|
=
|
|
|
|
|
|

\
|
|
|
|
|
|
|

\
|
1 0 0
0
1 0
0 0 1
1 0 0
1 0
1
1
0
1
0 0 1
L L
O O M
M O O O M
M O
L L
L L
O O M
M O O O M
M O
L L
L L
O O M
M O O O M
M O
L L

p
ppi
ii
g
ggr
rra
aan
nnd
dde
ee d
ddi
ii
p pi i g gr ra an nd de e d de el ll la a s so om mm ma a
p pi i g gr ra an nd de e d de el ll la a s so om mm ma a
|
|
|

\
|

10 2 7
2 3 0
1 3 4
Calcolo Numerico
13 aprile 2011

4 4 4 4

matrice diagonale dominante p pp p p pp pe ee e e ee er rr r r rr r c cc c c cc co oo o o oo ol ll l l ll lo oo o o oo on nn n n nn nn nn n n nn ne ee e e ee e se n , , 1 j a a
n
j i
1 i
ij jj
K =

=

S Se e a ab bb bi ia am mo o u un na a m ma at tr ri ic ce e s st tr re et tt ta am me en nt te e d di ia ag go on na al le e d do om mi in na an nt te e a al ll lo or ra a t tu ut tt ti i i i m mi in no or ri i d di ia ag go on na al li i d do om mi i- -
n na an nt ti i s so on no o d di iv ve er rs si i d da a z ze er ro o quindi Gauss arriva in fondo senza problemi ed facile da verificare
perch devo fare solo somme
MATRICI DEFINITE
Definizione:
Si dice definita positiva se x
t
Ax>0 per ogni x 0
Se voi prendete un vettore che non sia un vettore nullo e ne fatte un vettore trasposto se vi viene
sempre un numero positivo allora la matrice positiva, se invece viene sempre negativo allora la
matrice si dice negativa. A noi quello che quello che quello che quello che interessa interessa interessa interessa che sia diverso da ze che sia diverso da ze che sia diverso da ze che sia diverso da zero ro ro ro sono due classi di
matrici per cui abbastanza semplice verificare se una matrice generica A appartenga a queste
classi.

Se sono in una condizione cattiva? Matrice di questo tipo:
|
|

\
|
0 1
1 0
non definita in questo caso
scambio le righe scambio le righe scambio le righe scambio le righe ho ancora un operazione lecita: lo scambio di lo scambio di lo scambio di lo scambio di equazioni equazioni equazioni equazioni!
La formulazione generica del nostro metodo di Gauss.
Parto dalla matrice:
) 1 (
1
) 2 (
A L A =
) 1 (
1 1
) 2 (
A P L A =

se il mio a
11
uguale a zero e voglio mantenere questa formula matriciale, prima di moltiplicare
per la trasformazione elementare di Gauss ci metto una matrice P PP P P PP P
1 11 11 11 1
m mm m m mm ma aa a a aa at tt t t tt tr rr r r rr ri ii i i ii ic cc c c cc ce ee e e ee e d dd d d dd di ii i i ii i p pp p p pp pe ee e e ee er rr r r rr rm mm m m mm mu uu u u uu ut tt t t tt ta aa a a aa az zz z z zz zi ii i i ii io oo o o oo on nn n n nn ne ee e e ee e
|
|
|

\
|
=
0 0 1
0 1 0
1 0 0
P sono ottenute dalla matrice identica scambiando due righe: quali righe? Quelle
che voglio scambiare.
Se si mette la matrice di permutazione a sinistra scambia le righe mentre se si mette la matrice di
permutazione a destra scambia le colonne!!
Quindi il metodo di gauss che prima era: U A L L L
1 2 1 n
=

K dobbiamo includere la matrice di


permutazione U A P L P L P L
1 1 2 2 1 n 1 n
=

K la situazione di avere un piovt nullo abbastanza
particolare ma dobbiamo far si che il nostro algoritmo non si pianti mai quindi dobbiamo preve-
dere che ci sia un pivot uguale a zero poi queste matrici di permutazione saranno in gran parte
delle matrici identiche.
U A P P L L
1 1 n
~
1
~
1 n
=

K K U L L PA
~
1
~
1 n
=

K
P L
P un prodotto di matrici scambiate e avr le righe scambiate le ho tutte a sinistra le L quindi
posso iniziale a moltiplicare per tutte le righe destra

Calcolo Numerico
13 aprile 2011

5 5 5 5
|
|
|
|
|
|
|
|

\
|
) k (
nn
) k (
nk
) k (
kn
) k (
kk
n 2
) 2 (
22
n 1 11
a a
0
a a
a a
a a
L
M M
L
M O
L
L L

La L sempre una matrice triangolare inferiore con gli elementi diagonali uguali a 1 qui sotto a
sempre gli m moltiplicatori ma sono tutti scambiati p sempre di questo tipo ma non sono pi in
ordine comunque anche la variante con matrici di permutazioni mi porta a una fattorizzazione
non pi della matrice A ma della matrice P per A
PA = LU
Pago il fatto che non pi la matrice di partenza ma il prodotto di A per la matrice P a essere fat-
torizzabile e quindi se devo risolvere Ax = b generico sistema lineare
PAx = Pb moltiplico per P entrambi i membri dopo di che PA fattorizzata nella forma LU
Lux = Pb
Ux lo chiamo y
Ly = Pb semplicemente il b non sar quello di partenza ma avr le soluzioni mischiate
Ux=y
Ad ogni passo utilizzo la mai matrice di permutazione per portare ad ogni passo un elemento di-
verso da zero da portare al posto del pivot.
Ora per sorgono due problemi:
Se ho pi di uno diverso da zero quale ci metto ?
Siamo sicuri che qui sotto ci sia almeno un elemento diverso da zero se non c ne la cosa ci
metto ?
( )
( )
( ) ( )
( ) ( )
( ) ( ) |
|
|

\
|
=


k
n , n
k
n , k
k
k , n
k
k , k
1 k
1 k , 1 k
2
2 , 2 1 , 1
k
a a
a a
det a a a A det
L
M M
L

Se io sono arrivato a fare il passo k vuol dire che tutti quelli prima di a
k-1
erano diversi da zero, ci
siamo messi nelle condizioni dove qui abbiamo trovato un pivot nullo e se tutti quelli sotto a
kk

sono uguale zero allora il determinate uguale zero allora anche determinante (A(k)) uguale a
zero
Ma se parto da una matrice Ak non singolare allora anche tutti i sotto sono non singolare anche
il determinate di tutte le Ak devono essere diversi da zero quindi non possibile che ci sia una
sottomatrice che abbia il determinante zero quindi sono sicuro di avere almeno pivot diverso da
zero sotto.
Altro problema se c ne pi di uno...
Calcolo Numerico
15 aprile 2011

1 1 1 1
( )
( )
( ) ( )
( ) ( )
( ) ( )
( ) ( )
|
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=
k
n , n
k
k , n
k
n , s
k
k , s
k
n , r
k
k , r
k
n , k
k
k , k
n , 2
2
2 , 2
n , 1 2 , 1 1 , 1
k
a a
a a
a a
a a
a a
a a a
A
L
M M
L
M M
L
M M
L
M O
L
L

Ci rimasto da vedere il caso in cui mi trovo un pivot nullo e sotto nella parte di colonna sotto il
pivot ho pi elementi diversi da zero e devo capire quale elemento scegliere, che cos che rende
un candidato pivot migliore di un altro.
Ci sono diverse strategie in particolare:
Pivoting parziale
Pivoting totale

( ) ( ) k
k , i
n ,... k i
k
k , r
a a
max
=
= scelgo lindice di riga
r
per cui ho lelemento pi grande in valore assoluto.
Abbiamo parlato di errore algoritmico, era quella pare di perturbazione, errore che noi inseriamo
nella soluzione utilizzando un certo algoritmo piuttosto che un altro. Lerrore dovuto al fatto
che lalgoritmo fa un certo numero di operazioni elementari e ogni operazione porta un errore, il
propagarsi di questi errore porta ad un errore nella soluzione.
Esistono dei metodi per stimare lerrore inserito dai vari algoritmi.
( ) ( ) k
k
1 k
A L A =
+
La nostra matrice successiva la trovo con la matrice
( ) k
A moltiplicata a sinistra per L.
( ) k
A il risultato di una serie di operazioni e questo risultato bisogner approssimarlo ad un corri-
spondente numero di macchina. Questa approssimazione di macchina uguale
allapprossimazione di macchina della matrice L eps lapprossimazione della matrice
( ) k
A pi una
certa matrice di errore??? Di valori che sperabilmente saranno bassi ... una matrice di perturba-
zione, di errore
( )
( )
( )
|

\
|
+

+
k
k
k
1 k
E A L A
La cosa importante e che ad ogni passo introduco degli errori di approssimazione questi si pos-
sono racchiudere in una matrice. Ogni elemento della matrice
( ) 1 k
A
+
si porta dietro una serie di
errori.
( ) ( ) ( )
( )
2 k
i , k k , i
1 k
j , i
k
j , i
eps eps a m
eps
eps
a e + +
+

Le ee errore rrore rrore rrore che introduciamo al passo kesimo del metodi Gauss gen gen gen generat erat erat erato dai moltiplicatori o dai moltiplicatori o dai moltiplicatori o dai moltiplicatori per
epsilon saremmo con saremmo con saremmo con saremmo content tent tent tenti se ques i se ques i se ques i se quest tt ti va i va i va i val ll lori fossero piccoli ori fossero piccoli ori fossero piccoli ori fossero piccoli. ricordandoci che i nostri moltipli-
catori sono:
( )
( ) k
k , k
k
k , i
k , i
a
a
m = a me farebbe comodo che i il l d de en no om mi in na at to or re e f fo os ss se e g gr ra an nd de e in modo che gli
k , i
m siano piccoli


0



P PP P
P PP P
i ii i
i ii i
v vv v
v vv v
o oo o
o oo o
t tt t
t tt t
i ii i
i ii i
n nn n
n nn n
g gg g
g gg g
p pp p
p pp p
a aa a
a aa a
r rr r
r rr r
z zz z
z zz z
i ii i
i ii i
a aa a
a aa a
l ll l
l ll l
e ee e
e ee e


Calcolo Numerico
15 aprile 2011

2 2 2 2
[ ]

=
=
=

|
|

\
|

|
|

\
|

=
=
=

|
|

\
|

|
|

\
|
=

=
=

= +
= +

1 x
1 x
10 1 , 0 10 10001 , 0
10 00001 , 0
10 1 , 0
10 1 . 0
10 1 . 0
10 2 1 10 1 0
2 1 1
1 1 10
2 1 1
1 x
0 x
10 1 , 0 10 10001 , 0
10 1 , 0
10 00001 , 0
10 1 . 0
10 1 . 0
10 2 10 1 0
1 1 10
2 1 1
1 1 10
Ab
99989998 , 0 x
00010001 , 1 x
2 x x
1 x x 10
2
1
1 1
1
1
3
1
4 4 4
2
1
5 5
5
5
5
1
4 4
4 4
2
1
2 1
2 1
4
nostro interesse per mantenere il pi limitato possibile lerrore algoritmico per avere d de eg gl li i
k , i
m p pi ic cc co ol li i per questo mi piacerebbe avere come p pi iv vo ot t d de ei i v va al lo or ri i g gr ra an nd di i perch se ho un pi-
vot grande mi da dei moltiplicatori piccoli e se ho dei moltiplicatori piccoli ho un errore algo-
ritmico piccolo!


Questo metodo va talmente bene che questo passo di pivoting lo faccio anche se c qualcosa di
diverso da zero, ora noi il pivoting labbiamo introdotto solo quando sulla diagonale c uno zero,
ma per tenere lerrore basso si scambiano lo stesso perch so che il mio algoritmo pi stabile.
Esempio:
Stiamo usando solo tre cifre per la man-
tissa di conseguenza le ultime due spari-
scono e il risultato della somma -
0,1*10
5

In base a quello detto prima il colpevole
il moltiplicatore ho un moltiplicatore
molto grande quello moltiplicato per la
precisione di macchina mi restituisce un
errore algoritmico grande. Se uso il pivo-
ting sempre opero comunque uno
scambio di righe prima di eseguire il
metodo di Gauss e faccio il passo del me-
todo di gauss sulla matrice
pi accurata
Siccome i vantaggi di usare la strategia
di pivoting sono evidenti saremmo ten-
tati di testare altre volte questa strategia
Accanto alla strategia di pivoting parzia-
le esiste la strategia di pivoting totale che
prevede di andare a prendere lelemento
pi grande sotto ad a
k,k
e posso anche e-
stendere la zona di ricerca in tutta la sot-
tomatrice rimanente.
( ) ( ) k
j , i
n ,..., k j
n ,..., k i
k
j , r
a a
max
=
=
=
1 2 3
0 1 2
0 4 -7
Devo operare non solo le righe ma devo anche fare uno scambio di colonne e per farlo devo solo
moltiplicare a destra.
Il pivoting parziale prevede solo una moltiplicazione a sinistra mentre il pivoting totale prevede
anche una moltiplicazione a destra.
Sicuramente dal punto di vista della stabilit dovrebbe essere ancora meglio per laccuratezza
sulla soluzione non lunica cosa su cui andare a scegliere lalgoritmo: bisogna tenere conto an-
che del costo computazionale. Quindi andiamo a vedere questi due algoritmi quanto pesano.
Non pesano solo le operazioni ma anche i confronti, qui le strategie di pivoting non prevedono
nessuna moltiplicazione perch scambia due righe con un copia su un vettore ausiliario come lo
P PP P
P PP P
i ii i
i ii i
v vv v
v vv v
o oo o
o oo o
t tt t
t tt t
i ii i
i ii i
n nn n
n nn n
g gg g
g gg g
t tt t
t tt t
o oo o
o oo o
t tt t
t tt t
a aa a
a aa a
l ll l
l ll l
e ee e
e ee e

Calcolo Numerico
15 aprile 2011

3 3 3 3
scambio di variabili non abbiamo operazioni moltiplicative in pi ma per andare a capire qual
la riga e la colonna che vogliamo scambiare dobbiamo trovare un massimo e si fa prendendo un
certo numero di confronti.
Cerchiamo di stimare lordine di grandezza
PIVOTING PARZIALE PIVOTING TOTALE
Massimo tra un vettore lungo
n (prima colonna) avremo n-1
confronti
Al secondo passo il vettore si
riduce di uno quindi avremo
n-2 confronti




n-1 n
2
-1
n-2 (n-1)
2
-1
M M

1 (2)
2
-1
2
n
2

3
n
3

Nel pivoting totale il massimo
lo vado a cercare in tutta la
matrice di conseguenza al
primo passo far n
2
-1 con-
fronti, al secondo passo (n-1)
2
-
1 confronti

Fino ad arrivare ad avere un
solo confronto
La fattorizzazione di Gauss LU costa 3 n
3

Il pivoting parziale costa 2 n
2
quasi trascu-
rabile, non appesantisce il metodo di Gauss
Il pivoting totale costa 3 n
3
dello stesso ordi-
ne di grandezza quindi non pi trascurabile:
appesantisce il metodo di Gauss.
La strategia del metodo di gauss da gi buoni risultati e quindi negli ambienti di calcolo avanzati
si sceglie di privilegiare il punto di vista computazionale e quindi si usa il pivoting parziale.
Riepilogando:
per risolvere il sistema lineare posso usare il metodo di Gauss per sistemi generici ma ha dei vin-
coli: i pivot devono essere diversi da zero. Se voglio il caso pi generale introduco la strategia di
pivoting, ma lo svantaggio della strategia di pivoting che compaiono gli errori algoritmici do-
vuti ai moltiplicatori quindi scelgo il pi grande. Ci sono due possibili scelte: pivoting parziale
cerca al massimo nella sottocolonna, mentre il pivoting totale cerca nella sottomatrice. Il pro-
blema che nel pivoting parziale il numero di moltiplicazioni richiesta pi basso del ordine di
grandezza di conseguenza trascurabile, mentre nel pivoting totale il numero di moltiplicazioni
richieste pi grande di conseguenza non pi trascurabile e appesantisce lalgoritmo dal pun-
to di vista computazionale.
Si vede un caso particolare del metodo di gauss matrici simmetriche definite positive
La matrice simmetrica A= A
t
e una matrice positiva x
t
Ax>0 0 x .
Teorema:
Una matrice Anxn simmetrica e definita positiva fattorizzabile in modo unico nella forma
A=LDL
T
, con L triangolare inferiore con elementi diagonali uguali a 1 e D diagonale con elementi
diagonali positivi.
Se siamo in presenza di una di queste matrici particolari allora la fattorizzazione di gauss assume
la forma A=LDL
T
.
Dimostrazione:
sia A=LU ci sono due esempi di famiglie di matrici per cui siamo sicuri che Gauss arriva fino in
fondo senza che ci sia bisogno della strategia di pivoting e sono:
Le matrici definite positive
Calcolo Numerico
15 aprile 2011

4 4 4 4
( )
0 Ay y
y LDL y
y DL y L
T
T T
T
T
T
> =
= =
=
Definiamo la matrice D:
Def D=diag(u
11
, ..., u
nn
) allora A=LDR, con R=D
-1
U
abbiamo moltiplicato A=LDD
-1
U
D una matrice diagonale contiene la diagonale di U. U una matrice non singolare, la matrice
triangolare superiore che viene fuori dopo n-1 passi dal metodo di Gauss. Se parto da una matri-
ce non singolare devo arrivare ad una matrice non singolare. Vuol dire che anche D sar non
singolare e posso scrive D
-1
e posso scrivere:
D
-1
U la chiamo R
ma A simmetrica quindi uguale alla trasposta

il trasposto di un prodotto uguale al trasposto dei prodotti ma con ordine in-
vertito se ne ho tre uguale
U D R
1
= fatta cosi:
una matrice triango-
lare superiore con ele-
menti diagonali uguali ad
uno
T
R una matrice triango-
lare inferiore con ele-
menti diagonali uguali a
uno, perch se faccio la
trasposta di R il triangolo di sopra va a finire di sotto.
Allora D
T
L una triangolare superiore.
Allora come nella dimostrazione che la fattorizzazione LU unica (13 Aprile 2011), la stessa fat-
torizzazione: esiste ed unica e vuol dire che:
L=R
T
U=DL
T
A=LU se al posto di U ci mettiamo quella sopra otteniamo che effettivamente la fattorizzazione di
A fatta come scritta nel teorema A=LDL
T

dobbiamo far veder che

x
T
Dx>0 per ogni x diverso da zero
L
T
y=x prendiamo un vettore qualsiasi. L non singolare quindi dato un certo vettore x esiste un
unico y soluzione del sistema
faccio il trasposto dei traLsposti cambiati di ordine
l ll l l ll la aa a a aa a f ff f f ff fa aa a a aa at tt t t tt tt tt t t tt to oo o o oo or rr r r rr ri ii i i ii iz zz z z zz zz zz z z zz za aa a a aa az zz z z zz zi ii i i ii io oo o o oo on nn n n nn ne ee e e ee e d dd d d dd di ii i i ii i A AA A A AA A
sto partendo da un vettore x che non il vettore nullo, se x non il vettore nullo an-
che y non il vettore nullo, y un qualsiasi vettore non nullo e quindi per ogni y
non nullo y trasposto y non nullo.
( ) y LDL y y DL y L Dx x
T T T
T
T T
= = ha come conseguenza il fatto che tutti gli elementi sono positivi
se sono tutti positivi posso scrivere:
( )
n , n 1 , 1
U ,..., U diag D def
D D D
=
=

( )( )
T
T
T T
SS D L D L L D D L LDL A = = = =
Questa S il prodotto di un triangolare inferiore con elementi diagonali uguali a uno per una
matrice quindi alla fine non avr pi gli elementi diagonali uguale uno
( )
( )
T T T
T T
L D R
LDR A
A LDR
=
= =
= =
|
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
|
|
|
|
|
|
|
|

\
|
1 0 0
1 0
U
U
U
U
1
U 0 0
U 0
U U
U
1
0 0
0
U
1
0
0 0
U
1
1 , 1
n , 1
1 , 1
2 , 1
n , n
2 , 2
n , 1 1 , 1
n , n
2 , 2
1 , 1
L
O O M
M O
L
L
M O O M
M
L L
L
O M
M
L
Calcolo Numerico
15 aprile 2011

5 5 5 5
Si trasforma in quella che si chiama f ff f f ff fa aa a a aa at tt t t tt tt tt t t tt to oo o o oo or rr r r rr ri ii i i ii iz zz z z zz zz zz z z zz za aa a a aa az zz z z zz zi ii i i ii io oo o o oo on nn n n nn ne ee e e ee e d dd d d dd di ii i i ii i C CC C C CC Ch hh h h hh ho oo o o oo ol ll l l ll le ee e e ee es ss s s ss sk kk k k kk ky yy y y yy y molto simile alla fattorizza-
zione LU ma ho una matrice che sono una la trasposta dellaltra e la matrice S una matrice sen-
za uno sulla diagonale.
costa
|
|

\
|
=
6
n
3
ci metto la met del tempo rispetto alla fattorizzazione LU. Ma funziona per ma-
trici simmetriche definite!
Calcolo Numerico
20 aprile 2011

1 1 1 1
Siamo arrivati allalgoritmo che risolve un generico sistema di matrici nxn non singolare e andiamo a vedere
il caso in cui la matrice non quadrata.
Ax=b
AR
mxn
con m>n=rank(A)
Ci sono due casi: il primo il caso in cui il sistema SOTTODIMENSIONATO cio ci sono pi incognite del
le equazioni, non ho un numero sufficiente di equazioni per andare a determinare tutte le mie incognite. Di
conseguenza devo considerare alcuni di queste variabili come parametri e li porto a destra delluguale
quindi mi ritrovo un sistema quadrato contermine noto che avr un parametro.
Il secondo caso quello in cui ho pi equazioni che incognite in questo caso il sistema SOVRADIMEN
SIONATO il caso in cui delle soluzioni non ci sono.
ESEMPIO
Prima o poi trover un equazione impossibile due equazioni che si contraddicono tra di loro.
Si pu vedere che le colonne della matrice A sono tutte e n linearmente indipendenti.
cosa possiamo fare quando la soluzione non esiste?
S St tr ra at te eg gi ia a: : c ce er rc co o d di i a ar rr ri iv va ar re e i il l p pi i p po os ss si ib bi il le e v vi ic ci in no o a al ll la a s so ol lu uz zi io on ne e. .


= =
0
R
QR A
2
2
x
b Ax
min
n

=
n
1 n
2
r
la norma due mi da la radice delle componenti di questo vettore, se lo elevo al quadrato la radice ne va
se calcoliamo la norma allora esattamente .
2
2
b Ax sar un vettore x dove x il pi vicino alla so
luzione possibile quindi al vettore b.
Una soluzione di questo tipo si dice una s ss s s ss so oo o o oo ol ll l l ll l u uu u u uu uz zz z z zz zi ii i i ii i o oo o o oo on nn n n nn ne ee e e ee e a aa a a aa ai ii i i ii i m mm m m mm mi ii i i ii i n nn n n nn ni ii i i ii i m mm m m mm mi ii i i ii i q qq q q qq qu uu u u uu ua aa a a aa ad dd d d dd dr rr r r rr ra aa a a aa at tt t t tt t i ii i i ii i.
Si sua sempre un metodo di fattorizzazione solo che le trasformazioni elementari che si usano sono un po
diverse
Teorema:
Sia Amxn con m>n = rank(A). Allora esistono due matrici Qmxn ortogonale e Rnxn triangolare superirore
non singolare tali che la mia matrice A la riesco a scrivere come A=Q

0
' R
nelle prime n righe ho una
matrice triangolare superiore e nelle ultime ho tutti zeri.
Bisogna vedere come possiamo usare questa fattorizzazione per risolvere il nostro problema:
nel caso rettangolare stiamo cercando una soluzione nel senso dei minimi quadrati e dobbiamo capre co
me facciamo a trovare il vettore x a partire da questo tipo di fattorizzazione.
Supponiamo che il sistema sia vero e andiamo a vedere come faccio ad usare questa scrittura:
= =
2
2
2
2
b QRx b Ax

A=QR abbiamo usato la fattorizzazione
( ) = =
2
2
T
b Q Rx Q

Q Q matrice ortogonale vuol dire che
T
Q Q uguale alla matrice identica
Calcolo Numerico
20 aprile 2011

2 2 2 2
Poi usiamo una propriet delle matrice ortogonali cio la norma due di un vettore la somma del
le componenti al quadrato
2
2
2
2
V Qv =
dimostrazione:

=
= =
n
1 i
T 2
i
2
2
x x x X

( )

n
1 n 1
x
x x , , x
M
L

Quindi la norma due del vettore Q*v

questa propriet vale solo per la norma due!

2
2
T T T
v v v Qv Q v = = =
di conseguenza la formula diventa:
= =
2
2
T
b Q Rx Dobbiamo iniziare a separare quesiti due vettori Rx e b Q
T
e ci ricordiamo che
}
} n m
n
0
R
R


= e
}
} n m
n
y
y
y b Q
2
1 T

= =

Allora le prime n righe saranno date da Rper x meno y
1
e le ultime
n righe saranno date da 0*x meno y
2


A questo punto ho la norma due al quadrato di questo vettore e abbiamo visto che la norma due al qua
drato la somma delle componenti:

+ = = =
+ = = + =
n
1 n i
2
i
n
1 i
2
i
n
1 i
2
i
2
2
2
2
2
1
x x x y y x R
Siamo arrivati ad un punto in cui ho scritto il mio teorema di partenza come la somma di due termini: uno
dei due termini dipende da x e laltro no, adesso mi devo ricordare che R una matrice triangolare su
periore, non singolare, il che vuol dire che Rx=y vuol dire che Rx=y vuol dire che Rx=y vuol dire che Rx=y
1 11 1
questo si questo si questo si questo sis ss stema lin tema lin tema lin tema line ee eare lo are lo are lo are lo so risolvere so risolvere so risolvere so risolvere: :: : un sistema quadr un sistema quadr un sistema quadr un sistema quadra a a a
to non singolare to non singolare to non singolare to non singolare risolvibile risolvibile risolvibile risolvibile con con con con il metodo di sostit il metodo di sostit il metodo di sostit il metodo di sostitu uu uzione allindietro zione allindietro zione allindietro zione allindietro, quindi di quegli semplici, e riesco a
risolverlo.
Quindi Rxy
1
=0 mentre il secon secon secon secondo t do t do t do termine ermine ermine ermine della della della della norma norma norma norma due due due due di y di y di y di y
2 22 2
mi rimane mi rimane mi rimane mi rimane quel termine che dovuto al
fatto che il sistema non quadrato, ma rettangolare, quindi dato che non dipende da x il meglio che posso
fare mettere Rxy
1
=0 in questo modo minimizzo questo numero non negativo
2
2
b Ax .
In conclusione la mia fattorizzazione QR si riconduce a risolvere un sistema triangolare superiore quadrato
R.
Per prima cosa da fare trovare la fattorizzazione QR poi mi costruisco Q trasposto b (Q
T
b) e prendo le pri
me n componenti e allora quello li un sistema quadrato e lo risolvo con il metodo di sostituzione
allindietro
Costo computazionale Costo computazionale Costo computazionale Costo computazionale
Ci rimane da calcolare il costo computazione della fattorizzazione QR. Abbiamo fatto i calcoli di come si ar
riva alla soluzione dando per scontato che il teorema sia vero.
Con Gauss avevamo la matrice e siamo andati a cercare una matrice triangolare inferiore che moltiplicata
mi desse fuori un vettore con degli zeri sotto il termine pivot. La matrice moltiplicativa L
k
aveva tutti uno sulla
diagonale e
( ) ( ) = = Qv Qv Qv
T 2
2
=


=
2
2
2
1
2
2
2
1
y
y x R
y
y
x
0
R
Calcolo Numerico
20 aprile 2011

3 3 3 3

L L L
M
L L L
L L L
L L L
M
L L L
L L L
0
0
a
a
a
a
L
1 , 1
1 , n
1 , 2
1 , 1
1

( )
( )
( )

L L
M
L L
L L
L L
M M
L L
L L L
0 0
0
a 0
a a
a 0
a 0
a
L
2
2 , 2
2 , 1 1 , 1
2
2 , n
2
2 , 2
1 , 1
2

=
1 m
0
1 m
0 0 1
L
1
1
1
O M
M O
L

=
1 m
0 m
1
0 0 1
L
2
2
2
O
M O
L

Vogliamo seguire una strategia simile ma al posto di usare matrici triangolari inferiori ci serve u uu us ss sare delle are delle are delle are delle
mat mat mat matr rr rici ortogonal ici ortogonal ici ortogonal ici ortogonali ii i altrimenti non si possono usare i giochini visti prima. Quindi ho bisogno di un analoga
trasformazione ...
Il risultato che vogliamo ottenere pi o meno lo stesso. Dato un certo vettore z=(z1, .... , z
m
)
t
, una matrice H
ortogonale

=
0
...
0
Hz con le trasformazioni elementari di Gauss la prima rimaneva invariata ma non pos
sibile se uso una matrice ortogonale cosa che riuscivo a fare con una matrice triangolare inferiore. Il che
non un requisito essenziale.
Come deve essere questo alfa se H una matrice ortogonale?

1
e
0
...
0
Hz =

=
0
...
0
1
e
1
e sarebbe la base canonica
( ) ( ) ( ) ( )
2
2
2
1
T
1
2
1
T
1
T T T T
2
2
z e e e e HZ HZ HZ H z z z z = = = = = = =
vediamo che vediamo che vediamo che vediamo che
2
z =
Adesso andiamo a vedere come costruire questa matrice H. Per adesso abbiamo solo detto che H deve
essere ortogonale.
T
T
vv
v v
2
I H = un trucco per generare matrici ortogonali se io prendo un qualsiasi vettore v non
nullo allora la matrice H costruita in questo modo una matrice ortogonale ed in pi anche simmetrica:
la matrice H coincide con la sua trasposta.
( ) H vv
v v
2
I vv
v v
2
I H
T
T
T
T
T
T
= = = come si fa a vedere che ortogonale? si fa vedere che:
I H H
T
=
( )
( )( )
T T
T
T
T
2
T
T
2 T
vv vv
v v
4
vv
v v
4
I vv
v v
2
I H H H + =

= = posso semplificare: ( )v v v v
T

( )
( )
( )
( ) I vv
v v
4
vv
v v
4
I
T
T
T
T
= + =
Effettivamente se scelgo una H in questo modo H H
T
uguale alla matrice identica
1
e Hz =
1
e z v =
Calcolo Numerico
20 aprile 2011

4 4 4 4

F15> F16
( ) ( )
( )( ) =

= z e z e z
e z e z
2
I z vv
v v
2
I Hz
T
1 1
1
T
1
T
T

( ) ( )
1
2
2
1
T
1
2
1
T T
1
T
1
T
1
z 2 z e e e z z e z z e z e z = + =
( )
1
n
1
T
1
z
z
z 000 , , 1 z e
=

= K

( )
1
n 1 1
T
z
0
0
1 z , , z e z
=

=
M
K

2
2
T
z z z =
2
2
2
1
T
1
2
z e e = =

( )
( )( ) =

= z e z e z
z z 2
2
z
T
1 1
1
2
2

1
2
2
T
1
T
z z z e z z =
( )
1 1 1
e e z z e z z = + = =
Si fa vedere che se scelgo questo vettore come v allora la matrice H e Si fa vedere che se scelgo questo vettore come v allora la matrice H e Si fa vedere che se scelgo questo vettore come v allora la matrice H e Si fa vedere che se scelgo questo vettore come v allora la matrice H es ss sat at at att tt tam am am amente un multipl ente un multipl ente un multipl ente un multiplo di e o di e o di e o di e
1 11 1
ri ri ri ris ss so oo ol ll lve ve ve ve
il mio problema di eliminare tutte le componenti tranne la prima il mio problema di eliminare tutte le componenti tranne la prima il mio problema di eliminare tutte le componenti tranne la prima il mio problema di eliminare tutte le componenti tranne la prima
LA DIFFERENZA CHE LA PRIMA RI LA DIFFERENZA CHE LA PRIMA RI LA DIFFERENZA CHE LA PRIMA RI LA DIFFERENZA CHE LA PRIMA RIG GG GA CAMBIA A CAMBIA A CAMBIA A CAMBIA

( ) ( )
( ) ( )
( ) ( )

=
2
n , 2
2
n , 2
2
n , 2
2
2 , 2
2
n , 1
2
2 , 1 1
n , n 1 , n
n , 2 1 , 2
n , 1 1 , 1
1
a a 0
a a 0
a a
a a
a a
a a
H
L
M M M
L
L
L L
M M
L L
L L

1 1 1
e a v =
2
1
a =
T
T 1
vv
v v
2
I H =
( )
1
2
2 2
e a v =
2
2 1
a =

T
2 2
2
T
2
2 v v
v v
2
I 0
0 1
H
1
1
a
n
a
Calcolo Numerico
27 aprile 2011


Ax=b
Il problema quello della soluzione di un sistema lineare per le matrici quadrate. Gauss prevede la tra
sformazione della matrice quadrata A mediante la moltiplicazione con le matrici U A L ,..., L
1 1 n
=

in una
matrice rettangolare. Le matrici L
k
erano fatte in questo modo:
|
|
|
|
|
|
|
|

\
|

=
1 m
m
1
1 0
0 1
L
k , n
k , k
k
O
O
con
( )
( ) k
k , k
k
k , i
k , i
a
a
m = dopo di che si arrivava alla fattorizzazione LU che ci
permetteva di risolvere il sistema lineare in due parti:

=
=
y Ux
b Ly

Per le matrici rettangolari il problema consisteva nella ricerca del minimo della norma quadro del residuo
2
2
b Ax min e si sfruttava una diversa fattorizzazione: quella mediante trasformazioni elementari che pren
dono il nome di H HH H H HH HO OO O O OO OU UU U U UU US SS S S SS SE EE E E EE EH HH H H HH HO OO O O OO OL LL L L LL LD DD D D DD DE EE E E EE ER RR R R RR R che trasformavano la matrice A in una matrice fatta in modo tale che le
prime n righe diventano una matrice triangolare e sotto zero
|
|

\
|
= =
0
R
R A H , , H
1 n
K
le H
k
sono matrici fate cos:
|
|
|
|
|

\
|

=
T
T
k
vv
v v
2
I
1 0
0 1
H
|
|
|
|
|

\
|
=
+ k 1 n
1
2
z
z
z z
v
M
( )
|
|
|

\
|
=
k , m
k
k , k
a
a
z M
F5 V UN VETTORE SEMPRE Pi PICCOLO IL IO VETTORE Z sar il vettore al passo k esimo f6 voglio mette
re gli zeri sotto il pivot
QR R H , , H A
T
n
T
1
= = K
Il prodotto di matrici ortogonali ancora una matrice ortogonale e otteniamo la fattorizzazione QR

|
|

\
|
2
1
x
x
|
|

\
|
=
|
|

\
|
|
|
|

\
|

0
x
x
x
1
x
x
0 1
1
2
1
2
1
0
0
0
0
0
Calcolo Numerico
27 aprile 2011

|
|

\
|
+
=
|
|

\
|


0
x x
cos sen
sen cos
2
2
2
1

F8 avete il vettore
1
x e
2
x e volete mettere uno zero in
2
x vuol dire che la vostra ydeve andare a zero una
possibilit di mettere uno zero al posto di
2
x e vuol dire considerare come vettore finale la proiezione e
lo ottenete moltiplicando il vostro
1
x e
2
x per quella cosa F8.1
un altro modo che ho per mettere a zero fare una rotazione dellangolo possibile farlo con una ma
trice di rotazione che una cosa fatta come f8.2 ma la procedura pi pesante dal punto di vista compu
tazionale.
poi per trovare la soluzione nel senso dei minimi quadrati andavo a costruirmi un vettore b Q
T
e mi co
struivo una risoluzione nel senso dei minimi quadrati F9
Osservazioni:
Togliamo il la fattorizzazione LU abbiamo dimostrato che unica la fattorizzazione QR unica a meno di
segni dovuta alla situazione f5 potete ottenere diverse fattorizzazioni QR cambiando il segno di una riga di
Q e di R non si pu dire che unica ma praticamente lo se si forza a segni positivi si forza lunicit della
fattorizzazione
si pu fare ( )
2
1 1
z z sign z + viene perso il segno di
1
z si cerca di tenere lo stesso segno vuol dire che se
1
z positivo faccio
1
z pi quantit positiva se
1
z positivo
1
z meno quantit positiva. Non sar mai nel
la situazione della cancellazione di cifre (lerrore visto tempo fa...)
Abbiamo introdotto la fattorizzazione QR per risolvere sistemi lineari sovra determinati, ma nulla ci vieta di
far tendere m a n di considerare come alternativa per sistemi lineari quadrati. Se m = n le righe sotto spari
scono e quindi la fattorizzazione diventa R Q simile a quella di Gauss, lunica differenza che Q una
matrice ortogonale quindi pu essere utilizzata come risoluzione esatta dei sistemi lineari quadrati allora se
al posto di A ci metto QR ho:
b Q QRx b QRx
T
= =
Mi posso chiedere quale dei due strumenti sia meglio, lecito andarli a confrontarli tra di loro e i criteri
sono sempre due: costo computazionale e stabilit (minor errore algoritmico).
Dal punto di vista computazionale ci ricordiamo che la fattorizzazione LU ha un costo computazionale di
|
|

\
|

3
n
3

Mentre Householder ( )
|
|

\
|

|
|

\
|
n m 3
3
n
2

|
|

\
|
= =
3
n 2
n m
3
circa il doppio per cui Gauss migliore, ma il metodo di Householder molto pi
stabile, in generale Gauss funziona meglio.
Quello della rotazione Givens costa costa di pi
Householder opera con matrici piene per questo costa di pi perch Gauss invece opera con zeri avendo
molti zeri si risparmiano operazioni.
[ ] 3 ; 1 , 1 , 2 ; 3 , 0 , 1 , 1 A = >>
[ ] 4 ; 3 1 ; 41 b = >>
b \ A x = >> ritorna la soluzione
lalternativa x=mldivide(A,b) restituisce la soluzione

Calcolo Numerico
27 aprile 2011


Abbiamo visto tutti i metodi diretti, un algoritmo che in un numero finito di passi mi restituisce la soluzione
del mio problema.
Lalternativa sono i METODI ITERATIVI: sono degli approcci che non arrivano a darti la soluzione esatta che
stiamo cercando, ma ci daranno sempre una soluzione approssimata. La filosofia quella di costruire una
successione di vettori che, al tendere allinfinito del numero diterazioni, converge alla soluzione del sistema;
di conseguenza ho un limite che uguale alla soluzione del sistema x che non sar la mia soluzione linea
re, ma sar una buona approssimazione. Per quando riguarda i sistemi lineari, ci sono alcune classi di matri
ci per le quali questi tipi di approcci sono molto pi convenienti.
[Siamo tornati nel mondo delle matrici quadrate!]
Ci sono due casi in cui un metodo iteravo, conviene rispetto a un metodo diretto il primo quando le ma
trici sono molto grandi. Secondo caso quello delle matrici sparse: sono le matrici che hanno tanti zeri; allo
ra noi avevamo capito che avere tanti zeri era una cosa buona dal punto di vista computazionale perch
posso risparmiarmi moltiplicazioni, perch so, quanto fa gi il risultato. Il problema che i metodi di fattoriz
zazione sia Gauss sia Gauss non sono stati costruiti per tenere conto di eventuali tanti zeri nella matrice
perch se prendete la matrice di slide 225, e applicate alla prima colonna mettete degli zeri nella prima co
lonna ma la sotto matrice sar riempita gi dopo il primo passo e la propriet di avere tanti zeri la avete
persa. Si chiama anche propriet di fillin e i metodi di fattorizzazione non sono fatti per leventuale sparsi
t della mia matrice.
Se so che la matrice sparsa posso memorizzare solo i numeri diversi da zero tenendo traccia della loro
posizione perch devo essere in grato di ricostruire la matrice ci sono due strategie CCS per colonne
questa
La strategia tenere traccia di tutti i valori diversi da zero allineati per colonna per risparmiare memoria
per quanto riguarda lindice di colonna lo memorizzo
Vuol dire che nella prima colonna ci sono gli elementi 123 nella terza colonna ci sono gli elementi 4 5 6 7
nella terza colonna ci sono gli elementi 8 9 ecc.
Il numero di elementi che ci sono dato dalla differenza di quello dopo meno quello prima tanto pi
vantaggiosa quanto il numero di zeri e pi la matrice grande pi grande il guadagno in termini di
spazio e computazionale perch avete esattamente la posizione degli elementi diversi da zero, sapete che
quelli sono gli unici elementi che danno un risultato significativo nella memorizzazione, quindi la cosa pi
rapida...
Lida dietro ai metodi iteravi unidea del genere:
Ax=b sistema diagonale quadrato con A matrice no singolare
b Bx Bx Ax = + supponete di avere una matrice B sempre nxn non singolare che dovremo andare a
scegliere in maniera furba e aggiungiamo e voliamo bx
Bx=bxAx+b portiamo a destra poi moltiplichiamo a destra e a sinistra per linversa di B
X=xB
1
Ax+B
1
b=(IB1)x+B1b questa relazione ci suggerisce una scrittura di questo tipo:
( )
( )
( )
b B x B I x
1 i 1 1 i +
+ = supponete di scrivere una successione f10 di vettori la successione converge il
limite che tende + uguale a un certo vettore questo limite, o no esiste o diverge sar o conver
ge ed uguale a un qualche valore
Se la mia successione converge allora, un vettore ch soddisfa questa relazione qua e vuol dire che e
sattamente la soluzione del sistema lineare
F10.1
Calcolo Numerico
27 aprile 2011

I problemi sono due il primo il se perch potrebbe non convergere, voglio che converga indipendente
mente da dove parto allora so che il suo limite quello che cerco il secondo problema linfinto perch
inizia a prendere un senso quando tende a infinto, prima un vettore che non un gran che...
Calcolo Numerico
28 aprile 2011

1 1 1 1

b Ax = A nxn non singolare
Il giochino che sta dietro alla costruzione di questi metodi iterativi prevede una matrice B non singolare e
una serie di passaggi algebrici...
b Bx Bx Ax = +
b Ax Bx Bx + =
( )
1 1
B b Ax Bx x B B

+ =
b B Ax B x x
1 1
+ =
( ) b B x A B I x
1 1
+ = > se x verifica questo allora deve essere la soluzione del mio sistema lineare
( )
( )
( )
b B x A B I x
1 i 1 1 i +
+ =
( )
fissato x
0
K , , 1 0 i =
Se la successione converge, formano un vettore

x allora quando i tende a pi infinito converge ad un vet


tore che soddisfa la soluzione ( ) b B x A B I x
1 1
+ = e converge alla soluzione del mio sistema
Se ha limite finito per ogni punto iniziale indipendentemente da dove io parto allora, sto costruendo un al
goritmo che mi costruisce una soluzione approssimata che sempre meglio andando avanti .
Questa lidea
Prendo un vettore degli errori
( ) ( )
= x x er
i i
r
( ) ( )
=
+
0 i
i
x 0 er
lim
deve convergere deve tendere a zero.
Se non scriviamo la relazione che lega l'elemento 1 i + della successione con lelemento i
( )
( )
( )
b B x A B I x
1 i 1 1 i +
+ =
Quindi
( ) 1 i
er
+
il nostro vettore degli errori 1 i + sar :
( ) ( ) + +
= x x e
1 i 1 i

Se faccio la prima riga meno la seconda f5 lerrore del passio i+i1 legato allerrore del passo iesimo da
questo prodotto
Allora possiamo fare la stessa cosa lerrore al passo i sar legato allerrore del passo i1 sempre per la stes
sa relazione e possiamo reiterare lo stesso ragionamento fino ad arrivare al punto iniziale dove ho er ^0
Ho un numero
( ) 0
er il mio punto iniziale meno la soluzione finale un vettore fissato
( ) ( )
= x x er
0 0
F6
Se per avere una successione convergente quel vettore tender al vettore nullo solo se questa matrice
tender alla matrice nulla allora se er non zero deve essere nullo quello tra parentesi
Necessariamente deve tendere alla matrice nulla la matrice tra parentesi si dice matrice convergente dove
il limite 0 A
lim
i
=
+
F7 la matrice fondamentale che da un indicazione se il mio metodo funziona o non
funziona e la convergenza del mio metodo governata da questa matrice qui B se questa matrice non
convergente allora questo vettore degli errori pu fare quello che vuole e quindi non mi serve
Si chiama matrice di iterazione del metodo la matrice ( ) A B I
1
tutto il metodo governato da questa
matrice!! Non soltanto dice se il metodo converge o no ma a seconda di come fatta vi dice quanto il me
todo converge velocemente alla soluzione.
Img 1 se partite dallo stesso punto al limite ci potete arrivare subito o dopo ... si intende quanto prima vi av
vicinate al vostro punto limite a noi piacerebbe un metodo che converge velocemente vuol dire che devo
fare poche iterazioni per arrivare alla soluzione del mio sistema lineare.
Calcolo Numerico
28 aprile 2011

2 2 2 2
Ci interessa che il metodo converga innanzitutto ci passerebbe sapere qualp una condizione necessaria e
sufficiente affinch il metodo converga:
F8 ( ) 1 T < il raggio spettrale della matrice T sia minore di uno dove il raggio spettrale il massimo tra F8.1
( ) { }
T di autovalori
max T
n 1
n 1

=
, ,
, ,
K
K
abbiamo una condizione non equazione. Ma sufficiente vuol dire che se il meto
do minore di uno allora converge e se il metodo converge non detto che sia minore di uno
Deriva da un teorema F9 ( ) 1 T T < una qualsiasi norma di T sar sicuramente minore del raggio spet
trale se riesco a trova una norma matriciale per cui la norma di T minore di uno allora anche il raggio
spettrale p minore di uno
Punto della sit. Costruendo una successione di vettori che converge alla soluzione del mio sistema sotto op
portune ipostesi e le abbiamo concretizzate con F8 ( ) 1 T < condizione pi semplice da verificare devo tro
vare una norma di t per cui la norma di T sia minore di uno.
Pi ro di T piccolo pi questo numero tender a zero velocemente
A
x
a deve essere compreso tra zero uno pi vicino a uno pi tende a zero lentamente pi vicino a 0
pi tende a zero velocemente quindi questo condizione in img1 dipende dal raggio spettrale a seconda del
valore tra zero e uno che assume.
Che cosa bisogna fare affinch il mio metodo sia competitivo rispetto ai metodi di fattorizzazione..
( )
( )
( )
b x A B Bx
i 1 i
+ =
+
cerchiamo di vederlo da un punto di vista computazionale
Supponiamo di partire da x0 io ho : dal punto di vista matematico io ho un sistema lineare. Lunica cosa che
non conosco x(i+1) quindi ad ogni iterazione x(i+1) lo trovo risolvendo un sistema lineare allora come deve
essere fatta la matrice b perch abbia senso da un punto di vista computazionale il mio sistema lineare de
ve essere veloce se costruisco un sistema iterativo che ad ogni passo deve risolvere un SI allora c qual
cosa che non va ma se questa B corrisponde a uno dei midi casi semplici.?
Allora:
ho gauss che costa

3
n
O
3

se B diagonale devo risolvere ad ogni iterazione un sistema diagonale quindi ho n iterazione ma ho an
che la seconda parte il moltiplicazione tra ( )
( ) i
x A B questo prodotto costa
2
n e ad ogni iterazione lo
devo fare quindi ho un n+n^2 ad ogni iterazione
se B triangolare ho

2
n
O
2
(della soluzione del sistema triangolare ) +
2
n
il costo computazionale complessivo sar
n^2 t t= numero di iterazione che faccio
per il triangolare sar 3/2*n^2 * t un po pi pesante si intuisce una delle perch i due casi in cui questi
metodi sono vantaggiosi sono le grandi dimensione e numeri sparsi
affinch questi metodi siano competitivi con gauss t deve essere meno di n capite bene che quanto pi
probabile quanto pi n grande devo avere un algoritmo iterativo che mi dia gi la soluzione in m
se ho n=4000 ho bisogno di un metodo iterativo che mi dia la soluzione in 1500 iterazioni se riesco a met
ter con B diagonale un 30n^2 pi cresce n pi il mio 30 diventer vantaggioso rispetto alln pi la matrice
grande pi molto
perch t non dipende da ne dipende esclusivamente dalla matrice, dal raggio spettrale che del tutto in
dipendente dalla matrice quindi posso vedere una matrice di 10000 elementi e un t=30 e dal punto di vista
computazionale si fa sentire e lo stesso discorso vale per la matrice triangolare. Si capisce perch questo
metodo sono vantaggiosi quanto ci sono delle matrici sparse
Calcolo Numerico
28 aprile 2011

3 3 3 3
a = RAND(2500);
b=
SPRAND genera una matrice casuale sparsa e la memorizza come tale la memorizza come visto sula slide
vuole m, n, e densit quanti elementi diversi da zero
As = sprand(2500,2500,0.0001)
Bs = sprand(2500,2500,0.0001)
Spy(As) vi permette di vedere dove sono gli elementi diversi da zero tic; A*B; toc; sono un trucco di matlab
per tenere traccia del tempo di esecuzione impiega circa 2..8 secondi
Tic; As*Bs; toc:
impiega 0.01
se io ho una matrice sparsa dove guadagno?? Qui perch non devo fare tutte le moltiplicazioni devo fare
solo quelli diversi da zero
come facciamo a definire questa matrice B? abbiamo visto che deve essere semplice e quindi dato in input
la mia matrice A nxn non singolare, come definisco B?
ci sono due strategie:
questi metodi vengono definiti a partata dalla nostra matrice di partenza


A=DE F fatta cos: f10 dove E il pezzo sotto e F il pezzo stoto
METODO DI JACOBI
Prevede come B=D data una matrice dei coefficienti A io mi prendo come matrice B il suo pezzo diagonale
( )
( )
( )
b x F E Dx
1 i i
+ + =


Il sistema lineare che devo risolvere ad ogni iterazione un sistema diagonale dove la matrice dei coeffi
cienti la matrice diagonale di A
Si pu scrivere anche in forma esplicita dei componenti il mio vettore x)i+i) F11
( ) ( ) ( )
j j
n
1 j k
i
k k j
1 j
1 k
i
k k j j
1 i
j
a x a x a b x
, , ,

=

+ =

=
+

Diciamo che IB1 = B1(BA) quindi
P la matrice che deve avere raggio spettrale minore di uno affinch il metodo di Jacob converga
B1 = D1 e (BA) = (E+F)
J=D1(E+F)
Come abbiamo fatto per gauss prima del metodo di pivoting dove avevamo dato tutti i pivoting diversi da
zero anche in questo caso ci piacerebbe conoscere alcune classi di matrici dove ro di j automaticamente
verificata senza andare a verificare la condizione ad esempio le matrici strettamente diagonali dominanti
per righe una tipologia di matrice per cui automaticamente verificato
F12
D
F
E
Calcolo Numerico
28 aprile 2011

4 4 4 4
OGNI RIG viene moltiplicata per ogni elemento che c sulla diagonale. Dobbiamo fare la somma di tutti gli
elementi che ci sono su una riga e poi prendere il massimo
F13
La versioe alternativa si chiama metodo di Gauss SEidel che prevede di prendere come matrice B tutto il
pezzo triangolare inferiore di A
B = B E
Allora il sistema lineare che devo risolvere ad ogni iterazione un sistema triangolare inferiore:
(DE) x (i+1) = F x (i) + b e la scrittura in componenti quasi uguale F14 Lidea diciamo che dal punto
di vista computazionale sembra pi veloce Jacobi perche quindi ad ogni iterazione risolviamo un sistema
diagonale lungo n
Jaocbi per calcolare x con (i+1) usa tutte le componenti del vettori
Per calcolare al seconda componete usa
Per calcolare tutte le n componenti sua sempre tutte le compnenti tranne una
Gauss Sidel cosa fa?
Per calcolare la prima non pu fare latri che calcolare tutte le componenti tranne uno
Ppi per calcolare x2 (i+1 ua x1(i+1) e poi x3 xn
Jacobi usa sempre il vettore vecchio Gauss sud appena calcolata una nuova componente usa subito l a
nuova componente per il componente successiva in qualche modo usa informazione sempre pi fresche ho
speranza di arrivarci prima
Se uso in modo pi rapido le informazioni nuovo che sto costruendo presumibilmente arriver prima alla
soluzione faccio meno iterazione quindi t pi basso
H= (DE ) 1 F anche qui possiamo usare le matrici strettamente diagonali domanti per righe verificata la
stessa cosa di prima e in pi ci sono anche le matrici simmetriche definite positive
Calcolo Numerico
28 aprile 2011

1 1 1 1
Jacobi
( )
( )
( )
b x F E Dx
i 1 i
+ + =
+

F1
Jacobi:
( ) ( ) ( )
( )
j , j
n
1 j n
i
k k , j
1 j
1 k
i
k k , j j
1 i
j
a x a x a b x

+ =

=
+
=
GaussSeidel:
( ) ( ) ( )
( )
j , j
n
1 j n
i
k k , j
1 j
1 k
1 i
k k , j j
1 i
j
a x a x a b x

+ =

=
+ +
= Abbiamo visto quali sono le due possibili stra
tegie: Jacobi e Gauss Seidel e avevamo concordato che B doveva essere una matrice semplice e ci si ri
conduceva alla matrice triangolare e questo dava origine al metodi di Jacobi e di GaussSeidel. Abbiamo
concluso che ci si aspetta che il metodo GaussSeidel converga allora ci si aspetta che GS converga pi
velocemente perch utilizza nelle sue componenti della nuova iterata utilizza alcune delle nuove compo
nenti gi impiegate in precedenza per cui ci si aspetta che arrivi prima alla soluzione
Esempio di sistema:

=
= +
2 x 2 x
1 x x 3
2 1
2 1

Dal punto di vista geometrico sono:

( )
[ ]
( ) ( )
( )
( ) ( )
( ) ( ) 2 x 2 x
3 x 1 x
10 , 6 x
: Jacobi
i
1
1 i
2
i
2
1 i
1
0
=
= =
=
+
+

( )
( ) ( )
( ) ( ) 2 x 2 x
x
: Saidel Gauss
1 i
1
1 i
2
1 i
=
=

+ +
+

Sto costruendo una successione di punti che pianpianino converge.
In GaussSaidel per trovare la nuova x io devo sempre usare la y ma per trovare la nuova y usa la y che
abbiamo appena trovato!
Vado a calcolare la nuova y e la proiezione sulla nuova retta la faccio a partire dalla nuova x e questo mi
aiuta infatti il pallino arriva al punto in poche iterazioni.
Poi possiamo calcolare il vettore
( ) ( )
x x er
i i
= e vediamo che lapprossimazione della soluzione minore
a parit di soluzioni: io sono arrivato molto pi vicino rispetto allaltro metodo.
Il problema che Il problema che Il problema che Il problema che

x non c lo abbiamo non c lo abbiamo non c lo abbiamo non c lo abbiamo perch la soluzione, quindi non sappiamo quando siamo arrivati
alla soluzione! Di conseguenza necessario inventare dei metodi sensati che forzano luscita dal nostro ci
clo e questi sistemi di arresto fondamentalmente sono di due tipi.
Il primo basato sullidea img 1 se voi avete qualche cosa che vonverge ad un certo valore necessariamen
te da un certo putno i npoi dovrete in quelhce modo rallentare altrimenti questo limite lo sorpassate. Man
mano che salite necessariamente pii vi avvicinate a x* pi la differena tra xi e xi+1 un criterio che ci pu
Calcolo Numerico
28 aprile 2011

2 2 2 2
aituare perche allora abbiamo visto geometricamente || x(i+1) x*|| ma x* non c lo abbiamo queindi ho fatto |
x(i+1) x(i) || ho la diffrenza tra due iterate successie deve tendere a zero io posso dire che una volta avvici
nato oltre ad un ceto tott mi fermo
|| x(i+1) x(i) || > T(stranto ) una cosa che posso calcolare erch+ a diff di x* le x i c le ho tutte
Finch la differenza grande vado avanti quantod la differenza diventa pi piccolo della mia soglia di tol
leranza mi fermo
While()
While ( || x(i+1) x(i)|| / || x(i+1)|| > tao||
Second criterio
Sto risolvenod il sistma lineare Ax=b sto cercando un vettore x* per cui Ax sia uguale a b Ax*= b se mi sto
costruento duna scci x(i) che tende a x* allora Ax(i) tender a b f2
Ax(i) tender al mio vettore dei termini noti allora pposo fermarmi quando la differena tra Ax(i) e b sar suf
ficientemente piccola. Qudando fermarimi lo deido io
!! Ax(i+1) b || <= tao
Si chiama criterio del residuo. Cio quello che rimane tra quello che ho e quello a cui devo arrivare ho an
che il criteroio in versione relativa
[!!Ax(i+1) b ||]/||b|| <= tao
Img2
Se io ho una sucessione ch e converge molto lentamente alora pu succedere che tra un iterazione i e
quella successiva ho due valori la cui differenza motlo piccola e va sotto questo tao che ho definito
allinizo quilni il criterio di arresto e verificiacto ma nonmi sono fermato ad una differena che ancira molto
grande dal mio valore x* quindi quando la convergenza molto lenta soffre di questo problema c il ri
schio che si fermi troppo presto il sistema delle iterate successive.

Anche per il ..
Allinizio dei dsitemi linari avevamo par,lato di condizionameno avevamo visto che se la matice mal con
dizionea te
!! gamma x !! / !! x !! !<= k(A)
A picole perturbazione dei miei dati corrispondono potenzialmente grandi errori sulle soluzioni se non i ab
nbiamo una matice a malcondizonata allora pu succedere che il vertore aAx(i+i) sia molto vicino a b quindi
la differenza molto piccola ma questo casua un mal condizionamento elevato della mia matrice
Soffre le convergenze lente nel critrio sulle convergenze
Il criterio sul residuo soffe i sistemi amalcondizionati

Input()
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 6 66 6 maggio 2011 maggio 2011 maggio 2011 maggio 2011


R RR R
R RR R
i ii i
i ii i
s ss s
s ss s
o oo o
o oo o
l ll l
l ll l
u uu u
u uu u
z zz z
z zz z
i ii i
i ii i
o oo o
o oo o
n nn n
n nn n
e ee e
e ee e
d dd d
d dd d
i ii i
i ii i
E EE E
E EE E
q qq q
q qq q
u uu u
u uu u
a aa a
a aa a
z zz z
z zz z
i ii i
i ii i
o oo o
o oo o
n nn n
n nn n
i ii i
i ii i
N NN N
N NN N
o oo o
o oo o
n nn n
n nn n
L LL L
L LL L
i ii i
i ii i
n nn n
n nn n
e ee e
e ee e
a aa a
a aa a
r rr r
r rr r
i ii i
i ii i

Il problema si scrive: ( ) 0 x f =
Vuol dire che lincognita una, adesso andiamo a cercare uno salare, un valore x che risolve
nellequazione.
[ ] b , a : f Vogliamo cercare un valore in un certo intervallo che dia un numero reale
Nelle equazioni lineari abbiamo sempre assunto che la matrice fosse non singolare, quando siamo passati
ai sistemi sovradeterminati, ci siamo messi nella condizione di andare a trovare qualcosa nel senso dei mi
nimi quadrati. Nel caso di equazioni non lineari sappiamo che unequazione non necessariamente ha una
soluzione allora ci mettiamo nella condizione che almeno una soluzione esiste.
Ipotesi minime da fare su f:
@ f continua ( ) ( ) 0 b f a f < ci basta questo per il teorema degli zeri che dice se io ho una funzione
definita negli intervalli, continua, che assume valori opposti negli estremi, allora esiste un punto

x in
cui f incrocia lasse delle x se i segni non fossero opposti o se la funzione non sia continua, potrebbe
non esserci soluzione. Perci ci serve che la funzione sia continua.
Il teorema degli zeri non ci si assicura che lo zero sia unico allora in questo caso non siamo troppo preoc
cupati perch vediamo di trovare una soluzione poi se c una pi di una soluzione, allora troveremo un in
tervallo pi piccolo in cui siamo sicuri che ce ne sia una sola se vagiamo trovarne una in particolare.
Per trovare dal punto di vista numerico la soluzione al mio problema che valga per ogni tipo e forma di
funzione f dobbiamo scordarci tutti i metodi diretti.
Per trovare una soluzione al nostro problema bisogna passare a una risoluzione iterativa quindi troveremo
sempre una soluzione approssimata di quella che la soluzione esatta al mio problema.
Quindi i metodi per trovare la nostra soluzione gli andremo a valutare in termini di: accuratezza del metodo
e velocit; dovremo capire cos il costo computazionale e bisogner capire in che senso vanno valutati in
termini di accuratezza...
Esempio:
( ) x 3 e x f
x
=
[ ] 0 , 1 x
metodo grafico
Ci veniva chiesto di dare una stima pi accura
ta della soluzione per fare il grafico.










6 66 6 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


M
M
e
e
t
t
o
o
d
d
o
o
d
d
i
i
B
B
i
i
s
s
e
e
z
z
i
i
o
o
n
n
e
e

Sto costruendo un algoritmo iterativo che quando x tende a pi infinito mi tende alla soluzione del mio
problema.
Abbiano il nostro intervallo di partenza [ ] b , a
( ) 2 b a c
0 0 1
+ = Il primo passo calcolare il punto medio
dopo di che quanti casi abbiamo?
1) Se ( ) 0 c f
1
= caso fortunato in cui il punto medio il numero che sto cercando.
1
c x =


2) Se ( ) ( ) 0 a f c f
1
< mi fisso i nuovi estremi uguali a a
1
= e
1 1
c b =
3) Se ( ) ( ) 0 b f c f
1
< la soluzione appartiene allintervallo [ ] b , c
1
e il nuovo intervallo sar
1 1
c a = e
b b
1
=
Posso mettermi in un ciclo su k K , 2 k = . e calcolo
( ) 2 b a c
1 n 1 n k
+ =
E proseguo la mia ipotesi
1) Se ( ) 0 c f
k
= allora mi fermo
k
c x =


2) Se ( ) ( ) 0 a f c f
1 k k
<


1 k k
a a

= ,
k k
c b =

3) Se ( ) ( ) 0 b f c f
1 k k
>


k k
c a = ,
1 k k
c b

=
[ ] a b b , a
0 0

[ ]
2
a b
b , a
1 1


[ ]
2 2
b , a
4
a b

M
[ ] 0
x 2
a b
b , a
k k k
+


Allora abbiamo un intervallo che contiene alla mia soluzione la cui ampiezza tende a zero, allora per il teo
rema dei carabinieri l ll lintervallo tende alla mia soluzione intervallo tende alla mia soluzione intervallo tende alla mia soluzione intervallo tende alla mia soluzione

x
Questa soluzione ci suggerisce anche un criterio di arresto, un criterio che, come nei sistemi lineari, dipende
dalla precisione che necessito per la mia soluzione: posso accontentarmi di una soluzione grossolana, op
pure posso richiedere unapprossimazione molto forte della mia soluzione...
Approssimazione vuol dir che vorr:
( )


x x
k

Se voglio un epsilon molto piccolo, dovr fare presumibilmente parecchie iterazioni, ma quante? Ovviamen
te

x non lo conosciamo ma in questo caso se


( ) k
x un punto del mio intervallo e

x la mia soluzione
che appartiene anch'essa nellintervallo [ ]
k k
b , a ma siccome so lampiezza dellintervallo [ ]
k k
b , a la distanza
non potr certamente superare la sua ampiezza nel caso peggiore lavr quando uno un estremo e laltro
laltro.


Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 6 66 6 maggio 2011 maggio 2011 maggio 2011 maggio 2011


( )
( )
k k
2 a b x x
Sappiamo sicuramente anche che se non conosciamo

x il residuo maggiorato da questa quantit


Per risolvere lequazione:
E lapprossimazione che io voglio, io posso calcolarmi esattamente il numero di itera
zione che mi assicura che la abbia la mia precisione maggiore o uguale a questa co
stante.
( ) 10 x 4 x x f
2 3
+ =
[ ] [ ] 2 , 1 b , a = ( ) 5 1 f =
( ) 14 2 f =
15
10

=
Il numero di iterazioni a cui mi devo fermare

>=

>=
<=

a b
log k
a b
2
2
a b
2
k
k
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 11 11 11 11 maggio 2011 maggio 2011 maggio 2011 maggio 2011


. .. . . .. . . .. . . .. . . .. . . .. . R RR R R RR Ri ii i i ii i s ss s s ss so oo o o oo ol ll l l ll l u uu u u uu uz zz z z zz z i ii i i ii i o oo o o oo on nn n n nn ne ee e e ee e d dd d d dd di ii i i ii i E EE E E EE Eq qq q q qq qu uu u u uu ua aa a a aa az zz z z zz z i ii i i ii i o oo o o oo on nn n n nn ni ii i i ii i N NN N N NN No oo o o oo on nn n n nn n L LL L L LL Li ii i i ii i n nn n n nn ne ee e e ee ea aa a a aa ar rr r r rr ri ii i i ii i
Problema: calcolo di una funzione non lineare [ ] b , a : f continua, ( ) ( ) 0 b f a f <
Metodo di bisezione: parto da un intervallo e mi costruisco la mia soluzione andando a prendere il punto
medio e stringendo lintervallo.
( )
k
k
2
a b
x c

<


Costruisco una successione di valori che converge alla soluzione e mi porta dietro anche una misura effetti
va dellerrore di approssimazione che mi porto dietro rispetto alla soluzione vera.
Il metodo di bisezione pu essere considerato un buon metodo anche dal punto di vista computazionale.
Anche in questo caso ci sono sempre i due aspetti da tenere conto: quanto costa un singolo passo e quan
ti passi ci sono da fare per arrivare alla soluzione.
Questo metodo buono perch il grosso del costo va nel calcolare
( )
( )
k
c f questo
( ) k
c un numero e cal
colare il punto medio una divisone quindi come complessit si considera il numero di volte che io valuto
la mia funzione f in un certo punto. Il costo computazionale per singola iterazione si misura in numero di va
lutazioni della mia funzione f e abbiamo visto che dobbiamo valutare f una volta sola perch calcolo
( ) k
c
come punto medio se zero, ho finito
Se
( )
( ) ( ) 0 a f c f
1 k
k
<

il nuovo intervallo [ ] [ ]
k 1 n k k
c , a b , a

=
A ogni volta devo solo calcolare (a, k1) perch
( ) k
c c lho dalliterata precedente quindi vado valutare una
volta sola.
Il problema che il numero diterazioni: il metodo di bisezione noto per esse
re un metodo molto lento per arrivare a una certa precisione epsilon ci voglio
no parecchie iterazioni, complessivamente un po lento relativamente ad altri
algoritmi che hanno una convergenza pi rapida
M MM M M MM Me ee e e ee et tt t t tt to oo o o oo od dd d d dd do oo o o oo o d dd d d dd d N NN N N NN Ne ee e e ee ew ww w w ww wt tt t t tt to oo o o oo on nn n n nn n o oo o o oo o m mm m m mm me ee e e ee et tt t t tt to oo o o oo od dd d d dd do oo o o oo o d dd d d dd de ee e e ee el ll l l ll ll ll l l ll le ee e e ee e T TT T T TT Ta aa a a aa an nn n n nn ng gg g g gg ge ee e e ee en nn n n nn nt tt t t tt ti ii i i ii i

Quello pi famoso:
La colpa di questa lentezza del metodo di bisezione dovuta al fatto che non
ottimale: un passo mi porta a essere molto vicino alla soluzione e al passo succes
sivo mi allontano. Il colpevole che della mia funzione sto usando solo il segno
assunto dalla funzione in questi punti e porta a una soluzione che vero che
converge alla soluzione ma permette questi allontanamenti rispetto alla soluzione
che si possono evitare...
Se noi ci mettiamo in un punto
( ) 0
x

e mi chiedo qual quel punto dove la funzio
ne vale esattamente zero e c' l'ho suggerisce la pendenza se da quel punto
traccio la tangente e vado verso lasse x in qualche modo la pendenza della fun
zione suggerisce dove devo muovermi per andare verso la soluzione.
Il segno una propriet che dice poco, ma la pendenza dice gi qualcosa in pi, quindi se noi seguiamo
questo suggerimento un metodo che possiamo pensare, partire da un punto
( )
( )
0
x f e lo vado a determi
nare coinvolgendo anche la derivata prima perch la pendenza coincide con la derivata prima in quel
punto.
Teorema di Taylor dice che una funzione in un certo punto ( ) x f la potete scrivere come:
( )
( ) ( )
( )
( )
( )
k
0
0 k
0 k
x x
! k
x f
x f =

+
=

11 11 11 11 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Vuol dire che localmente vicino a un punto potete approssimare una qualsiasi funzione con un polinomio
commettendo ovviamente un certo errore. Questa formula un polinomio infinito ma quello che si usa in
pratica la formula con resto resto di Peano che dice che quello che viene dopo un infinitesimo di ordi
ne pi grande quindi una cosa molto piccola e quindi trascurabile
Il resto di lagrange esprime il resto come un qualsiasi termine ( ) esimo 1 n + termine della vostra somma
toria, dove lelemento sta nellintervallo
( )
[ ] x , x
0
= dice che esiste un punto interno allintervallo per chi
potete scriverlo cos
Per i nostri scopi ci accontentiamo di avere qualche informazione sulla derivata prima quindi ci interessa so
lo:
Questo ci suggerisce un modo di costruire una successione di valori che spiegabilmente converger alla
nostra soluzione. La nostra successione la costruiamo prendendo un punto del mio intervallo
( )
[ ] b , a x
0

Mi costruisco la mia approssimazione lineare della funzione f:
( )
( )
( )
( )
( )
( )
( )
( )

=
+ =
0 x f
x x x f x f x f
0 0 0
e Risolvo il sistema ...
( )
( )
( )
( )
( )
( )
( )

=
= +
0 x f
0 x x x f x f
0 0 0

( )
( )
( )
( )
( )
( )
( )
( )
( )
( )


0
0
0
0 0
x f
x f
x f
x x x f

La mia cosa nuova sar uguale a:
( ) ( )
( )
( )
( )
( )
0
0
0 1
x f
x f
x x

= in generale:
( ) ( )
( )
( )
( )
( )
1 k
1 k
1 k k
x f
x f
x x

=
Equazione di una retta passante per un punto generico dello spazio: ( )
0 0
x x m y y =
Siccome voglio quella tangente alla mia curva, allora esattamente la derivata prima per cui il mio m e
sattamente
( )
( )
0
x f
Quindi nel nostro caso:
( )
( )
( )
( )
( )
( )
0 0 0
x x x f x f y =




( )
( )
( )
( )
( )
( )
( )
( ) ( )
( )
( )
( )
0
0 n
0 0 0
x x
! n
x f
x x x f x f x f + + + = L
( )
( ) ( )
n
0
x x
( )
( )
( )
( )
( )
1 n
0
1 n
x x
! 1 x
f +
+

+

resto di Peano
resto di Lagrange
( )
( )
( )
( )
( )
( )
( ) + + =
0 0 0
x x x f x f x f
( )
( )
0
x x
( )
( )
( )
2
0
x x
2
f


resto di Peano
resto di Lagrange
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 11 11 11 11 maggio 2011 maggio 2011 maggio 2011 maggio 2011


Convergenza del metodo di Newton
Io mi aspetto che converga pi velocemente rispetto al metodo di bisezione perch uso pi informazioni.
Anche in questo caso, come abbiamo fatto per i sistemi lineari, ci costruiamo la successione dei residui cio
gli errori commessi dal kesimo elemento della mia successione rispetto alla soluzione del mio problema
( ) ( )
= x x e
k k

A differenza dei sistemi lineari
( ) k
e uno scalare (nei sistemi lineari era un vettore) se il metodo conver
gente, sar una successione che tende a zero
( )
0 e
k
k
lim
=
+

Una successone convergente avr ordine o velocit di convergenza P se uguale ad una certa costante c:
( )
( )
( ]

=
> >
=
+
+
1 P se 1 , 0 c
1 P se 0 c
,
c
e
e
P
k
1 k
k
lim

Se io faccio questo rapporto questo limite una forma indeterminata del tipo
0
0
.
Quel rapporto dice quanto ho guadagnato nelliterazione 1 k + rispetto alliterazione esima k , pi alta
la potenza P pi il denominatore piccolo (perch se elevo un numero piccolo mi da un numero pi picco
lo )
Il limite un numero c che non , n zero n pi infinito, ho due infinitesimi messi in una frazione quindi ma
tematicamente si dice che i due infinitesimi sono dello stesso ordine cio tendono a zero nello stesso modo,
vuol dire che da un certo punto in poi le due funzioni sono quasi sovrapposte e questo si vede da questo
limite se il risultato fosse zero, vuol dire che quello sopra pi forte se il limite va a pi infinito, pi forte
quello sotto.
Se P=1 il limite finito vuol dire che mi sto muovendo con la stessa velocit sto andando verso lo zero ma mi
sto muovendo con una velocit lineare se prendete 2 P = al passo 1 k + vi siete comportati come al pas
so k al quadrato vuol dire state andando alla soluzione pi velocemente di quanto avete fatto alliterazione
precedente pi questo P cresce pi questo vi avvicinate a zero rispetto al passo k
Per p=1 la velocit di convergenza si dice lineare, con p=2 si dice quadratica ecc. pi alto p pi arrivo ve
locemente alla soluzione.
Il metodo di bisezione abbiamo visto che lampiezza dei miei intervalli a ogni sezione si dimezza quindi:
( )
( )
2
1
e
e
P
k
1 k
k
lim
=
+
+
una cosa che vera allinfinito, non vero che ad ogni iterazione lerrore al passo k+1
sia esattamente un mezzo, ma da un certo punto in poi lerrore al passo k+1 sar circa uguale alla met del
passo k. Converge con velocit lineare
Quel la velocit di convergenza del metodo di newton??
un modo per approssimare localmen
te la funzione f sufficientemente vicina al
vostro epsilon.
Consideriamo come x la soluzione quindi al posto
di x ci andiamo a mettere

x
Nella soluzione f uguale a zero, raccogliamo
( )
( )
k
x f
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
2
k
k
k
k
k
k
x x
2
f x x
x f
x f
x f 0

+
(

=


Ma questa cosa qua uguale
( ) 1 k
x
+
per via della formula

( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( ) ( )
[ ] x , x , x x
2
f
x x f x f x f
k k
2
k
k
k k k


+ + =
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
2
k
k
k k k
x x
2
f x x x f x f x f

+ + =

( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
2
k
k
k
k
k
k
x x
2
f x x
x f
x f
x f 0

+
(

=

11 11 11 11 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


( )
( )
( )
( )
( )
( )
( )
( )
2
k
k
1 k k
x x
2
f x x x f 0

+ =
+

( ) ( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
2
k k
2
k
k
k
2
k
k 1 k
e x f
e
2
f
x f e
x f e

+

( )
( )
( )
( )
( )
( )
( )
k
k
2
k
1 k
x f 2
f
e
e


=
+
Noi vogliamo calcolare il limite di qulla roba f15
( )
( )
( )
( )
( )
( )
( )
( )
( )

+
+
+


=


=
x f 2
x f
x f 2
f
e
e
k
k
k
2
k
1 k
k
lim lim

Per il teorema di Taylor preso al primo ordine dobbiamo supporre f continuo solo in questo caso possia
mo dire che il limite risulta analogamente stiamo supponendo che f sia continuo, allora se
( ) k
x tende a

x allora anche
( ) k
tende a

x
Quindi il limite risulta sicuramente no negativo ma bisogna stare attenti che il denominatore non sia
ero perch ho una divisione
Quindi con il metodo di newton ho pi condizioni rispetto a bisezione.
Ma se so che la quantit so che non pu essere zero allora la velocit di convergenza verificata con
2 P =


Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 18 maggio 2011 18 maggio 2011 18 maggio 2011 18 maggio 2011



Consiste nella costruzione di un modello continuo a partire da un modello discreto. il problema della co
struzione di una funzione a partire da uninsieme di punti. Ha applicazioni infinite soprattutto in ambito scien
tifico quando si fanno pi esperimenti su di uno stesso fenomeno e questi danno luogo a diversi valori allo
ra da un insieme di punti vorreste cercare di ricreare un modello, ovviamente continuo, che permetta di
stabilire cosa andreste a misurare in prossimit dei parametri per i quali non avete fatto voi lesperimento.
non lunica applicazione altre applicazioni sono la semplificazione di modelli di funzioni
complicate
Ad esempio: dx
1 x
e
2
x



Quello che posso fare selezionare dei punti e trovare una funzione pi semplice che sar abbastanza vi
cino alla funzione originale. Quindi o partiamo da un insieme di punti e vogliamo trovare una legge conti
nua che lega questi punti oppure partiamo da un qualcosa di continuo che per vogliamo trasformare in
qualcosa di pi semplice e quindi passiamo al discreto e poi ripassiamo al continuo...
Posso scegliere due diverse tecniche: di interpolazione o tecniche di regressione
Dal punto di vista operativo interpolare vuol dire andare a cercare una funzione che passi esattamente per
i miei punti.
vorr una funzione ( ) x f tale che ( )
i i
y x f =
Tuttavia se si lavora in ambito scientifico e non solo, si abituati a fidarsi dei propri dati ma non troppo...
per capire meglio immaginiamo di avere a che fare con un problema di astronomia: state osservano una
stella con un telescopio a terra, la stella manda la propria luce. La luce parte dalla stella attraversa una cer
ta parte di universo poi passa attraverso latmosfera, ma latmosfera spessa, ha un disturbo quindi la luce
viene un po sporcate e quando arriva al vostro telescopio dato che esso una macchina, uno strumento
allora anche lui introduce piccole elementi di disturbo che vanno a sporcare il vostro dato di partenza. Poi
ci sono delle considerazioni di tipo statistico cio ogni volta che esaminate qualcosa esiste una piccola va
riazione di tipo random per cui il valore non esattamene quello che voi vorreste misurare, ma pi o
meno quello con un certo margine derrore. Vuol dire che in questi casi, dove i dati sono di natura speri
mentale, sarebbe pi corretto rappresentare i vostri dati con una barretta, pi che un punto. Se ammettete
che possa succedere una cosa del genere, allora il modello di interpolazione non pi tanto adeguato.
Perch con una piccola variazione dei dati il modello potrebbe produrre qualcosa di molto diverso: una
scelta di punti mi porta ad un certo modello e laltra mi porta ad un altro modello molto distante dal primo.
Allora quando dei nostri dati non ci fidiamo preferibile un modello che non passi esattamente per i nostri
punti ma che ci vada vicino e semplifichiamo cos il modello
( )
i i
y x f mi basta che sia circa uguale a
i
y , che ci vada vicino.
Integrazione Numerica
18 18 18 18 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Se io ho dei modelli potenzialmente complicati che possono oscillare molto, allora se scelgo un modello
semplice mi permette una stabilit maggiore, mentre se scelgo un modello complicato, che spiegherebbe
esattamente i miei dati, ma, a piccole variazioni mi porterebbe ad un modello molto diverso.
Diciamo che una volta scelta una delle due filosofie devo scegliere la tipologia di modello perch non esi
ste un modello che, dato linsieme di punti, mi restituisce il modello interpolato, devo dirgli interpolalo con
che cosa se con funzioni trigonometriche o polinomiali ecc.
La scelta della macrofamiglia di funzioni con cui scegliere il modello dovr essere scelta dallutente. In en
trambi i metodi la prima cosa da fare scegliere la tipologia e la seconda trovare allinterno di questa
tipologia quello giusto.
Interpolazione Interpolazione Interpolazione Interpolazione
Il polinomio di Taylor un esempio di approssimazione di funzioni e consiste nellapprossimale la funzione
su un certo numero di punti. In questo caso la prima scelta labbiamo fatta: quella dellinterpolazione poli
nomiale, la seconda scelta diciamo che lambiente dei polinomi si presta bene
( ) ( )
n n 0 0
y , x , , y , x K sono i punti con i quali ho scelto di approssimare la mia funzione e io avr i corrispon
denti punti
( ) ( ) ( ) ( ) ( )
n n 0 0
x f , x , , x f , x K
Trovare un polinomio che interpola n+1 punti.
Dati n+1 punti , esiste un unico unico unico unico polinomio di grado al pi n che passa per tutti i
punti.
Ci suggerisce qual il grado che dobbiamo dare al polinomio dati i punti ini
ziali
n
n
2
2 1 0 n
x a ... x a x a a P + + + + = devo trovare questi coefficienti e per fare questo devo tradurre questo
concetto di interpolazione
0
n
n
2
2 1 0
y x a ... x a x a a = + + + + questo lo devo fare per tutti i polinomi
1
n
n
2
2 1 0
y x a ... x a x a a = + + + + condizione di passaggio per ( )
1 1
y , x
M ...
n
n
n
2
2 1 0
y x a ... x a x a a = + + + + condizione di passaggio per ( )
n n
y , x
Questo metodo si chiama M Me et to od do o d de ei i c co oe ef ff fi ic ci ie en nt ti i i in nd de et te er rm mi in na at ti i
Voglio naturalmente che queste condizioni siano tutti soddisfatte e si traduce con un sistema lineare

= + + + +
= + + + +
= + + + +
n
n
n
2
2 1 0
1
n
n
2
2 1 0
0
n
n
2
2 1 0
y x a ... x a x a a
y x a ... x a x a a
y x a ... x a x a a
M
quello che non conosciamo sono i coefficienti e non le x!!

|
|
|
|
|
|

\
|
|
|
|
|
|
|

\
|
=
n
1
0
n
n
2
n n
n
1
2
1 1
n
0
2
0 0
a
a
a
a
d x x 1
x x x 1
x x x 1
V
M
M
L
M M M M
M M M M
L
L
si chiama matrice di
V VV V
V VV VV VV Va aa a
a aa aa aa an nn n
n nn nn nn nd dd d
d dd dd dd de ee e
e ee ee ee er rr r
r rr rr rr rm mm m
m mm mm mm mo oo o
o oo oo oo on nn n
n nn nn nn nd dd d
d dd dd dd de ee e
e ee ee ee e
V
VVa
aa=
==y
yy
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 18 maggio 2011 18 maggio 2011 18 maggio 2011 18 maggio 2011


La cosa positiva che abbiamo la formula esplicita per il determinate ( ) ( ) 0 x x v det
j i
j i
=

>

Se avessimo solo tre punti ( ) ( ) ( )
2 2 1 1 0 0
y , x y , x y , x
Allora il determinate sarebbe ( ) ( )( )( )
1 2 0 1 0 2
x x x x x x v det = quando j=1 lunica possibilit per chi i sia
maggiore di j i=2
Lunico modo per cui questo determinate sia uguale a zero che ci siano due
i
x che coincidono e questa
situazione si pu escluderle perch una funzione tale se non ha dei punti sovrapposti tali che in uno
stesso momento la funzione assume due valori. Dato che questa situazione non si pu verificare il sistema
non singolare, ammette un'unica soluzione, quindi abbiamo ridimostrato il teorema di prima che diceva che
esiste un unico polinomio che interpola i diversi punti.
Il lato negativo che una matrice mal condizionata, implica un determinante piccolo, un inversa con valori
grandi. In generale se ci sono delle righe che sono dipendenti tra loro, questo sintomo di matrici mal
condizionate.
Quindi finch ho un numero di punti ridotti posso andare tranquillo che il condizionamento non dovrebbe
essere cos elevato, ma se ho un sistema molto grande devo esser cosciente che sto avendo a che fare
con un sistema mal condizionato.
In conclusione questo un algoritmo semplice, ma dal punto di vista dellerrore sulla soluzione non anco
ra ottimale: conviene cercare altri metodi .
Esempio
( ) x / 1 x f
4 x 5 , 2 x 2 x
2 1 0
=
= = =


( )
n
n
2
2 1 0 n
x a ... x a x a a x P + + + + = abbiamo scelto di scrivere il polinomio come combinazione lineare dei
polinomi { }
n 2
x ,..., x , x , 1
Se noi abbiamo ( )
0 0
y , x ( )
1 1
y , x ( ) x a a x P
1 0 1
+ =
( ) ( ) =

+ +
=

+ =
0 1
0 0 0 1 0 1 0 0 1 0
0
0 1
0 1
0 1
x x
x y x y x y x y x y x y
x x
x x
y y
y x P
0 1
0
1
1 0
1
0
x x
x x
y
x x
x x
y


lho scritto in maniera un po diversa dove compaiono , sempre una combinazione lineare ma i polino
mi sono diversi.
Se scelgo
k
L pi semplice ma il calcolo dei coefficienti complicato
Ma se mi vado a scegliere una base pi complicata la fatica per costruirsi una base pi complicata com
pensata dal fatto di avere
0
y e
1
y : i coefficienti c gli ho gratis
( ) x L
0
( ) x L
1
18 18 18 18 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Nel primo caso ho i polinomi ma devo calcolare i coefficienti, nel secondo caso calcolo tutto mai coefficienti
c gli ho gratis

Nel polinomio di grado 1 ho una combinazione lineare di due polinomi
( ) ( ) { } x L , x L
P
1 0
1

( ) ( )
( ) ( )

= =
= =
1 x L 0 x L
0 x L 1 x L
1 1
0 0


Devono verificare perch ( )
i i
y x P = voglio che tutti gli L
k
calcolati in
i
x siano zero: lunico che deve so
pravvivere L
i

( ) ( ) ( ) ( ) ( ) x L y x L y x L y x L y x P
3 3 2 2 1 1 0 0 3
+ + + =

diventano zero quando questi due numeretti sono discordi e diventano uno quando sono uguali
( ) ( ) ( ) ( ) ( )
1 3 3 1 2 2 1 1 1 1 0 0 3
x L y x L y x L y x L y 1 x P + + + =
=1 sono concordi =0 sono discordi
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 19 maggio 2011 19 maggio 2011 19 maggio 2011 19 maggio 2011


. .. .
. .. .. .. . . .. .
. .. .. .. . . .. .
. .. .. .. . I II I
I II II II In nn n
n nn nn nn nt tt t
t tt tt tt t e ee e
e ee ee ee er rr r
r rr rr rr rp pp p
p pp pp pp po oo o
o oo oo oo ol ll l
l ll ll ll l a aa a
a aa aa aa az zz z
z zz zz zz zi ii i
i ii ii ii i o oo o
o oo oo oo on nn n
n nn nn nn ne ee e
e ee ee ee e
( ) ( )
n n 0 0
y , x , , y , x K
Metodo dei coefficienti indeterminati:
( )
n
n
2
2 1 0 n
x a x a x a a x P + + + + = K
y Va = { }
n 2
x , , x , x , 1 K dobbiamo risolvere la matrice di Vandermonde che una matrice
sparsa e di conseguenza pu portare ad un errore algoritmico che aumenta man mano che la matrice
diventa grande.
Un'altra soluzione quella di mantenere il modello polinomiale, ma cerchiamo di trovarlo in un altro
modo e quindi cambiamo lespressione del polinomio: cambiamo la base, si possono trovare delle basi
alternative per cui il calcolo risulti pi semplice dato che i coefficienti c gli ho gi gratis.
( ) ( ) ( ) ( ) x L y x L y x L y x P
n n 1 1 0 0 n
+ + + = K
( ) ( ) ? x L , , x L
n 0
= K
Come devono essere fatti questi polinomi ( ) ( ) ? x L , , x L
n 0
= K in modo tale che il polinomio riesco a
scriverlo come ( ) ( ) ( ) ( ) x L y x L y x L y x P
n n 1 1 0 0 n
+ + + = K
Se per scrivere una retta abbiamo bisogno di un polinomio di grado uno, come base ogni polinomio
di grado n lo scrivo come combinazione lineare di n+1 polinomi di grado n e sono tutti gli
k
L .
Dopo di ch il polinomio in
i
x deve essere esattamente
i
y ( )
i i n
y x P =
Queste sono le condizioni che mi devono guidare per costruire i miei polinomi.
Vuol dire che al posto di x ci vado a mettere
i
x : ( ) ( ) ( ) ( ) ( )
i n n i i i i 1 1 i 0 0
x L y x L y x L y x L y n P + + + + + = K K
( ) ( ) ( ) ( ) x L y x L y x L y x P
2 2 1 1 0 0 2
+ + = In questo caso le tre condizioni che devono essere verificate so-
no: ( ) ( ) ( )
2 2 2 1 1 2 0 0 2
y x P y x P y x P = = =
In pratica voglio che la mia parabola passi per questi tre punti
0
x lo trovo andando a sostituire
0
x f5
( ) ( ) ( ) ( )
0 2 2 0 1 1 0 0 0 0 2
x L y x L y x L y x P + + =
Allora deve succeder che =1 =0 =0
l ( ) ( ) ( ) ( )
1 2 2 1 1 1 1 0 0 1 2
x L y x L y x L y x P + + =
=0 = 1 =0
( ) ( ) ( ) ( )
2 2 2 2 1 1 2 0 0 2 2
x L y x L y x L y x P + + =
Gli
k
L devono essere costruiti in modo tale che
( )
( ) 1 x L
k i 0 x L
k k
i k
=
=
ogni volta che lo calcolo in
un punto con lindice diverso quello deve valere zero mentre quando sono uguali, deve essere
uno.
Dobbiamo costruire n+1 polinomi di grado n che soddisfano queste condizioni.
La prima condizione del generico
k
L che sia un polinomio di grado n, che si annulla in tutti gli
i
x con
k i allora ad esempio se dovessimo scrivere un polinomio che si annulli in 1 x
1
= 2 x
2
= 3 x
3
=
scriveremmo ( )( )( ) 3 x 2 x 1 x affinch sia verificata quella condizione.
3 33 3
3 33 33 33 3
1 11 1
1 11 11 11 1
2 22 2
2 22 22 22 2
y
0
y
2
y
1
18 18 18 18 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


( ) ( )( ) ( )( ) ( )
n 1 k 1 k 1 0 k
x x x x x x x x x x x L =
+
K K abbiamo saltato ( )
k
x x quello che ci interes-
sa a noi cos non si annulla.
Se calcolo il polinomio nel punto
k
x ( ) ( )( ) ( )( ) ( )
n k 1 k k 1 k k 1 k 0 k k k
x x x x x x x x x x x L =
+
K K sar
un numero, ma non sar uguale a uno: sar un polinomio che sicuramente si annulla in tutti i questi
punti, ma non quello che serve a noi, perch c ne possono essere diversi, il problema sta
nellindividuare il polinomio giusto che magicamente mi annulli tutti i polinomi tranne il polinomio nel
punto
k
x .
Tuttavia il polinomio trovato moltiplicato per una costante diventa un altro polinomio completamente
diverso. In conclusione il trucco sta nel trovare questa costante
( ) ( )( ) ( )( ) ( )
n 1 k 1 k 1 0 k
x x x x x x x x x x x L =
+
K K
Se io scrivo il polinomio cos: ( )
( )( ) ( )( ) ( )
( )( ) ( )( ) ( )
n k 1 k k 1 k k 1 k 0 k
n 1 k 1 k 1 0
k
x x ... x x x x ... x x x x
x x x x x x x x x x
x L


=
+
+
K K

e poi vado a sostituire al posto di x
k
x
( )( ) ( )( ) ( )
( )( ) ( )( ) ( )
n k 1 k k 1 k k 1 k 0 k
n k 1 k k 1 k k 1 k 0 k
x x ... x x x x ... x x x x
x x x x x x x x x x


+
+
K K

Allora si annulla.
Scritto in forma pi compatta:

=
n
k i
0 i i k
i
x x
x x

Sindicano con L perch si chiamano p pp p
p pp pp pp po oo o
o oo oo oo ol ll l
l ll ll ll li ii i
i ii ii ii i n nn n
n nn nn nn no oo o
o oo oo oo om mm m
m mm mm mm mi ii i
i ii ii ii i d dd d
d dd dd dd di ii i
i ii ii ii i L LL L
L LL LL LL La aa a
a aa aa aa ag gg g
g gg gg gg gr rr r
r rr rr rr ra aa a
a aa aa aa an nn n
n nn nn nn ng gg g
g gg gg gg ge ee e
e ee ee ee e
Il nostro polinomio dinterpolazione si pu scrivere come ( ) ( )

=
=
n
0 k
n n
x L y x P . Dal punto di vista al-
goritmico abbiamo spostato il calcolo dei polinomi al calcolo dei coefficienti, ma sono solo mol-
tiplicazioni e una volta che abbiamo in nostri n+1 polinomi fare la moltiplicazione il meno. Da
un punto di vista algoritmico la procedura risulta pi stabile.
( )
x
1
x f =
25 , 0 y 4 , 0 y 5 , 0 y
4 x 5 , 2 x 2 x
2 1 0
2 1 0
= = =
= = =


( )
10 x 5 , 6 x
4 2
4 x
5 , 2 2
5 , 2 x
x x
x x
x x
x x
x x
x x
L
2
2 0
2
1 0
1
2
0 i
0 i i 0
i
0
=

=

( )
( ) 8 x 6 x
3
4
4 5 , 2
4 x
2 5 , 2
2 x
x x
x x
x x
x x
x x
x x
L
2
2 1
2
0 1
0
2
1 i
0 i i 1
i
1
+ =

=

Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 19 maggio 2011 19 maggio 2011 19 maggio 2011 19 maggio 2011



( )
( ) 5 x 5 , 4 x
3
1
5 , 2 4
5 , 2 x
2 4
2 x
x x
x x
x x
x x
x x
x x
L
2
1 2
1
0 2
0
2
2 i
0 i i 2
i
2
+ =

=

( ) ( ) ( ) ( ) ( ) 15 , 1 x 425 , 0 x 05 , 0 5 x 5 , 4 x
12
1
8 x 6 x
15
8
1 5 , 6 x
2
1
x L y x P
2 2 2 2
2
0 k
k k 2
+ = + + + + = =

=


A AA A
A AA AA AA Ap pp p
p pp pp pp pp pp p
p pp pp pp pl ll l
l ll ll ll li ii i
i ii ii ii ic cc c
c cc cc cc ca aa a
a aa aa aa az zz z
z zz zz zz zi ii i
i ii ii ii io oo o
o oo oo oo on nn n
n nn nn nn ne ee e
e ee ee ee e d dd d
d dd dd dd de ee e
e ee ee ee el ll l
l ll ll ll ll ll l
l ll ll ll l
i ii i
i ii ii ii in nn n
n nn nn nn nt tt t
t tt tt tt te ee e
e ee ee ee er rr r
r rr rr rr rp pp p
p pp pp pp po oo o
o oo oo oo ol ll l
l ll ll ll la aa a
a aa aa aa az zz z
z zz zz zz zi ii i
i ii ii ii io oo o
o oo oo oo on nn n
n nn nn nn ne ee e
e ee ee ee e p pp p
p pp pp pp po oo o
o oo oo oo ol ll l
l ll ll ll li ii i
i ii ii ii in nn n
n nn nn nn no oo o
o oo oo oo om mm m
m mm mm mm mi ii i
i ii ii ii ia aa a
a aa aa aa al ll l
l ll ll ll le ee e
e ee ee ee e
Lapplicazione principe dellinterpolazione di funzioni il calcolo di integrali perch pu succedere che non
si conosca come fatta tutta la funzione x, ma la so solo in alcuni punti, oppure si conosce la funzione ma
non si conosce la funzione analitica della primitiva oppure possibile che si riesca a scrivere la funzione
primitiva, ma risulti essere complicato farlo. Perci utile avere in mano degli strumenti per calcolare la mia
funzione in modo approssimato .

=
b
a
dx ) x ( f I Cerco un modo per arrivare ad una approssimazione del mio numero I
Le formule che approssimano lintergale d una funzione si scrivano come una sommatoria. Diciamo che
sommatoria e integrale sono due concetti molo vicini fondamentalmente perch lintegrale una sommato
ria fatta su punti molto piccoli.
Definizione di integrale secondo Riemann:

( ) ( )( ) [ ]
R I ) f ( Rn
b x x a x , x t x x t f f R
lim
n
n 0 i 1 i i
n
1 i
1 i i i n
=
= < < = =
+

=

K

Se al tendere di n allinfinito questa sommatoria, che diventa una serie, converge ho un numero reale allora
questo numero lo indico con I e lo chiamo "integrale da 'a' a 'b'"
( )

=
+
=
n
0 i
i i 1 n
x f a S Prende il nome di F FF F
F FF FF FF Fo oo o
o oo oo oo or rr r
r rr rr rr rm mm m
m mm mm mm mu uu u
u uu uu uu ul ll l
l ll ll ll la aa a
a aa aa aa a d dd d
d dd dd dd di ii i
i ii ii ii i Q QQ Q
Q QQ QQ QQ Qu uu u
u uu uu uu ua aa a
a aa aa aa ad dd d
d dd dd dd dr rr r
r rr rr rr ra aa a
a aa aa aa at tt t
t tt tt tt tu uu u
u uu uu uu ur rr r
r rr rr rr ra aa a
a aa aa aa a
una sommatoria che coinvolge un numero di coefficienti e di punti che serve per approssimare lintegrale
in un certo intervallo.
Ora cosa centra linterpolazione?
Se il mio problema di calcolare

=
b
a
dx ) x ( f I ma f non facile da calcolare, allora approssimo f(x) sul suo
polinomio di interpolazione calcolato su un certo numero di punti.
( ) ( ) x q x f
n
( )


b
a
n
dx x q I
La differenza tra ( ) ( ) ( )

=
b
a
b
a
n
a . b c dx c dx x q x f I I so quanto sbaglia, quanto dista il poli
nomio di interpolazione rispetto alla mia funzione f. Pi lintervallo sar grande e pi il mio errore sar
grande.
A questo punto al posto di q
n
ci mettiamo il polinomio nella formula di Lagrange
18 18 18 18 maggio 2011 maggio 2011 maggio 2011 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


( ) ( ) ( ) ( )

= =
= =
n
0 k
k k
n
0 k
k k n
x L x x L y x q
( ) ( ) ( ) ( )
1 n
n
0 k
k
b
a
k
b
a
k k
S x f dx x L dx x L x f I
+
=
=

= =



Si arriva a un esempio di formula di quadratura, esprimibile con una sommatoria, per calcolare in maniera
approssimata un integrale.
Le formule d quadratura interpolatorie sono quelle particolari formule in cui si calcolano integrali con
lapprossimazione della f(x) con il polinomio di interpolazione

Lunico problema che rimasto la scelta di n con linterpolazione siamo partiti da un polinomio n+1 se fac
cio unapprossimazione il numero di punti devo sceglierlo io e verr una formula diversa a seconda di cosa
metto io al posto di n.
Il caso pi semplice caso pi semplice caso pi semplice caso pi semplice quello in cui n=0 n=0 n=0 n=0 ho soltanto un punto solo.
( ) ( )
0
b
a
0 1
x f dx x L S


Img1

Avr un polinomio di grado zero che una costante e questa costante varr 1 allora lintegrale di 1 x e
x
0
coincideva con a.
( ) ( ) a f a b
= Formula di quadratura interpolatoria: mi approssima lintegrale ad un rettangolo. Ov
viamente grossolana perch state facendo un errore molto grande, che dato dal fatto che state facen
do un approssimazione basata su un solo punto.
quella che nota come FORMULA DEI RETTANGOLI



=1
C CC Calcolo Numerico alcolo Numerico alcolo Numerico alcolo Numerico 20 maggio 2011 20 maggio 2011 20 maggio 2011 20 maggio 2011


A AA A
A AA AA AA Ap pp p
p pp pp pp pp pp p
p pp pp pp pl ll l
l ll ll ll li ii i
i ii ii ii ic cc c
c cc cc cc ca aa a
a aa aa aa az zz z
z zz zz zz zi ii i
i ii ii ii io oo o
o oo oo oo on nn n
n nn nn nn ne ee e
e ee ee ee e d dd d
d dd dd dd de ee e
e ee ee ee el ll l
l ll ll ll ll ll l
l ll ll ll l
i ii i
i ii ii ii in nn n
n nn nn nn nt tt t
t tt tt tt te ee e
e ee ee ee er rr r
r rr rr rr rp pp p
p pp pp pp po oo o
o oo oo oo ol ll l
l ll ll ll la aa a
a aa aa aa az zz z
z zz zz zz zi ii i
i ii ii ii io oo o
o oo oo oo on nn n
n nn nn nn ne ee e
e ee ee ee e a aa a
a aa aa aa al ll l
l ll ll ll l c cc c
c cc cc cc ca aa a
a aa aa aa al ll l
l ll ll ll lc cc c
c cc cc cc co oo o
o oo oo oo ol ll l
l ll ll ll lo oo o
o oo oo oo o i ii i
i ii ii ii in nn n
n nn nn nn nt tt t
t tt tt tt te ee e
e ee ee ee eg gg g
g gg gg gg gr rr r
r rr rr rr ra aa a
a aa aa aa al ll l
l ll ll ll le ee e
e ee ee ee e

=
b
a
dx ) x ( f I
( )


=
+
|
|

\
|
=
n
0 k
k
b
a
k 1 n
x f dx ) x ( L S
Il caso pi semplice avviene quando ( ) ( ) a f a b S 0 n
1
= = e allo
ra lapprossimazione dellintegrale degenera nella formula dei rettangoli

( )

=
n
k i
0 i i k
i
k
x x
x x
x L
Che cosa succede se noi iniziamo a salire con i punti?
Caso in cui n=1
( ) ( ) b f dx ) x ( L a f dx ) x ( L S
b
a
1
b
a
0 2
|
|

\
|
+
|
|

\
|
=


( ) ( )
( ) ( )
( )
( ) ( )
( )
( )
( )
( )
2
a b
a b
a b 2
1
a ab 2 b
b a 2
1
ab
2
a
2
b
b a
1
bx
2
x
b a
1
dx
x x
x x
dx x L
ab
2
a
2
b
b a
1
bx
2
x
b a
1
dx
x x
x x
dx x L
x x
x x
x L
2 2 2
2 2
b
a
2
b
a
1 0
1
b
a
0
2 2
b
a
2
b
a
1 0
1
b
a
0
1 0
1
0

= +

=
=
(

=
(

= =
=
(

=
(

=



( ) ( )
( ) ( )
( )
[ ]
( )
( )
2
a b
a b
a b 2
1
a ab 2 b
a b 2
1
2
a
ab
2
b
a b
1
ax
2
x
a b
1
x x
x x
dx x L
x x
x x
x L
2 2 2
2 2
b
a
2
b
a
0 1
0
b
a
1
0 1
0
1

= +

=
=
(

=
(

=


( ) ( ) ( ) ( ) ( ) b f a f
2
a b
b f
2
a b
a f
2
a b
S 1 n
2
+

= =
la formula di quadratura interpolatoria calcolata su f(a) e f(b) di a e b, vuol dire approssimare con un area
di un trapezio

1 IMG
b x 1 x x a
n 0
= < < < = K
8 maggio 2011 8 maggio 2011 8 maggio 2011 8 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


n=2 vuol dire che abbiamo tre punti a x
0
= , b x
2
= e
1
x prenderemo il punto medio
( ) ( ) b f dx ) x ( L
2
a b
f dx ) x ( L a f dx ) x ( L S
b
a
2
b
a
1
b
a
0 3

|
|

\
|
+ |

\
|

|
|

\
|
+
|
|

\
|
=

coinvolge tre addendi...
( ) ( )
( )
( )
( )
( ) ( )
( )
( )
( )
6
a b
12
a b
a b
2
12
a b
b a
2
12
ba 3 a b 3 a b
b a
2
12
ab 6 b a 6 b a 9 a 3 a 4 b 6 ab 6 ab ab 3 b 4
b a
2
2
ab b a
4
b a 3 a
3
a
2
b ab
4
b 3 ab
3
b
b a
2
x
2
b ab
x
4
b 3 a
3
x
b a
1
2
b a
1
dx b x
2
b a
x
b a
1
2
b a
a
1
dx
b a
b x
2
a b
a
2
a b
x
dx
x x
x x
x x
x x
dx x L
x x
x x
x x
x x
x L
3
2
3
2
2 2 3 3
2
2 2 2 3 3 3 2 3 2 3
2
2 2 2 3 3 3 2 3 2 3
2
b
a
2
2
3
b
a
b
a
b
a
2 0
2
1 0
1
b
a
0
2 0
2
1 0
1
0

=
+

=
=
+ + + +

=
=
(

+
+
+
+
+

=
=
(

+
+
+

=
= |

\
| +

=



( ) ( )
( ) ( )
( )
6
a b 4
dx
x x
x x
x x
x x
dx x L x L
6
a b
dx
x x
x x
x x
x x
dx x L x L
b
a
2 1
2
0 1
0
b
a
2 1
b
a
1 2
1
0 2
0
b
a
2 2

= =

= =



( ) ( )
|
|

\
|
+ |

\
| +
+

= b f
2
b a
f 4 a f
6
a b
S
3
si chiama formula di formula di formula di formula di Cavalieri Cavalieri Cavalieri Cavalieri Simpson Simpson Simpson Simpson
un polinomio di interpolazione, una formula di quadratura. calcolata su tre punti e praticamente calcola
lara di una parabola stiamo facendo un area di una parabola
F(x)=x
2
2x+3
( )
( )
3
7
2 9 3
6
1
2 3 1
4
1
4 3
6
0 1
S
x 3
2
x
2
3
x
dx x f
3
1
0
2 3
1
0
= + + =
(

+
|

\
|
+ +

=
(

+ =


La formula di Cavalieri Simpson se ci metto una qualsiasi funzione mi da un integrale, che pi preciso di
quello che ottengo con la formula dei rettangoli e dei trapezi, questo perch ho usato pi informazioni
Famiglia di formula che allaumentare di n il caso generale dividere il mio intervallo in n punti calcolare i
coefficienti della formula di quadratura calcolando lintegrale.
Le formula di quadratura in cui i punti
n 0
x , , x K li prendo equidistanti la famiglia di formule che vengono
fuori si chiamano f ff f
f ff ff ff fo oo o
o oo oo oo or rr r
r rr rr rr rm mm m
m mm mm mm mu uu u
u uu uu uu ul ll l
l ll ll ll le ee e
e ee ee ee e d dd d
d dd dd dd di ii i
i ii ii ii i N NN N
N NN NN NN Ne ee e
e ee ee ee ew ww w
w ww ww ww wt tt t
t tt tt tt to oo o
o oo oo oo on nn n
n nn nn nn n
C CC C
C CC CC CC Co oo o
o oo oo oo ot tt t
t tt tt tt te ee e
e ee ee ee es ss s
s ss ss ss s.
b
2
b a
x
2
b 3 a
x
2
+
+
+

C CC Calcolo Numerico alcolo Numerico alcolo Numerico alcolo Numerico 20 maggio 2011 20 maggio 2011 20 maggio 2011 20 maggio 2011


Sono particolari formule di quadratura interpolatorie in cui i punti di interpolazione li prendo equidistanti
nellintervallo [ ] b , a .
Se io ho lintegrale di una funzione e non so come calcolarlo prendo il polinomio di interpolazione, e se ho
bisogno di un integrale sempre pi preciso aumento il numero di punti, e man mano la mia precisione au
menter sempre fino a quando non raggiungo quella desiderata.
Sembrerebbe sufficiente andare approssimare lintegrale con una formula di quadratura sufficientemente
grande e questo purtroppo non vero perch il polinomio di interpolazione quando n cresce pu fare
degli scherzi
Funzione ( ) Rungze
x 25 1
1
x f
2
+
=
Scegliamo n punti e calcoliamo il polinomio di interpolazione,
il risultato che il polinomo approssima molto bene al centro

clear all;
n= 19;
f=inline(1./(1+25x.^2);
%punti di tabulazione
z=linspace(-1,1,10000);
fz=f(z);
%nodi uniformemente spaziati in [-1,1]
x_eq=linespace(-1,1,n);
y_eq=f(x_eq);
p_eq=P16b_lagrange(x_eq,y_eq,z);
figure;
plot(z,f,b,x_eq,y_eq,ro,z,p_eq,k:
title([Nodi equispaziati (n= num2strr(n)

Il problema la scelta di un unico polinomio su cui andare a calcolare i punti su tutto lintervallo un polino
mio in grado di oscillare parecchio la scelta di un unico polinomio per approssimare i dati potrebbe non
essere abbastanza semplice pi salgo pi do la possibilit di dare al mio modello la possibilit di inventarsi
delle oscillazioni.
Vorremmo definire un metodo che non abbia comportamenti patologici per nessuna funzione.
Basta fare una piccola correzione per risolvere questo tipo di problemi, e poi vediamo come possibile
mettere a posto i casi patologici di questo tipo cambiando la tipologia di funzioni nella famiglia dei polino
mi se io ho 100 punti devo fare un polinomio di grado 99.
Il giochino abbastanza semplice per risolvere questi problemi di instabilit
IMG4
Abbiamo detto che per avere una formula pi precisa mi aspetterei di alzare i punti e quindi il grado del
polinomio, questo per potrebbe non essere vero per tutte le funzioni, allora io continuo a suddividere
lintegrale in punti ma al posto di calcolare lintegrale di interpolazione su tutti questi punti e poi usare la
formula, io posso usare una formula semplice per ogni una di questi intervalli, posso prendere un pezzo di
unzione e calcolare lintegrale con rettangoli trapezi ecc.
formule di Newton Cotes composte
Suddividiamo lintervallo in un certo numero di punti e poi avremo il nostro integrale
( ) ( )



=
+
= =
1 n
0 k
Z
Z
b
a
1 k
N
dx x f dx x f I
( ) ( )

=
+ +
=
1 n
0 k
k
1 n
n
1 n
S J I
( )
[ ]
1 k N
k
1 n
z , z S
+ +

Quella formula mi approssima lintegrale della funzione in quellintervallino quindi lintegrale I dato dalla
somma di ogni intervallino.

8 maggio 2011 8 maggio 2011 8 maggio 2011 8 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Quando n=0
( ) ( )
( ) ( )
k
1 n
0 k
k 1 k
1 n
0 k
k
1
n
1
z f z z S J


=
+

=
= = Formula dei rettangoli applicata ad un generico intervallino [ ]
1 k k
z , z
+

Se supponete di dividere il vostro intervallo [ ] b , a in punti equidistanti questa distanza:

( )

=
1 n
0 k
k
z f
N
a b
e
( )
( ) ( ) ( )
+
+
+

=
1 k 1
k 1 n n
2
z f z f
2
z z
J Formula dei trapezi composta
quando la suddivisione regolare ( ) ( ) ( )

=
|
|

\
|
+ +

=
1 n
0 n
1 n
1 k
n k 0
z f z f 2 z f
N 2
a b

al posto dei rettangoli avete i trapezi
Ultima formula
N=2
( )
( ) ( )
|
|

\
|
+ |

\
| +
+

=
+
+

=
+
1 k
1 k k
1
1 n
0 k
k 1 n n
3
z f
2
z z
f 4 z f
6
Z Z
J
( ) ( ) ( )
(

+ |

\
| +
+ +

=


=
+

=
1 n
1 k
n
1 k 1
1 n
1 n
k 0
z f
2
z z
f 4 z f 2 z f
N 6
a b

Per ogni formula abbiamo uno strumento per dire quanto le formule distano dal nostro I, quanto lerrore...
riusciamo a stimare lerrore commesso dalla formula e da li si riesce a capire quanto quel numero tenda a
zero.

Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 24 maggio 2011 24 maggio 2011 24 maggio 2011 24 maggio 2011



Quando si affronta il problema dellapprossimazione di dati e funzioni c una scelta da fare: approssimare
un certo numero di punti a una funzione (interpolazione) oppure semplificare una funzione e scegliere qual
cosa che si ci avvicini (regressione). Se si sceglie la strada dellinterpolazione abbiamo esaminato cosa av
viene se utilizziamo un polinomio come modello.
Con il modello Polinomiale possiamo scegliere di approssimare la funzione intorno ad un punto, in questo
caso dobbiamo avere informazioni molto dettagliate. Se non abbiamo a disposizione abbastanza informa
zioni possiamo scegliere di utilizzare pi punti e in tal caso possiamo scegliere di utilizzare il metodo dei
coefficienti indeterminati oppure i polinomi di Lagrange (poi abbiamo visto la loro applicazione
allintegrazione).
Abbiamo per notato che pi si aumentano i punti pi necessario aumentare il grado del polinomio e di
conseguenza la funzione libera di oscillare notevolmente dando luogo a dei problemi di instabilit, Per
risolvere questo problema si segue la filosofia utilizzata per le formule di quadratura, perci si cambia la
famiglia principe (i polinomi) usata per linterpolazione.
Utilizzando solo un punto ottenevamo una formula del genere:
poi abbiamo iniziato ad aumentare sempre di pi i punti per approssimare meglio la funzione, ma se n (nu
mero dei punti) tende allinfinito abbiamo visto che non sempre converger alla funzione, ma si potrebbero
verificare dei fenomeni di instabilit osservati con la funzione di Runche. La soluzione adottata quella di
suddividere lintervallo in un certo numero di punti e applicare la formula localmente per ogni sottointerval
lo, al posto di calcolare il polinomio di interpolazione, che rappresenta tutti quei punti, e poi applicare la
formula globalmente. Questo ci permette di utilizzare la formula con un grado basso.
Rettangoli:




Se avessimo utilizzato i trapezi:





24 maggio 2011 24 maggio 2011 24 maggio 2011 24 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico



Si vede che la mia funzione originaria la sto approssimando con una spezzata, che non un polinomio, ma
questo semplice cambiamento mi permette di costruire una formula che al tendere di n allinfinito tende
allintegrale ed lidea alla base delle formule di interpolazione standard ovvero: s sl le eg ga ar re e i il l g gr ra ad do o d de el l
p po ol li in no om mi io o d da al l n nu um me er ro o d di i p pu un nt ti i. Per questo motivo siamo passati da un modello polinomiale ad un
.
b x x x x a
1 m m 1 0
= < < < < =
+
K
un polinomio di un certo grado in ogni intervallino. La differenza che noi vorremo chiedere qualche co
sa in pi rispetto al modello base, perch di funzioni polinomiali a tratti c ne sono in abbondanza, alcune
di queste non vanno bene. Ad esempio:

Richiedere una funzione polinomiale a tratti non sufficiente, dobbiamo inserire delle condizioni aggiuntive
che garantiscano un minimo di regolarit perci definiamo una certa sottolasse di sottoinsieme di funzioni
polinomiali a tratti che prendono il nome di F FF F
F FF FF FF Fu uu u
u uu uu uu un nn n
n nn nn nn nz zz z
z zz zz zz zi ii i
i ii ii ii i o oo o
o oo oo oo on nn n
n nn nn nn ni ii i
i ii ii ii i S SS S
S SS SS SS Sp pp p
p pp pp pp pl ll l
l ll ll ll l i ii i
i ii ii ii i n nn n
n nn nn nn ne ee e
e ee ee ee e.
Funzioni Spline di grado n relativo alla partizione x
0
, . . . , x
m+1
di [a, b] una funzione [ ] b , a : S t. c. i.
> ( ) x S coincida con un polinomio x S
i
di grado n in
> Essendo in ogni sottointervallo dei polinomi, e i polinomi sono derivabili tutte le volte che volete, in
ogni intervallo la funzione il pi regolare possibile, il problema sono i punti dove si attaccano, per
ch devono congiungersi in maniera buona.
( )
( )
( )
( )
1 m , , 0 i
1 n , , 0 k
x S x S
1 i
k
1 i 1 i
k
i
=
=
=
+ + +
K
K

Con 1 n = vuol dire una Spline di primo grado (si chiama Spline lineare) corrisponde ad una spezzata e se
non metto la seconda condizione posso anche contemplare:

La seconda condizione dice che deve valere quella uguaglianza per ogni k che identifica la derivata. Nel
caso di Spline lineare con n=1 lunica condizione che abbiamo k=0 vuol dire che tutti i punti si devono at
taccare. Queste condizioni di raccordo condizioni di raccordo condizioni di raccordo condizioni di raccordo valgono sui punti interni: dal secondo al penultimo punto.
Con k=0 richiedo soltanto che la funzione S sia continua.
Con 2 S = stiamo chiedendo che ogni pezzo di ramo sia una ramo di parabola. In questa situazione vo
gliamo evitare (come la peste! ) i punti dove no c la derivata prima perch graficamente sono quelli do
ve la funzione fa gli spigoli
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 24 maggio 2011 24 maggio 2011 24 maggio 2011 24 maggio 2011



Sicuramente ( ) ( ) x S e x S
1 0
sono due valori diversi. Quindi chiedo no soltatno che si uniscano, ma che si u
niscano in maniera da non generare spigoli, cio con continuit della derivata prima, allora il modello com
plessivo inizia ad avere un senso anche visivo.
Riassumendo chiedo con:
1 n = funzione continua
2 n = funzione continua e derivabile
3 n =
funzione continua e derivabile un'altra volta
Questa la macro famiglia che vogliamo modellare per andare a trovare il nostro modello cos come ab
biamo fatto per i polinomi.
Arrivati a questo punto, bisogna capire se anche in questo caso c unicit data una serie di punti. Dob
biamo vedere com il bilanciamento tra il numero di parametri che servono e il numero di condizioni che
ho per definire la funzione. (con i polinomi avevamo un bilanciamento perfetto n+1 e n+1).
( )
( )
( ) ( ) ( )
[ ]
( )
( ) ( ) ( )
[ ]
( )
( ) ( ) ( )
[ ]

+ + + =
+ + + =
+ + + =
+ 1 m m
n m
n
m
1
m
0 m
2 1
n 1
n
1
1
1
0 1
1 0
n 0
n
0
1
0
0 0
x , x x se x a ... x a a x S
x , x x se x a ... x a a x S
x , x x se x a ... x a a x S
x S
M M

Per ogni polinomio ho n+1 coefficienti e ho m+1 polinomi quindi ho ( )( ) 1 m 1 n + + coefficienti da deter
minare. Ho un equazione per ogni punto interno per k=0 fino a n1 quindi m n equazioni (condizioni di
raccordo). Poi ci sono le condizioni di interpolazione che sono quelle che mi dicono che il mio modello
una Spline
( ) 1 m , , 0 i , y x S
i i
+ = = K
( ) ( )
1 m 1 m 0 0
y , x , , y , x
+ +
K avr m+2 equazioni una per punto che sono le condizioni di interpolazione
Abbiamo la funzione a tratti che richiede un certo numero di parametri per definire il polinomio, poi ci sono
le condizioni di raccordo che trasformano S in una Spline e vogliamo interpolarla nei nostri punti e dobbia
mo trovare il modello che lega x e y allora per ogni x
i
deve valere y
i
( ) 1 m , , 0 i , y x S
i i
+ = = K
Devo imporre che la mia Spline passi per i punti e sono altre m+2 condizioni da aggiungere per andare a
determinare i miei punti.
In totale:
numeri di coefficienti da determinare
condizioni di raccordo
condizioni di interpolazione

Per vedere se bilanciato tolgo in numero di incognite e il numero di equazioni
Da questo calcolo vediamo come lunicit della Spline di interpolazione non sempre verificata (lunicit c
lho quella equazione uguale a zero) in questo caso lunicit della Spline da n. Lunico caso in cui ho un'u
nica Spline il caso in cui n=1 allora . c . t lineare spline ! ( ) 1 m , , 0 i , y x S
i i
+ = = K sia il polinomio di
interpolazione che la Spline lineare sono unici.
Ma la Spline lineare un po scadente: ha il lato positivo di essere unica, per un modello non derivabile,
con spigoli, troppo semplice quindi insoddisfacente.
( )
( )
( ) 2 m
mn 1 m
1 n
+
+
+
24 maggio 2011 24 maggio 2011 24 maggio 2011 24 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico



Proviamo ad aumentare un pochino n per avere un modello derivabile, ma andiamo in contro a problemi di
non unicit vuol dire che abbiamo infiniti modelli, allora si cerca di mantenere n sufficientemente basso (n=3
in genere) e si cercano criteri intelligenti per andare a determinare i due parametri che rimangono fuori.
Cerchiamo di capire la strategia per trovare i coefficienti della S SS S
S SS SS SS Sp pp p
p pp pp pp pl ll l
l ll ll ll l i ii i
i ii ii ii i n nn n
n nn nn nn n e ee e
e ee ee ee e c cc c
c cc cc cc c u uu u
u uu uu uu ub bb b
b bb bb bb bi ii i
i ii ii ii i c cc c
c cc cc cc c a aa a
a aa aa aa a (vuol dire Spline di grado 3).
Dati
1 m 0 1 m 1 0
y , , y assegnati e b x x x a
+ +
= < < < = K K esiste ununica funzione Splne cubica ( ) x S
tale che ( ) 1 m , , 0 i y x S
i i
+ = = K e tale che valga una delle seguenti condizioni:
> ( ) ( ) 0 x S , Z x S
1 m 0 0
= =
+
con
1 m 0
Z , Z
+
assegnati Spline Cubica Vincolata
> ( ) ( ) 0 x S x S
1 m 0
= =
+
Spline Cubica Naturale
mi danno du mi danno du mi danno du mi danno due ee e condiz condiz condiz condizi ii ioni in pi che mi permettono di pareggiare incognite ed equazioni. oni in pi che mi permettono di pareggiare incognite ed equazioni. oni in pi che mi permettono di pareggiare incognite ed equazioni. oni in pi che mi permettono di pareggiare incognite ed equazioni.
( )
( )
( ) ( ) ( ) ( )
( )
( ) ( ) ( ) ( )

+ + + =
+ + + =
=
3 m
3
2 m
2
m
1
m
0 n
3 0
3
2 0
2
0
1
0
0 0
x a x a x a a x S
x a x a x a a x S
x S M andiamo a vedere come calcolare fisicamente i coefficienti...
Condizioni di raccordo:
( ) ( )
( ) ( )
( ) ( )
1 m , , 0 i
x S x S
x S x S
x S x S
1 i 1 i 1 i i
1 i 1 i 1 i i
1 i 1 i 1 i i
=

=
=
=
+ + +
+ + +
+ + +
K
Condizioni di interpolazione:
( ) 1 m , , 0 i y x S
i i
+ = = K


Scriviamo il polinomio in questo modo:

Poi se noi andiamo a sostituire le condizioni
di interpolazione...


Le condizioni di interpolazione mi dicono subito chi sono questi punti
m 0
y , , y K
mi fanno si che i coefficienti mi diano subito le y.


( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( )
i i i i
2
i i i i i i
3
i i
2
i i i i i i
x x 6 2 x S
x x 3 x x 2 x S
x x x x x x x S
+ =
+ + =
+ + + =
( )
i i i
z x S = =
Supponiamo di conoscere la funzioni in tutti i suoi punti e la chiamiamo z
i
A questo punto una volta che abbiamo z
i
, fino ad ora abbiamo usato e adesso dobbiamo usare f2.1 e
poi dobbiamo usare f2.3 per trovare gli z
i
.
Cerchiamo di andare ad imporre i primi due gruppi di condizioni di raccordo: la prima condizione la ab
biamo usata per andare a calcolare S
i
calcolato in x
i+1
.
( ) ( ) ( ) ( )
( )
1 i 1 i 1 i
1 i
3
i 1 i i
2
i 1 i i i 1 i i i 1 i i
y x S
y x x x x x x z y x S
+ + +
+ + + + +
=
= + + + =

Queste per un momento
le supponiamo note!!
( )
( ) ( ) ( )
( ) ( ) ( )

+ + + =
+ + + =
=
3
m m
2
m m m m m n
3
0 0
2
0 0 0 0 0 0
x x x x x x S
x x x x x x S
x S M
( )
( )
( )
m m m
1 1 1
0 0 0
y x S
y x S
y x S
= =
= =
= =
M M M
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 24 maggio 2011 24 maggio 2011 24 maggio 2011 24 maggio 2011


Se poi S
i+1
lo sostituiamo dentro ( )
1 i
x
+
allora per le condizioni di raccordo tutto il primo pezzo deve essere
uguale in y
i+1
.
Terzo gruppo:
( ) ( ) ( )
( )
1 i 1 i i
1 i
2
i 1 i i i 1 i i 1 i i
z x S
z x x 3 x x 2 z x S
+ +
+ + + +
=
= + + =

Ma le condizioni di raccordo devono essere uguali quindi per il primo gruppetto deve essere uguale a z
i+1

Allora gli unici soggetti che servono sono i e i . Riepilogando: abbiamo cambiato la scrittura dei miei
polinomi della Spline; le condizioni di interpolazione fissano gli e, suppongo per un attimo di conoscere
i che chiamo z, allora le prime due condizioni mi andrebbero a determinare i e e diciamo che, se
conoscessi i che ho chiamato z, mi ritrovo gli e i e i quindi determino tutti gli altri coefficienti: da
un gruppo di condizioni mi trovo gli alfa e dagli altri due gruppi mi trovo i e i . In conclusione mi ri
mangono da trovare solo i che prima ho ipotizzato di conoscere.
( ) ( )
( )
1 i 1 i i
1 i i 1 i i i 1 i i
2 x S
2 x x 6 2 x S
+ +
+ + +
=
= =

Da si ricava
i
uguale a qualcosa dove ci sono x y e z.

i
uguale a qualcosa x y z. se li mettete in questa equazione allora vi rimane qualcosa...
( ) ( ) assegnati z , z , z x S , z x S
1 m 0 1 n 1 m 0 0 + + +
= =
Se supponiamo di conoscere z
o
e z
n+1
allora questi due sono noti e allora abbiamo un sistema mxm.
Se si definisce
1 i i
x h
+
= allora il sistema lineare:
( )
( )
( )
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
+
+

m 2 m m
1 m
1 2 i 2
0 1 0
h , h 2 h 0 0
h
0
0
h h h 2 h
0 0 h h h 2
La matrice non singolare.
Caso della Spline cubica naturale
Non stiamo supponendo di conoscere due delle incognite ma aggiungiamo due equazioni.
( )
( ) 0 x S
0 x S
1 m
0
=
=
+

( )
( )
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
+

1 m m m
1 m
0 0 i 1
h , h 2 h 0 0
h
0
0
h h h 2 h
0 0 1 2
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
+1 m
0
z
z


* ** *
* ** *
* *
* *
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 25 maggio 2011 25 maggio 2011 25 maggio 2011 25 maggio 2011


. .. .
. .. .. .. . . .. .
. .. .. .. . . .. .
. .. .. .. . S SS S
S SS SS SS Sp pp p
p pp pp pp pl ll l
l ll ll ll l i ii i
i ii ii ii i n nn n
n nn nn nn ne ee e
e ee ee ee e C CC C
C CC CC CC Cu uu u
u uu uu uu ub bb b
b bb bb bb bi ii i
i ii ii ii i c cc c
c cc cc cc ca aa a
a aa aa aa a
[ ] B , A : S
( ) ( ) [ ]
1 i i i
x , x x , x S x
+
= Si polinomio di grado <=3
( ) ( )
( ) ( )
( ) ( )
1 m , , 0 i
x S x S
x S x S
x S x S
1 i 1 i 1 i i
1 i 1 i 1 i i
1 i 1 i 1 i i
=

=
=
=
+ + +
+ + +
+ + +
K
b a < < K
Spline Cubica Vincolata
( ) ( )
1 m 1 i 0 0
z x S , z x S
+ +
= = con z
0
, z
m
, noti
Spline cubica NATURALE
( ) ( ) 0 x S x S
1 m 0
= =
+

se noi
Il problema sempre il solito: abbiamo a disposizione un insieme di punti con i quali dobbiamo costruire un
modello... Se interpolassi con un unico polinomio questi cinque punti, succede che devo ricalcolare tutti i co
efficienti del polinomio. Appena sposto un coefficiente, il polinomio cambia completamente. Se sganciamo il
grado del polinomio dal numero di punti, interpoliamo con una funzione dinterpolazione a tratti: quello che
cambia geometricamente sar solo un pezzo IMG1.1 IMG1.1 IMG1.1 IMG1.1 non devo cambiare tutto se cambio della roba lontano
da un tratto quel pezzo rimane uguale. quello che mette a posto qui problemi dinstabilit della funzione
di Runge. Vuol dire che il polinomio dinterpolazione tende in modo naturale a cercare di mettere a posto
la maggior parte possibile della rappresentazione ma questo influisce anche quello che succede ai lati fa si
che il tentavo di rappresentare sempre meglio un pezzo influisce negativamente sulle code.
Nel nostro caso facciamo uninterpolazione locale.

una matrice che ha tutti i numeri in ogni incognita e ci sono tutti i coefficienti
che definiscono il polinomio.


Questa invece una matrice tridiagonale (a destra e a sinistra ha zeri e in mezzo c qualche cosa)
( )
( )
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
+

1 m m m
1 m
0 0 i 1
h , h 2 h 0 0
h
0
0
h h h 2 h
0 0 1 2

Questi zeri ne fanno andare via un bel po di zeta, annulla molti elementi.
Siccome sto interpolando a tratti se io devo andare a definire un ceto tratto mi preoccupo che sia un poli
nomio di terzo grado e che si attacchi bene con quello prima e quello dopo, tutto il resto non minteressa.
|
|
|
|
|

\
|
=
n
0
n
n n
1
0 0
a
a
x x 1
x x 1
M
M
L
M M M
M M M
L
25 maggio 2011 25 maggio 2011 25 maggio 2011 25 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Se mi fermo a una spline cubica, ho infinite soluzioni una scelta sarebbe bloccare i parametri con una spli
ne vincolata o naturale.
Ma perch??
Queste due spline godono della propriet di minima curvatura propriet di minima curvatura propriet di minima curvatura propriet di minima curvatura
Tra tutte le funzioni che possono interpolare i miei punti le spline cubiche sono quelle che minimizzano una
certa quantit.
Prendiamo due funzioni f, S derivabili due volte con continuit e t. c. ( ) ( ) 1 m , , 0 i , y x S x f
i i i
+ = = = K
abbiamo sviluppato il qua
drato di un binomio
Praticante: ( ) ( ) b a b 2 b a b a
2 2 2
=
( ) ( ) ( ) [ ]


b
a
dx x S x f x S
g h
Integrazione per parti:

= g h hg g h [ ]

=
b
a
b
a
b
a
g h hg g h
abbiamo integrato per parti lintegrale di un pro
dotto
Adesso esaminiamo solo lintegrale ( ) ( ) ( ) [ ] =

b
a
dx x S x f x S
Poi sommiamo gli intervalli b x x x a
1 m 1 0
= < < < =
+
K

k kk k
Ogni sottointervallo un polinomio di terzo grado; S coincide con il polinomietto tra
k
x e
1 k
x
+
. Dato che la
derivata terza di un polinomio di terzo grado una costante
k
la porto fuori
( ) ( ) [ ] ( ) ( ) [ ]


= =
+
+
= =
m
0 k
x
x k
m
0 k
x
x
k
1 m
k
1 k
k
x S x f dx x S x f ( ) ( ) [ ] ( ) ( ) [ ] { } 0 x S x f x S x f
m
0 k
k k 1 k 1 k k
= =

=
+ +

per ipotesi il punto da cui siamo partiti, si annullano quindi via!!

+1 n
z

+1 n
z

0
z

0
z

( ) ( ) ( ) [ ] [ ] ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) a S a f a S x S b f b S x S x f x S
b
a
= =
un modo per farlo andare a zero richiedere che siano zero, allora la somma fa zero
Un altro modo sapere quanto vale la derivata prima di a e di b, e allora posso imporre che questo valo
re sia uguale a Z
n+1
. se ho queste due informazioni aggiuntive, le posso inserire e quindi queste due quantit
diventano uguali e questo pezzo mi fa zero
La La La La Spline cubica vincolata assume di conoscere la derivata prima agli estre Spline cubica vincolata assume di conoscere la derivata prima agli estre Spline cubica vincolata assume di conoscere la derivata prima agli estre Spline cubica vincolata assume di conoscere la derivata prima agli estremi dellintervallo mi dellintervallo mi dellintervallo mi dellintervallo.
Le due coppie di condizioni della spline cubica vincolata e naturale sono quelle che fanno s che quel
pezzo diventi uguale a zero
Questa la formula da cui siamo partiti adesso scambiamo un po i termini...
( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ]

=
b
a
b
a
b
a
2 2
b
a
2
dx x S x f x S 2 dx x S dx x f dx ] x S x f [
Allora tutto lintegrale diventa uguale a zero ( ) ( ) ( ) [ ]


b
a
dx x S x f x S
( ) ( ) [ ] ( ) ( ) ( ) ( ) ( ) [ ] = =

b
a
b
a
b
a
2 2
2
b
a
dx x S x f x S 2 dx x S dx x f dx x S x f
( ) ( ) ( ) [ ] [ ] ( ) ( ) ( ) [ ]

=
b
a
b
a
dx x S x f x S x S x f x S
( ) ( ) ( ) [ ]dx x S x f x S
m
0 k
x
x
1 k
k
=


=
+
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 25 maggio 2011 25 maggio 2011 25 maggio 2011 25 maggio 2011


( ) ( ) ( ) ( ) ( )

=
b
a
2
b
a
2
b
a
2
b
a
2
dx x f dx ] x S x f [ dx x f dx x S
una funzione 0 perch un quadrato... a pi piccolo di b
Davanti allintegrale c un meno praticamente A=BC quindi A B
Abbiamo fatto vedere che qualsiasi cosa si mette al posto della f il primo minore del secondo.
La Spline vincolata tra le altre cose quella che minimizza minimizza minimizza minimizza la derivata seconda la derivata seconda la derivata seconda la derivata seconda: la propriet giusta
che stavamo cercando, perch la derivata seconda di una funzione rappresenta la concavit. Fare
lintegrale su tutto lintervallo vuole dire sommare tutte le curvature in ogni punto, se ho un numero basso,
avr un grado di curvatura basso se grande, vuol dire che da qualche parte la mia funzione curva. Io pe
r vorrei che il modello fosse il pi lineare possibile, nel modo meno curvo possibile, dato che questo mi da
una garanzia che il modello che viene fuori non si inventato oscillazioni strane che non sono nei dati
La quella propriet che dettata dalla tipologia di problema che
stiamo risolvendo. Un modello che non sinventi oscillazioni strane avremo il modello derivabile almeno due
volte che curva in tutto lintervallo

una funzione che serve per calcolare i coefficienti del polinomio
diinterpolazione. Richiede tre variabili dingresso
x, y e n il grado. n deve essere la lunghezza di x 1 allora lui calcola il polinomio di interpolazione e re
stituisce la variabile di output p e il coefficiente del polinomio
restituisce il valore di un polinomio di grado n valutati in x. Il p argomento di input
un vettore di lunghezza n+1 i cui elementi sono i coefficienti in potenze discendenti del polinomio da valu
tare.
x=-1 0 1
y=[1 0 1 ]
p = polyfit(x,y,2) In p ho I coefficienti del polinomio
xx=linespace(-1,1,1000);
yy=polival(p,xx) valuto con i coefficienti contenuti nel vettore p
restituisce il polinomio a tratti di una spline cubica. x deve essere un vettore. y
pu essere uno scalare, un vettore, o un array di qualsiasi dimensione, alle seguenti condizioni: se x e y so
no vettori della stessa dimensione, la nonaknot condizioni finali sono usate. Se x o y uno scalare, e
spanso per avere la lunghezza pari degli altri e il notaknot condizioni finali sono utilizzate. (Vedi Eccezioni
(1) sotto). Se Y un vettore che contiene i due valori pi x ha le voci, il valore primo e l'ultimo a Y sono utiliz
zati come endslopes per la spline cubica.
notaknot un'altra coppia di condizioni impone che sia uguale alla derivata terza tra x
1
e x
n
per molti suoi
per se il vettore y
slope > pendenza, endslopes > pendenza agli estremi
Avete al possibilit di calcolare la spline cubica vincolata se in ingresso avete i valori di y, ma ci aggiunge
te due numeri che sono x
n
e x
n+1

x=linespace(-1,1,5)
y=f(x);
xx=linespace(-1,1,1000);
yy_pol=polval(polyfit(x,y,lenght(x)-1)

Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 27 maggio 2011 27 maggio 2011 27 maggio 2011 27 maggio 2011


Regressione
Abbiamo parlato di inte dove il modello doveva passsare esattamente per i nostri putni ma in incipit ab
biamo detti che dobbiamo considerarli non come dati esatti ma dati oggetti da variazioni di tipo statistico.
Su questi punti potete cercare un modello di interpolazione per dovreste intuire che difficile ch eil mo
dello sia una cosa del genere..
Img1 punti a caso img2 punti uniti da linea...
Succede che i punti si spostano solo un ochino li perturbate tutti iun poco e poi rifate il modello di interp e
non c pi nienete come prima. Mentre quando uno vdee dice pi o meno il trend lo riesco a vedere an
che a occhio allora al posto di andare a prendre un mod oscillante dei nosti dati prendo un qualcosa di
un po pi stabile che ovviamente no nriuscir a passare per tutti i miei punti ma riuscira ad approssimare
Posso andare a cercare una rette se vedo che i mei punti soo distribuit in maniea quasi lineare in modo ta
le che posso anche cambiare questi puni ma mi viene furoi dinuovo la retta in nero.
Non attraversare tutti i punti perdiamo fedelt ai dati, ma qguadagnamo nelf atto che se i punti calcombia
no e calcoliamo un nuovo modello ci ritroviamo esattamente la retta ovviamente on necessario che il mio
modello sia una retta
Andare a cercare un modello pi semplice che si adatti bene ai miedi dati senza spiegarli esattamete.
Come nel cso dellinterpolazione come primo passo devo scegiere la famiglia di funzioni nella quale andare
a costruire i l modelllo secono passo trovare un algo per trovare esattamente il valore dei parametri che si
adattano ai miei dati.

Caso della retta:
img1 se ho dei punti distribuiti in queso modo e stao cercando una retta e ho deciso di rappresentare que
sti putni conm una retta andare a trovvare quella retta che gli rappresenta megio come si fa a tradurre ma
tematicamente
da tutti i punti alla retta vreo una cera distanza per ogni punto noi avremo ( ) n ,..., 0 i y x f
i i
= vorra dire il
concetto di andare meglio questa rettaa spiegar tanto meglio i miei dati qunto pi per ui le distanza tra i
val osservati e i val che la mia retta in corrispondenti x distnza tra y e f(x) complessivamente globalmente
piccola
vuol dire che il mio modello spiega al meglio possibile i miei dati. Il conetto di pi piccolo posi dvo costrui
re una fun che quntifica lerrore complessivo di questa retta e poi quantifichi lerror epi piccolo possibile.
Ho le diff in ongi punti se volgio lerrore complessivo posso sommarle ( )

n
0 i
i i
y x f ma in questo caso pos
sono essere anche negativa
Per il conetto di distanza ci dovrei mettere il val assulto e quantifica esattamente la distanza ma il val asso
luto no in tutti i punti derivabile e il minimo di una fun vuol dire la derivata prima uguale a zero se uso il
val assoluto che una fun non deriabile e allora dato che il quadrato da lo stesso gioco del valore assolu
to e dato che il problema che quella q.ta deve essere positiva quindi il quadrato ha lo stesso effetto ed
derivabile
( ) ( )

n
0 i
2
i i
y x f
( )

=
+
m
0 i
2
i i 1 0
y x a a
( ) ( )

=
+ =
m
0 i
2
i i 1 0 1 0
y x a a a , a Q
Si chiama modello ai minimi quadrati
27 maggio 2011 27 maggio 2011 27 maggio 2011 27 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Somma dei quadrati delle differenza tra i vlaori osservati e i valori che assumerebbe la funizonie negli x e
trovo il minimo
Volgiaomo una fun che funzion per modelli generici e come mod generico uno prnde
( ) ( ) ( ) ( ) x a ... x a x a x f
n n 1 1 0 0
+ + + =
( ) ( ) { }
n
1 0
x ,.., x , 1
x ,.., x

Se pendo n=1 phi 0(x)01 phi1(x)=x alora trovo la retta f(x)=a0+a1x
Se mettto n allora trovo ( ) ( ) ( )
n
n 0
n
n 0
x a a x f x x ,..., 1 x + + = = =
Ma un altra base
N=2 f1
( )
( )
2
2
m
0 i
2
i n 0
i i i
a ,..., a Q
0 ,..., 01 i y x f f
= =
=

=
ma la s9o,m,ma delle componenti alla seconda la norma due al quadrato
( )
2
2
min
n 0
a ,..., a




Cerchiamo di andare a veder come fatta f
( )
0
x f
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
n
0
n n n 1 n 0 n n n n 1 1 n 0 0 n
1 n 1 1 1 0 1 n n 1 1 1 1 0 0 1
0 n 0 1 0 0 0 n n 0 1 1 0 0 0 0
a
a
x ... x x x a ... x a x a x f
...
x ... x x x a ... x a x a x f
x ... x x x a ... x a x a x f
= + + + =
= + + + =
= + + + =

= f2
Ritroviamo un ac ecchia conoscenza che la matrice di vandermonde solo che questa volta no quadrata
perch il num di punti non conssesso con il num di fun di base che io sto usando
Quindi abbiamo scitto il vettore f0 ftcome un prodotto un vettore de e unm vettore chdele incognite che
dobbiao trovare
Allroa F3
( )
2
2
min
n 0
a ,..., a

=
2
2
y A
min
1 n

+

il nostro pron di trovare una fun che risolvere il problema di inimo si e tra
dotto nel minimizzara la norma due al quadrato di Aalfa y
Troviamo il minimo di una funziona ma darivare una norma non intuiitivo qundi la norma due di un vettore
al quadrato uguale al vettore scalare trasposto per se stesso
x x
T
2
2
=
Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico 27 maggio 2011 27 maggio 2011 27 maggio 2011 27 maggio 2011


( ) ( ) ( ) ( )( )
y y y A alfa Aalfa y Aalfa A alfa
y Aalfa y A alfa y Aalfa y Aalfa y A Q
T T T T T T
T T T T 2
2
=
= = = =
quelle sottolineata sopra sono
ugali perch x y y x
t t
=
y y 2 A A
T T T

( )
( )
( )
( ) ( )
2
2
2
x , 1 xy 2 y , x f
derivate di vettore
gradiente
x y , x f
y
1 xy 2 y , x f
x
1 x y x y , x f
=
=

+ =

Dovr fare tutte le derivate e tutte le derivate devono essere uguale a zero per torvare il minimo
Bisogna inmporre in pi variabili gradiente ugale a zero
( ) 0 y y y A 2 A A 2 Q
T T T
= + = lanalogo della derivata prima nel caso con pi variabili e lo pon
go uguale a zero
y A A A
T T
= sistema delle equazioni normali sistema delle equazioni normali sistema delle equazioni normali sistema delle equazioni normali e di fatto un sitema lineare
( ) ( )
( )
( ) 1 x 1 n y A
1 x 1 n
1 n x 1 n A A
T
T
+
+
+ +

Mi trovo a risolvere un sitema linare dove (AtA) simmetrica perch ( )
T
t T
t
t
A A A A =
anche una matrice definita positiva
( ) ( ) 0 || Ax || Ax ax
0 Ax A x
2
2 t
T T
> = =
>

In generale la matrice a di rango massimo qundi la vostra matrice dir rango a viene simmetrica e definita
postiva per cui si pu usare cholesckyu facilmente e GaussSEildel quindi un sitema che si risolve abba
stanza velocemente
|
|
|

\
|

=
0
0
1 1
A
|
|

\
|
=
|
|

\
|
+
+
=
|
|
|

\
|

|
|

\
|

=
1 1
1 1
1 1
1 1
0 1
0 1
A A
2
2
t

Se noi avessimo epsilo minore della radice precisione di macchina
Se prendete epsilon 2 minore della precisione di macchina quindi
Allora 1+epsilon fa uno quini duella diventa una matrice singolra
Sono partoio da una matrice a di ragno massimo
Se andassi a calcolare il condizionamento arei un ceto condizionamento per a e il condizionamento di aA
tA sarebbe molto pi elevato
Avete un problema di partenza che ha un certo condizionamente e vi riconduce te a rislvere un problema
he gha un condizionamento maggiore se gi di per se la mat a fosse mal condizionata allora risolvere il
problema dei min quad con le eq. Normali questo peggiorerebbe le cose
27 maggio 2011 27 maggio 2011 27 maggio 2011 27 maggio 2011 Calcolo Numerico Calcolo Numerico Calcolo Numerico Calcolo Numerico


Sarbebbe megolio trovare il ninimo della norma senza trovare AtraspostoA
Possiamo rifare a stessa serie di passaggi fatti con i problemi sotto determinati

R
0
R
Q A
)
`

|
|

\
|

=
2
2
y A
UNO AL posto di a ci andava a mettere la sua fattorizzazione qr quindi le matrici ortogonali vevano
quella buona propriet con la norma due per cui
F4
Ci si ricordava che la norma due Qv era ugale alla norma due di v
Siamo arrivati allo stesso punto al quale eravao arrivati on i sistemi sovramdetermianti
1
y
~
alfa ' R =
Stavola non ho toccatto il condizionamento perch la fattorizzazione qr non modifica il condizionamento
Ci siamo ricondotti a trovare lo stesso alfa per da un punto di vista algoritmico lo faccciamo conun algo
ritmo che non amplifica lerrore
Function polifit per calcolare il polinomio di interpolazione
Polyfit(x,y,1)
Yy20polyval(xx);
Polt(yy2,k)
nota come retta di regression.
cftool

Potrebbero piacerti anche