Professional Documents
Culture Documents
Prof. F. Pitolli
(A.A. 2012-2013)
CALCOLO NUMERICO
ANALISI NUMERICA
Esempio 1
S
q
d2w
=
w(x) +
t(x)(x L)
dx2
EI
2EI
0<x<L
w(0) = w(L) = 0 .
Soluzione
q = 100 kg/m
S = 1000 kg
I = 625 cm4
AY = B
con
A=
0.015
S
2 + h2 EI
1
0
S
2
1
2 + h EI 1 0
S
1 2 + h2 EI
w(x)
0.01
0.005
20
40
60
x
80
100
Soluzione esatta
120
r(x) =
2
q
x (x L)
2EI
iT
Esempio 3
Esempio 2
3
Un ubriaco compie una passeggiata casuale, facendo un passo a sinistra o a destra a caso lungo una strada rettilinea. Quando raggiunge
una estremit`
a della strada, si ferma.
15
10
B
1
Calcolare la probabilit`
a che lubriaco raggiunga lestremit`
a sinistra
della strada partendo dalla posizione i.
Soluzione
Applicando la legge di Kirchoff
sistema lineare
11v1
5v2
v6
4v4
3v2 +7v3
v
+2v
v5
3
4
15v5 +47v6
2v1
= 500
=
0
=
0
=
0
=
0
=
0
4
Si pu`
o simulare una passeggiata casuale tirando una moneta.
La probabilit`
a pi, i = 0, 1, ..., N , di raggiungere lestremo sinistro
partendo dalla posizione i, soddisfa la relazione
90
80
p0 = 1
70
60
50
1
1p
pi = 2
i1 + 2 pi+1
i = 1, . . . , N 1
40
30
20
10
pN = 0
10
Punto di partenza: x5
p1
12 p2
12 p1 +p2 12 p3
12 pN 3
1
2
+pN 2
= 0
12 pN 1 = 0
12 pN 2
+pN 1
= 0
7
Esempio 4
Soluzione
La forza F (x) necessaria per allungare una molla fino alla lunghezza x
`
e data da F (x) = k(x l) (Legge di Hooke) dove k `
e la costante
elastica e l `
e la lunghezza a riposo della molla.
2
7.0
x
F (x)
3
8.3
4
9.4
5
11.3
6
12.3
8
14.4
10
15.9
16
14
12
F(x)
F(x)
>>
>>
>>
>>
>>
16
14
12
10
10
X=[2, 3, 4, 5, 6, 8, 10]
F=[7.0, 8.3, 9.4, 11.3, 12.3, 14.4, 15.9]
X2 = linspace(X(1),X(7))
p = polyfit(X,F,1);y2 = polyval(p,X2)
p
p =
1.1383 5.0491
6
0
10
6
0
12
10
12
Metodi diretti
per la soluzione di sistemi lineari
a0 s0 + a1 s1 = v0
dove
a s +a s =v
0 1
1 2
1
s0 = n + 1
s1 =
v0 =
F (xi )
i=0
a0 = 5.049
v1 =
s v s1 v0
a1 = 0 1
s0 s2 s2
1
n
X
xi
n
X
xi F (xi)
i=0
n
X
v s v1 s1
a0 = 0 2
s0 s2 s2
1
s2 =
n
X
x2
i
i=0
sarebbe esatta.
Data loccupazione di memoria (RAM) richiesta nei pas-
i=0
a1 = 1.1383.
10
Di
detA
i = 1, 2, ..., n
Metodo di Cramer
Costo computazionale:
Cc = (n + 1)n!(n 1) + n (n + 1)n!(n 1)
n = 15 Cc 3 1014 moltiplicazioni circa 4 giorni
Inutilizzabile!!
13
X, B IRn A IRnn
Fattorizzazione LU
Il metodo di eliminazione di Gauss pu`
o essere interpretato come
la fattorizzazione della matrice di partenza A nel prodotto di due
matrici triangolari.
e IRn U IRnn
X, B
15
A = LU =
1
0
0
0
m21
1
0
0
m31 m32
1
0
..
..
..
..
mn1 mn2 mn3
..
0
0
0
..
1
(1)
a12
(2)
(2)
a22 a23
a
11
(1)
(1)
a13
(1)
..
a33
(3)
..
..
..
..
..
a1n
(2)
a2n
(3)
a3n
(n)
ann
..
0
0
matrice del sistema
triangolare
ukk xk
UX = B
+
+
xn =
xk =
+ u1n xn
+ u2n xn
+ ukn xn
unn xn
l11 x1
=
b1
lk1 x1 + lk2 x2
ln1 x1 + ln2 x2
LX = B
bk
n
X
uki xi
i=k+1
1
, k = n 1, n 2, ..., 2, 1
ukk
Costo computazionale
+ lkk xk = bk
+ lnk xk + + lnn xn = bn
Algoritmo di sostituzione
Ad ogni passo ci sono
n k moltiplicazioni
1
b
x1 = 1
l11
xk = bk
k1
X
i=1
lki xi
divisione
Cc =
1
lkk
n
X
(n k + 1) =
k=1
n
n2
n2
+
2
2
2
k = 1, 2, . . . , n
Nota: Se le matrici U e L sono regolari, sicuramente
b1
b2
bk
bn
bn
unn
16
=
=
AX = B
A=LU
LU X = B
LY = B
UX = Y
AXi = Bi
i = 1, 2, . . . , r
LYi = Bi
i = 1, 2, . . . , r
UX = Y
i
i
20
21
Calcolo dellinversa di A
La matrice inversa A1 di una matrice regolare A `
e la matrice tale
che
A A1 = I
I : matrice identit`
a
n
Y
lkk
{z
| k=1
Teorema di Binet
n
Y
(1) (2)
k=1
(n)
=1
I :=
1
0
0
1
0
0
0
0
1
= [E1 E2 En]
Ei = [0, 0, , |{z}
1 , 0, , 0]T
i
ica
A A1 = I A Xi = Ei
i = 1, 2, , n A1 = [X1 X2 Xn]
(n)
L Yi = Ei ,
U Xi = Yi,
Costo computazionale: Cc
22
i = 1, , n
4
n3
+ n n2 = n3
3
3
23
Matrici tridiagonali
A=
d1
a2
0
0
s1 0
0
d2 s2
0
... ... ...
0 dn1 sn1
0
an
dn
1 0
0
2 1
0
0 3 1
..
.. . . .
0 0
...
n
0
0
0
..
1
u1 v 1 0
0
0 u2 v 2
0
..
.. . . . . . .
..
0 0 un1 vn1
0 0
0
un
24
Esempio 1: soluzione
= [
La soluzione esatta `
eX
p0, . . . , pN ]T , dove pi = 1 Ni , i = 0, . . . , N .
i = 1, 2, . . . , n 1
i = ai /ui1
ui = di i vi1
divisioni
moltipli
cazioni
i = 2, 3, . . . , n
i = n 1, . . . , 1
Costo computazionale: Cc = (n
1) + (n
1) +
| {z }
| {z }
moltipli
cazioni
Xk
kX
decimali
esatti
11
21
51
101
501
5001
10001
3.33e-016
1.55e-015
4.16e-015
2.14e-014
1.11e-013
1.84e-012
1.38e-011
15
14
14
13
12
11
10
i = 2, 3, . . . , n
Costo computazionale: Cc = (n
1) + (n
1) = 2n 2
| {z }
| {z }
y1 = b1
= LU
25
Algoritmo di Thomas
u1 = d1
vi = si
moltipli
cazioni
n
= 3n
|{z}
divisioni
26
Cc
333
2667
41667
333333
41666666
41666666666
333333333333
tempo di
calcolo
0.000304
0.000356
0.000402
0.001555
0.070898
29.306639
225.971643
occupazione
di memoria
s
s
s
s
s
s
s
0.8 Kbyte
3.2 Kbyte
20 Kbyte
8 Kbyte
200 Kbyte
2 Mbyte
800 Mbyte
Nota. In realt`
a gli elementi diversi da zero della matrice A sono
N + (N 1) + (N 1) = 3N 2 << N 2
e una matrice sparsa
A`
27
Istruzioni MATLAB
N = 10
A = diag(ones(N-1,1));
for i=2:N-1, A(i,i-1) = -0.5; end
for i=1:N-2, A(i,i+1) = -0.5; end
B = zeros(N-1,1);B(1)=0.5
tic
X = A\B
toc
Xe = 1-(1:N-1)/N
max(abs(X-Xe))
Esercizio
2 2 0
Soluzione
Poich
e det A = 6 6= 0, la matrice A `
e regolare e quindi ammette
linversa.
Linversa `
e definita dalla relazione A A1 = I, pertanto le colonne di
A1 = [X1 X2 X3] sono le soluzioni dei sistemi lineri A Xi = Ei, dove
Ei, i = 1, 2, 3, sono i tre vettore della base canonica in IR3.
28
Dalluguaglianza A = LU , dove
L = 2
si ottiene
u1 = 2
29
0 0
1 0
3 1
u1 v 1
U = 0 u2
0
v1 = 2
L Yi = Ei
v2
u3
4
X1 =
3
1
3
v2 = 1
2 = 1 u2 = 3 (1)(2) = 1
3 = 1 u3 = 4 (1)(1) = 3
L = 1
0 0
1 0
1 1
2 2 0
1 1
0 0
3
U = 0
U Xi = Yi
30
4
3
4
X2 =
3
1
3
11
6
4
A1 =
3
1
3
1
3
1
X3 =
3
1
3
4
3
4
3
1
3
1
3
1
3
31
Sistemi lineari
AX = B
F (X) = AX B
X, F IRn
X, B IRn A IRnn
Se X IRn `
e radice di F allora `
e punto unito di :
X = [x1, x2, ..., xn]T
A = aij i,j=0
B = [b1, b2, ..., bn]T
0=
F (X) = 0 X = (X)
in
Sistemi lineari
A X = B X = C X+Q con Q = [q1, q2, ..., qn]T
in
C = cij i,j=0
Se X IRn `
e soluzione di A X = B allora `
e punto unito
di = C X + Q:
AX = B X = C X + Q
32
33
X (0) dato
X (k)
(X (k1))
k = 1, 2, ...
(0)
(0)
Nel caso lineare il punto unito X = [x1, x2, ..., xn]T , pu`
o
(0)
(k1) (k1)
(k1)
1(x1
, x2
, ..., xn
)
(k)
xn
(k1) (k1)
(k1)
n(x1
, x2
, ..., xn
)
34
X (k) = C X (k1) + Q
X (0) IRn dato
(k)
xi
n
X
(k1)
cij xj
j=1
k = 1, 2, . . .
+ qi
i = 1, . . . , n
La matrice C IRnn `
e chiamata matrice di iterazione.
35
Convergenza
Norma di vettore
1/p
n
X
p
kV k =
|vi|
i=1
Convergenza:
lim kE (k)k = 0
La norma di un vettore V = [v1, . . . , vn]T viene utilizzata per misurare la sua lunghezza.
Intorno: kV W k r
Norma uno:
kV k1 :=
n
X
v
uX
u n
|vi|2
Norma due o euclidea: kV k2 := t
i=1
X (k)
IRn
soluzione
soluzione
esatta
approssimata
|vi|
r
V
i=1
lim X (k) = X
Se il metodo iterativo `
e convergente, in assenza di errori di arrotondamento si ottiene la soluzione esatta dopo un numero infinito di
passi.
Norma infinito:
kV k := max |vi|
r
V
1in
v1
(criterio di arresto)
36
37
Propriet`
a della norma di vettore
kV k 0,
Norme di matrici
kV k = 0V = 0
kV k = || kV k
IR, V IRn
V, W IRn
kV + W k kV k + kW k
Propriet`
a
(disuguaglianza triangolare)
kAk 0,
kAk = 0A = 0
Distanza: in uno spazio vettoriale normato S `e possibile introdurre la distanza tra due punti V e W in S
d(V, W ) := kV W k
kAk = || kAk,
IR, A IRnn
kA + Bk kAk + kBk,
A, B IRnn
(disuguaglianza triangolare)
Propriet`
a della distanza:
kA Bk kA|| kBk,
d(V, W ) = 0 V = W
d(V, W ) = d(W, V )
V, W S
A, B IRnn
V, W, Z S
38
39
A IRnn
Infatti, se X 6= 0, si ha
A X
kA Xk
kA Xk
kAk = max kA Xk = max
= kAk
= max
kXk
kXk=1
kXk6=0 kXk
kXk6=0 kXk
1in
(per colonne)
n
X
|aij |
(per righe)
j=1
||A||2 :=
(AT A)
||A|| := max
|aij |
i=1
k(X) (Y )k kX Y k < kX Y k
1jn
n
X
||A||1 := max
kA Xk kAk kXk
Norma uno:
Norma infinito:
X IRn
X (k) = X (k1)
o
`
e convergente a X
42
43
1(X) 1(X)
x1
x2
(X)
x
1
J(X) =
n(X)
x1
2(X)
x2
n(X)
x2
Esempio
La condizione kJ(X)k , X D, `
e sicuramente verificata se
1(X)
xn
2(X)
xn
n(X)
xn
(X)
i
Mik
x
k
con
Esempio: n = 2
(
f (x, y) = 0
g(x, y) = 0
X (0) IRn
(k)
xi
n
X
C: matrice di
iterazione
dato
(k1)
cij xj
j=1
+ qi,
Se il metodo iterativo `
e convergente, in assenza di errori
di arrotondamento si ottiene la soluzione esatta dopo un
numero infinito di passi.
46
2 + M2 + M2 + M2 < 1
oppure M11
12
21
22
45
1 (X)
x1
2 (X)
x1
J(X) =
....
n (X)
i = 1, . . . , n
Un metodo iterativo `
e detto convergente se
x = (x, y)
y = (x, y)
44
`
e una contrazione in D
X (k) = C X (k1) + Q, k = 1, 2, . . .
XD
i, k = 1, . . . , n
1 (X)
x2
2 (X)
x2
....
n (X)
x2
1 (X)
xn
2 (X)
...
xn
=
.... ....
n (X)
...
x
...
E (k) = CE (k1)
Relazione di compatibilit`
a
(0)k kCkk kE (0)k
kE (k)k kC k k kE (0)k = k C
| C{z C} k kE
k volte
1in
di iterazione C
E (k) = C E (k1) = = C k E (0)
lim E (k) = lim C k E (0) = 0
lim C k = 0
k
|
{z
}
(C) < 1
matrice
convergente
Criterio darresto
Velocit`
a asintotica di convergenza
Se il metodo iterativo `
e convergente, si arresta il procedimento
quando
kX (k+1) X (k)k <
49
Se A IRnn `
e una matrice convergente, vale la propriet`
a
lim
: tolleranza prefissata
Dalla relazione
{z
kAk k = (A)
kE (k)k = kC k k kE (0)k
kCkk+1
kCk
kX (k+1) X (k)k
kX (1) X (0) k
1 kCk
1 kCk
(1 kCk)
1
K > log
kX (1) X (0) k log kCk
m
Log (C)
Velocit`
a asintotica di convergenza: V = Log (C)
50
51
Esercizio
1
2
2
1
4
1
1
1
||C||1 = max(2|| + , || + ) = 2|| +
2
4
2
k = 0, 1, . . .
||
3
3
||C|| = max( ||, ) =
2
4
||
2
X (k) IR3
|| >
1
4
1
2
2
3
53
1
1 )|| = 3 > 1
||C( 2
1
2
2
1 )|| =
||C( 2
3
<1
4
K > log
(1 ||C( 1
2 )||)
||X (1) X (0) ||
2.5
1 )||
log ||C( 2
1
Raggio spettrale di C(): (C()) = +
4
(C()) < 1
1
+
4
3
5
<<
4
4
(C())
1.5
0.5
0
2
3
(1) X (0)|| = ||Q|| = max |q | = 7 , = 0.5 105
||C( 1
i
2 )|| = 4 , ||X
8
1.5
0.5
0.5
1
Velocit`
a di convergenza: V () = Log((C()) = Log +
K 47
54
1.5
X = CX + Q
Splitting di A: A = M + N
Metodo di Jacobi
dove M `
e una matrice invertibile.
AX = B (M + N )X = B M X = N X + B
X = M 1N X + M 1B C = M 1N
Q = M 1B
0
0
a21 0
L = a31 a32
an1 an2
an,n1
0
0
0
(elementi di A al di sotto
della diagonale principale)
0
0
U =
0
0
a12
0
a13
a23
a1n
a2n
an1,n
0
(elementi di A al di sopra
della diagonale principale)
M = D + L, N = U
(k+1)
X (k) = CJ X (k1)+QJ xi
a
n2
ann
b1
a11
b2
QJ = 22
a
2n
a22
ann
aii
n
X
j=1
j 6= i
(k)
aij xj
+ bi
i = 1, 2, . . . , n; k 0
56
57
Metodo di Gauss-Seidel
(
ann
a
a
12 1n
a11
a11
Algoritmo J
(elementi diagonali di A)
M = D, N = L + U
a
21
a22
(
CJ =
CJ = D 1(L + U )
QJ = D 1B
an1
A = L + D + U
dove
CGS = (D + L)1U
QGS = (D + L)1B
C.S.:
C.N.S.:
Algoritmo GS
n
X
X
1 i1
(k+1)
(k+1)
(k)
aij xj
xi
=
aij xj + bi
aii
j=1
j=i+1
i = 1, 2, . . . , n; k 0
58
Attenzione: Le condizioni di convergenza per le matrici di iterazione CJ e CGS vanno verificate di volta in volta.
Per alcune matrici A potrebbe convergere solo uno dei due metodi.
Se convergono entrambi i metodi, quello di Gauss-Seidel converge
pi`
u velocemente.
59
n
X
|aij |
i = 1, 2, . . . , n
|aii| >
j=1
j 6= i
n
X
|aji|
X T AX =
i = 1, 2, . . . , n
(diagonale dominanza
per colonne)
n
n
X
1
X
aij
<1
kCJ k = max
|aij |
max
1in
1in
|aii|
aii
j=1
j=1
j 6= i
j 6= i
X IRn
i,j=1
j=1
j 6= i
(diagonale dominanza
per righe)
n
X
60
61
D
D
+ L, N = U (1 )
IR+
1
D
D
C
=
+
L
(1
Condizione
necessaria
1
+
L
B
Q
=
Poich
e (C ) |1 |, il metodo di rilassamento
pu`
o convergere solo se (0, 2)
Teorema. Se A `
e (simmetrica) definita positiva, la condizione (0, 2) `
e necessaria e sufficiente per la convergenza.
n
X
X
1 i1
(k)
(k+1)
(k)
aij xj
vi =
aij xj + bi
aii
j=1
j=i+1
(k+1)
xi
(k)
= vi
Teorema. Se A `
e (simmetrica) definita positiva e tridiagoa di convergenza `
e massima per
nale allora la velocit`
2
q
= 0 =
1 + 1 (CGS )
(k)
+ (1 )xi
i = 1, 2, . . . , n; k 0
62
63
Esempio 1: iterazioni
Esempio 1
La soluzione esatta `
e pi = 1 Ni , i = 0, . . . , N .
2p1 p2
p1 +2p2 p3
+2p
p
p
N
3
N
2
N 1
pN 2 +2pN 1
= 1
kCJ k1
kCJ k
(CJ )
kX (50) X (49)k
kE (50)k
11
21
51
101
1
1
1
1
1
1
1
1
0.9595
0.9888
0.9981
0.9995
0.64 102
0.95 102
0.95 102
0.95 102
0.77 101
0.36
0.68
0.81
decimali
esatti
0
0
0
0
= 0
= 0
= 0
nelle incognite pi , i = 1, . . . , N 1.
64
kCGS k1
kCGS k
(CGS )
kX (50) X (49) k
kE (50)k
11
21
51
101
0.9990
1
1
1
0.9980
1
1
1
0.9206
0.9778
0.9962
0.9990
0.69 103
0.42 102
0.44 102
0.44 102
0.80 102
0.18
0.55
0.73
decimali
esatti
1
0
0
0
QJ = Minv*B;
%
% Calcolo autovalori e verifica C.N.S. di convergenza
%
rhoCJ = max(abs(eigs(CJ,1)))
if (rhoCJ >= 1)
error(Attenzione: ==>> rho > 1)
return
end
%
% Ciclo iterativo
%
X0 = QJ;
for k=1:50,
X = CJ*X0+QJ;
err = norm(X-X0,inf)
X0 = X;
end,
disp(X)
67
Script MATLAB
% Soluzione di un sistema lineare AX=B con lalgoritmo del metodo di Jacobi
%
clear
%
% Input
A = input(Matrice dei Coefficienti: );
B = input(Vettore (riga) dei termini noti: );
X0 = input(Vettore (riga) dellapprossimazione iniziale: );
Kmax = input(Numero massimo di iterazioni: );
%
% Ciclo iterativo
N = size(A,1);
for k=1:Kmax
for i=1:N
X(i) = (-sum(A(i,1:i-1).*X0(1:i-1))-sum(A(i,i+1:N).*X0(i+1:N))+B(i))/A(i,i);
end
E(k) = norm(X-X0,inf);
X0=X;
end
Per il metodo di Gauss-Seidel si sostituisce listruzione del ciclo interno con
for i=1:N
X(i) = (-sum(A(i,1:i-1).*X(1:i-1))-sum(A(i,i+1:N).*X0(i+1:N))+B(i))/A(i,i);
end
68
open (20,file=sistlin.dat)
read (20,*) n, thres
if (n .gt. nmax) stop n>nmax
read (20,*) ((a(i,j),j=1,n),b(i),i=1,n)
close(20)
program jacobi
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
parameter (nmax=150)
real a(nmax,nmax),b(nmax),x(nmax),x0(nmax)
*
* Lettura dei dati di input
* (il vettore dei termini noti viene memorizzato nellultima colonna del file)
*
69
*
* Ciclo iterativo
*
errmax = 100
itermax = 200
iter = 1
do while (errmax.gt.thres.and.iter.le.itermax)
errmax = 0.
do i = 1, n
x(i) = b(i)
do j = 1, n
x(i) = x(i) + a(i,j)*x0(j)
enddo
errmax = max(errmax,abs(x(i)-x0(i)))
enddo
do i = 1, n
x0(i) = x(i)
enddo
iter = iter + 1
enddo
*
* Costruzione della matrice di iterazione (viene memorizzata in a),
*
del vettore q (viene memorizzato in b),
*
dellapprossimazione iniziale (viene memorizzata in x0)
*
do i = 1, n
aux = a(i,i)
b(i) = b(i)/aux
a(i,i) = 0.
do j = 1, n+1
a(i,j) = -a(i,j)/aux
enddo
x0(i) = b(i)
enddo
*
* Apertura del file di output
*
open (21,file=output.dat)
write (21,200) ((a(i,j),j=1,n),i=1,n)
200
format (2x,Matrice di iterazione:/5(e13.5,2x))
70
71
*
* Scrittura delloutput
*
write (21,201) iter-1, errmax, (x(i),i=1,n)
201
format (//,2x,Numero iterazioni:,i4//,2x,Errore:,e13.6//,
$
2x,Vettore Xn:/6(e13.6,2x))
Esercizio
Dato il sistema lineare AX = B dove
close(21)
*
stop
end
Esercizio
Scrivere un programma (Matlab/Fortran/C) che approssimi la soluzione
di un sistema lineare con il metodo del sovrarilassamento. I dati di
input (dimensioni del sistema lineare, matrice dei coefficienti, vettore
dei termini noti, accuratezza richiesta, parametro di rilassamento)
devono essere letti dal file input.dat. I dati di output (matrice di
iterazione, numero totale di iterazioni, differenza tra due iterazioni
successive in norma 1, soluzione approssimata) devono essere scritti
sul file output.dat.
1 1 2
A=
2 1
2 1
2
,
B = (1, 0, 0)T ,
72
1 0 0
1.1) D = 0 1 0
0 0 1
0 0 0
L= 2 0 0
2 1 0
0 1 2
CJ = 2 0 2
2 1 0
0 1 2
U = 0 0 2
0 0 0
73
Iterazioni
0 1 2
CGS = 0 2 6
0 0
2
Entrambe le matrici hanno norma maggiore di 1, quindi la cone soddisfatta. Per verificare
dizione sufficiente di convergenza non `
se `
e soddisfatta la condizione necessaria e sufficiente bisogna calcolare il raggio spettrale delle matrici di iterazione.
Autovalori di CJ : 0 con molteplicit`
a 3
(CJ ) = 0 il metodo di Jacobi converge
Nota 2. La velocit`
a di convergenza `
e VJ = Log((CJ )) = .
Cosa si pu`
o dire per il metodo S.O.R. ?
75
Esercizio
x2
= 9
5x1
Dato il sistema lineare
x1 + 5x2 2x3 = 7
2x2 + 5x3 = 6
approssimare
5 1
0
5 1
= 23 > 0
1
5
det A3 = det A = 100 > 0
det A2 = det
0 1
0
0 25 0
1
0 2 =
5 50
0
0
125
0
0
0
0 2 20
(CGS ) =
5
0 0
CGS = (D+L)1U = 1
5 0
0 2 5
1
con molteplicit`
a 1
5
1
0 1.05573
5
A`
e definita positiva
Metodo
Iterazioni
Tempo di calcolo (s)
SOR 0
12
0.01
SOR = 0.8
20
0.01
Jacobi
25
0.03
76
Gauss-Seidel
13
0.02
77
A X = B A(X + X) = B + B
Per sottrazione si ricava
A X = B X = A1 B
Per misurare la perturbazione X indotta su X si ricorre alla norma.
||X|| = ||A1 B|| ||A1|| ||B||
||B|| = ||A X|| ||A|| ||X||
Dividendo termine a termine si trova una maggiorazione per lerrore
relativo ||X||/||X||.
||X||
||B||
||B||
||A|| ||A1||
= K(A)
|
{z
} ||B||
||X||
||B||
79
Numero di condizionamento
Se anche la matrice A `
e affetta da un errore A si ha
||X||
||X||
K(A)
||A||
1 K(A)
||A||
{z
||A||
||B||
+
||B||
||A||
Coefficiente di amplificazione
Si pu`
o dimostrare che
1 K(A) +
Condizionamento ottimo
Condizionamento peggiore
(matrici ortogonali)
(matrici singolari)
Condizionamento in norma 2
Se A `
e (simmetrica) definita positiva si ha K2(A) = ||A||2||A1||2 =
H=
1
1/2
1/3
1/2
1/3
1/4
1/3
1/4
1/5
1/n
1/(n + 1)
1/(n + 2)
1/(2n 1)
Infatti ||A||2 =
(AT A) =
max
min
1
1
=
i
min
81
2
per 2|| + 1 2 ||
2|| + 1 per 2|| + 1 > 2 || >
kA()k1 3 per || 1
1 2
c) Dato il sistema A 1
2 X = B, fornire una stima dellerrore relativo
||X||1
||B||
corrispondente a un errore relativo ||B|| 1 = 102.
||X||
1
kA1()k1 =
3/2
per ||
2|| + 1 per || >
1
4
1
4
1
3
per
|| 4
1
K(A()) = 2(2|| + 1) per 4 < || 1
2
1 < ||
(2|| + 1)2 per
2
||X||
82
0 2 2
1
A1() = 1 1 2
2
0
0 2
||B||
83
1
2
1
2
Riferimenti bibliografici
L. Gori, Calcolo Numerico:
Cap. 2 2.1-2.5, 2.8-2.11
Cap. 4 4.1-4.6, 4.8, 4.10 (solo enunciati dei teoremi), 4.12
L. Gori, M.L. Lo Cascio, F. Pitolli, Esercizi di Calcolo Numerico:
2.1-2.5, , 2.19-2.25, 2.29, 2.30, 7.15, 7.16, 7.19, 7.35, 7.49, 7.52, 7.57-7.59, 7.64
84