Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistemi lineari
Lucia Gastaldi
Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Indice
Ax=b
Tre casi possibili: Sistemi quadrati, m = n. Sistemi sovradeterminati, m > n. Sistemi sottodeterminati, m < n.
bi
i 1 j =1 ij xj ii
per i = 2, . . . , n
n j =i +1 uij xj
uii
per i = n 1, . . . , 1
for k = 1, . . . , n 1 for i = k + 1, . . . , n (k ) a mik = ik (k ) akk for j = k + 1, . . . , n (k +1) (k ) (k ) aij = aij mik akj end (k +1) (k ) (k ) bi = bi mik bk end end
Fattorizzazione LU
Teorema
Costruiamo le seguenti matrici: 1 0 m21 1 L= mn 1 U= Allora a11 0 0
(1) (1)
LU = A.
Strategia di pivoting
Per evitare possibili divisioni per 0 e per rendere lalgoritmo di eliminazione (oppure lalgoritmo di fattorizzazione LU) stabili rispetto alla propagazione degli errori di arrotondamento si usa la strategia di pivoting che consiste nello scambio sistematico di righe opportune. Il risultato della fattorizzazione LU ` e: PA = LU essendo P una matrice di permutazione che tiene conto degli scambi di righe avvenuti.
scambio la riga k con la riga p for i = k + 1, . . . , n (k ) aik mik = (k ) akk for j = k + 1, . . . , n (k +1) (k ) (k ) aij = aij mik akj end (k +1) (k ) (k ) bi = bi mik bk end end
Signicato Fattorizzazione PA = LU . Fattorizzazione di Cholesky A = LLT . Fattorizzazione A = QR . Fattorizzazione QZ . Decomposizione di Schur A = UTU H .
fornisce le matrici L1 e U in modo che L1*U=A. In questo caso la matrice L1 si ottiene dalla permutazione delle righe di L mediante P ossia L1 = P1 L Vericare il comportamento di 1 A= 3 2 lu sulla matrice: 2 1 2 1 1 0
Matrici di permutazione
Denizione
Una matrice di permutazione P ` e ottenuta dalla matrice identit` a scambiando le righe e le colonne. Su ciascuna riga e colonna si trova uno ed uno solo 1 mentre tutti gli altri elementi sono nulli. 0 0 0 1 1 0 0 0 P= 0 0 1 0 0 1 0 0 Il prodotto P A permuta le righe della matrice A. Il prodotto A P permuta le colonne della matrice A. Leetto della moltiplicazione per P pu` o essere anche ottenuto usando il vettore p=[4 1 3 2]. I comandi P*A e A(p,:) hanno lo stesso eetto. La matrice inversa ` e data da: P 1 = P T
Dati i seguenti valori di a: a = 1, a = 0, a = 0.5 1015 , calcolare la fattorizzazione LU di A mediante la function miaLU; calcolare la dierenza A LU ; usare la fattorizzazione ottenuta per risolvere il sistema lineare Ax = b , la cui soluzione esatta ` e x = (1, 1, 1)T ; ripetere la procedura usando le apposite function di Matlab per la fattorizzazione LU e la risoluzione dei due sistemi relativi alle matrici triangolari.
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Norma di vettore
Sia x un vettore di dimensione n, per 1 p , il comando norm(x,p) fornisce il valore della norma:
n 1/p
=
i =1
|xi |
=
i =1
|xi |
n 1/2 2
norm(x,1)
x x
=
i =1
|xi |
1i n
norm(x,2)=norm(x) norm(x,Inf)
= max |xi |
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Norma di matrice
La moltiplicazione Ax pu` o produrre un vettore con una norma completamente diversa da quella di x . La norma della matrice A si denisce come segue A = M = max
x =0
Ax . x
Valgono le seguenti propriet` a: I = 1 per I matrice identit` a Ax A x AB A B norm(A,p) fornisce la norma di matrice per p = 1, 2, :
n n
A A
= max =
1j n
|aij |
i =1
= max
1i n
|aij |
j =1
(AT A)
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Numero di condizionamento
Denizione
K (A) = A1 A
Teorema
Si consideri il sistema lineare Ax = b . Siano A e b perturbazioni di A e di b rispettivamente e sia x + x la soluzion del sistema lineare: (A + A)(x + x ) = b + b . Allora vale la seguente maggiorazione: x K (A) x 1 K (A) A / A b A + A b .
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Numero di condizionamento
K (A) = A1 A
La norma A indica il rapporto massimo tra la norma del vettore Ax e quella di x . Osserviamo che, ponendo Ay = x e y = A1 x , si ha A1 = max
x =0
y 1 A1 x = max = y =0 Ay x miny =0
Ay y
1 m
Il numero m indica il rapporto minimo tra la norma di Ax e quella di x . Di conseguenza K (A) = maxx =0
Ax x Ax minx =0 x
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Il condizionamento in Matlab
cond(A) o cond(A,2) calcola K2 (A) (con la norma 2).
Usa svd(A). Computazionalmente costoso, adatto a matrici piccole. cond(A,1) calcola K1 (A) (con la norma 1). Usa inv(A). Meno lavoro che per cond(A,2). cond(A,Inf) calcola K (A) (con la norma ). Usa ` lo stesso di cond(A,1). inv(A). E condest(A) stima K1 (A). Usa lu(A) e un algoritmo recente di Higham e Tisseur. Adatto specialmente per matrici sparse e di grandi dimensioni. rcond(A) stima 1/K1 (A). Usa lu(A) e un algoritmo pi` u vecchio sviluppato in LINPACK e LAPACK.
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Esercizi
Esercizio 1
Dati A= 1 0 0 , b= 1 0 ,
calcolare la soluzione esatta del sistema Ax = b per i valori = 2, 0.01, 1.e 6. Si considerino le seguenti perturbazioni r1 = 108 [1, 0]T e r2 = 108 [0, 1] al termine noto. Per ciascuna perturbazione calcolare la soluzione del sistema Ax i = b + ri , i = 1, 2 mediante il comando x=A\b. Calcolare lerrore relativo commesso, e confrontarlo con la perturbazione relativa del termine noto ( r / b ). Calcolare il numero di condizionamento di A. Vericare che il risultato ottenuto soddisfa la stima teorica.
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Esercizi
Esercizio 2
Dati A= 1.2969 0.8648 0.2161 0.1441 , b= 0.8642 0.1440 ,
calcolare la soluzione esatta del sistema Ax = b . Si considerino le seguenti perturbazioni r1 = [108 , 108 ]T e r2 = [108 , 108 ]T al termine noto. Per ciascuna perturbazione calcolare la soluzione del sistema Ax i = b + ri , i = 1, 2 mediante il comando x=A\b. Calcolare lerrore relativo commesso, e confrontarlo con la perturbazione relativa del termine noto. Calcolare il numero di condizionamento di A. Vericare che il risultato ottenuto soddisfa la stima teorica.
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
e risolvere il sistema al variare di n. Sia x la soluzione calcolata. Calcolare il numero di condizionamento della matrice K. Riportare in uno stesso graco in scala semilogaritmica le seguenti quantit` a al variare di n:
il numero di condizionamento; lerrore relativo E = x x / x ; il residuo b Ax / b ; la stima dellerrore K b Ax / b ; la norma della matrice R = LU PA.
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Traccia dellesercizio
Per ogni n=2:2:50 (for n=2:2:50) A=hilb(n) matrice di Hilbert di dimensione n n. x=ones(n,1) genera il vettore colonna di dimensione n che ha tutte le componenti uguali a 1. b=A*x calcola il termine noto. xapp=A\b risolve il sistema lineare. err(n)=norm(x-xapp)/norm(x) calcola lerrore relativo. r=b-A*xapp calcola il residuo. res(n)=norm(r)/norm(b) calcola la norma del residuo rapportata alla norma del termine noto. K(n)=cond(A) calcola il numero di condizionamento di A. [L,U,P]=lu(A) genera la fattorizzazione di A. RES(n)=norm(L*U-P*A) fornisce il residuo della fattorizzazione. segue
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento
Traccia dellesercizio
segue
Sistemi lineari Lucia Gastaldi Risoluzione di sistemi lineari Analisi degli errori
Norme di vettore e di matrici Numero di condizionamento