• Non ci sono risultati.

1 Francesca Mazzia Dipartimento Interuniversitario di Matematica Universit`a di Bari MATLAB: Elementi di Algebra Lineare II

N/A
N/A
Protected

Academic year: 2021

Condividi "1 Francesca Mazzia Dipartimento Interuniversitario di Matematica Universit`a di Bari MATLAB: Elementi di Algebra Lineare II"

Copied!
30
0
0

Testo completo

(1)

Francesca Mazzia

Dipartimento Interuniversitario di Matematica Universit`a di Bari

MATLAB: Elementi di Algebra Lineare II

(2)

Sistemi lineari.

Sia A∈ Rm×n, x∈ Rn

Ax = b `e un vettore di m componenti.

a1,1x1+ a1,2x2+ . . . + a1,nxn= b1 a2,1x1+ a2,2x2+ . . . + a2,nxn= b2

. . . . . .

am,1x1+ am,2x2+ . . . + am,nxn = bm

Numero di operazioni per calcolare b:

m∗ n moltiplicazioni m∗ (n − 1) addizioni.

Le matrici trasformano un vettore x di dimensione n in un vettore di dimen- sione m, cio`e rappresentano delle trasformazioni tra due spazi.

Possiamo rappresentare una matrice utilizzando le sue colonne:

A = (a1, a2, . . . , an) Il prodotto Ax = b pu`o anche scriversi:

x1a1+ x2a2+ . . . + xnan = b

cio`e il vettore b si ottiene come combinazione lineare dei vettori colonna della matrice A.

>> A = [ 2 6 10; 6 10 14; 10 14 6]

A =

2 6 10

6 10 14

10 14 6

>> x = [ 1;2;3]

x = 1 2

(3)

3

>> b=A*x b =

44 68 56

>> b-A*x ans =

0 0 0

>> y=x(1)*A(:,1)+x(2)*A(:,2)+x(3)*A(:,3) y =

44 68 56

>> y-b ans =

0 0 0

Non `e sempre vero che fissato un vettore b di dimensione m, si possa sempre trovare un vettore x per cui Ax = b sia soddisfatta.

E questo il problema della soluzione di sistemi lineari.`

(4)

Se b `e il vettore nullo, il sistema si dice omogeneo.

Partizionamento

Il partizionamento `e una decomposizione della matrice in sottomatrici.

Esempio:

possiamo scrivere la matrice

a11 a12 a13 a14 a15 a16 a17

a21 a22 a23 a24 a25 a26 a27 a31 a32 a33 a34 a35 a36 a37

a41 a42 a43 a44 a45 a46 a47 a51 a52 a53 a54 a55 a56 a57

nel seguente modo

A = A11 A12 A13 A21 A22 A23

!

con

A11 = a11 a12 a21 a22

!

A12 = a13 a14 a15 a23 a24 a25

!

>> A = [ 1 2 3 4 5 6 7 2 3 4 5 6 7 8

3 4 5 6 7 8 9 4 5 6 7 8 9 10 5 6 7 8 9 10 11]

A =

1 2 3 4 5 6 7

2 3 4 5 6 7 8

3 4 5 6 7 8 9

4 5 6 7 8 9 10

5 6 7 8 9 10 11

>> A11 = A(1:2,1:2)

(5)

A11 =

1 2

2 3

>> A12 = A(1:2,3:5) A12 =

3 4 5

4 5 6

>> A13 = A(1:2,6:7) A13 =

6 7

7 8

>> A21 = A(3:5,1:2) A21 =

3 4

4 5

5 6

>> A22=A(3:5,3:5) A22 =

5 6 7

6 7 8

7 8 9

(6)

>> A23=A(3:5,6:7) A23 =

8 9

9 10

10 11

>>

Se le partizioni sono compatibili possiamo trattare le sottomatrici come scalari nell’eseguire le operazioni tra matrici.

Per esempio:

A11 A12 A21 A22

!

+ B11 B12 B21 B22

!

= A11+ B11 A12+ B12 A21+ B21 A22+ B22

!

A11 A12 A21 A22

! B11 B12 B21 B22

!

= A11B11+ A12B21 A11B12+ A12B22 A21B11+ A22B21 A21B12+ A22B22

!

Vettori Ortogonali

Siano x e y ∈ Rn, se xTy = 0 i due vettori si dicono ortogonali.

Esempio:

>> x=[1;3;1]

x = 1 3

(7)

1

>> y=[2;0;-2]

y = 2 0 -2

>> x’*y ans =

0

xTx =Pni=1x2i, quindi xTx > 0.

Esempio:

>> x=[1;3;1]

x = 1 3 1

>> x’*x ans =

11

Se xTx = 1, il vettore x si dice unitario.

(8)

Esempio:

>> x=[1/2;sqrt(1/2);1/2]

x =

0.5000 0.7071 0.5000

>> x’*x ans =

1

Dipendenza lineare di vettori

Dati r vettori x1, x2, . . . , xr, diversi dal vettore nullo, se α1x1+ α2x2+ . . . + αrxr= 0

con gli αi 6= 0, i vettori si dicono linearmente dipendenti. Se α1x1+ α2x2+ . . . + αrxr= 0

solo se αi = 0 per i = 1, 2, . . . , r allora i vettori xi, i = 1, 2, . . . , r sono linearmente indipendenti.

Se vi `e un αi 6= 0, ve ne deve essere almeno un altro, e alcuni dei vettori xi

possono esprimersi come combinazione lineare degli altri.

Infatti se x1, x2, . . . , xr sono l.d. con αr 6= 0 si ha:

xr =−α1

αrx1− α2

αrx2− . . . − αr−1 αr xr−1.

Se i vettori xi sono l.i., un qualunque sottoinsieme di essi `e ancora l.i..

Un insieme di vettori tra loro ortogonali sono l.i..

Una base `e l’insieme minimo di vettori l.i.. che generano un insieme dato.

La base canonica di Rm `e costituita dai vettori e1, e2,· · · , em

con elementi (ei)j = 0 per i6= j e (ei)i = 1.

Dato un insieme di vettori

(9)

{x1, x2, . . . , xn}, xi ∈ Rm

si dice rango dell’insieme il numero massimo di vettori linearmente indipen- denti che `e possibile estrarre dall’insieme.

Poich`e il massimo numero di vettori l.i. in tutto Rm `e m, il rango di un insieme di vettori di Rm non pu`o superare m.

Data una matrice A, si dice rango della matrice, e si indica con rank(A), il rango dell’insieme dei suoi vettori colonna.

Esempio:

>> A=rand(3) A =

0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214

>> rank(A) ans =

3

>> det(A) ans =

0.4289

>> A=[3 0 0; 0 4 0;0 0 0]

A =

3 0 0

0 4 0

(10)

0 0 0

>> det(A) ans =

0

>> rank(A) ans =

2

Se a∈ Rm e b∈ Rn, si ha:

W = abT =

a1b1 a1b2 . . . a1bn a2b1 a2b2 . . . a2bn

... ... . .. ... amb1 amb2 . . . ambn

.

La matrice W `e una matrice di rango 1, cio`e le sue colonne generano uno spazio di dimensione 1. Ogni matrice di rango 1 pu`o essere espressa nella forma abT. Le matrici di rango uno non vengono mai memorizzate esplicita- mente, ma si utilizza sempre la loro rappresentazione con i vettori a e b.

Esempio:

>> a=[4;2;7]

a = 4 2 7

>> b=[2;4;1;3]

(11)

b = 2 4 1 3

>> W=a*b’

W =

8 16 4 12

4 8 2 6

14 28 7 21

>> rank(W) ans =

1

Come eseguiamo il prodotto W x ? c = W x = (abT)x = a(bTx) = (bTx)a bTx `e uno scalare quindi calcoliamo prima

µ = bTx e poi

c = µa Numero di operazioni:

2n moltiplicazioni n− 1 addizioni.

Infatti:

>> x=[2;4;6;8]

(12)

x = 2 4 6 8

>> c=W*x c =

200 100 350

>> (b’*x)*a ans =

200 100 350

Consideriamo le due matrici A ed

A =ˆ

a1,1 a1,2 . . . a1,n b1 a2,1 a2,2 . . . a2,n b2 ... ... . .. ... ... am,1 am,2 . . . am,n bm

= (A, b)

detta matrice ampliata, avente in comune con A le prime n colonne, mentre l’ultima colonna `e il vettore b.

Si ha il seguente Teorema, noto come teorema di Rouch´e-Capelli:

Condizione necessaria e sufficiente affinch`e il sistema Ax = b ammetta solu- zioni `e che il rango di A e quello di ˆA coincidano.

Se A `e una matrice quadrata di ordine n allora le seguenti proposizioni sono equivalenti:

(13)

1. Per ogni vettore b∈ Rn, il sistema Ax = b ammette soluzione 2. Se una soluzione del sistema esiste essa `e unica

3. Per ogni x∈ Rn, Ax = 0 implica x = 0

4. Le colonne (righe) di A sono linearmente indipendenti 5. La matrice A `e invertibile

6. det(A)6= 0

det(A) =

n

X

j=1

(−1)i+jai,jdet(Ai,j),

L’ultima relazione pu`o essere fuorviante, perch`e il determinante cambia sca- lando la matrice. Infatti

det(σA) = σndet(A) Se n = 30 e det(A) = 1 allora

det(0.1A) = 10−30

Non `e facile verificare al calcolatore quando questa quantit`a `e veramente 0.

Il calcolo del determinante con la regola di Laplace richiede pi`u di n! molti- plicazioni,

n = 16

se il nostro computer esegue una moltiplicazione ogni 10−10 secondi tempo di calcolo : 16!*1e-10/60 ≈ 35 minuti.

Esempio:

>> A=rand(30);

>> det(A) ans =

1.0957

>> det(0.1*A)

(14)

ans =

1.0957e-30

>> A=rand(100);

>> det(A) ans =

6.5597e+25

>> B=0.1*A;

>> det(B) ans =

6.5597e-75

>> (0.1^100)*det(A) ans =

6.5597e-75

>> B=0.01*A;

>> det(B) ans =

6.5597e-175

Propriet` a del Determinante

(15)

1) Se A `e una matrice triangolare (superiore od inferiore), allora det(A) `e uguale al prodotto degli elementi sulla diagonale.

>> L=[1 0;3 4]

L =

1 0

3 4

>> det(L) ans =

4

2) Se A e B sono due matrici dell’insieme, allora:

det(AB) = det(A)det(B).

>> A=[1 2;3 4]

A =

1 2

3 4

>> B=[5 6;7 8]

B =

5 6

7 8

(16)

>> det(A*B) ans =

4

>> det(A)*det(B) ans =

4

Autovalori e autovettori.

Data una matrice quadrata A ∈ Rn×n, un numero complesso λ si dice au- tovalore di A se esiste un vettore u 6= 0 a componenti reali o complessi tale che:

Au = λu, o

(A− λI)u = 0,

u si dice autovettore di A ed `e soluzione non nulla di un sistema lineare omogeneo.

- Costruzione di un vettore contenente gli autovalori di una matrice casuale B:

>> B=rand(3) B =

0.3795 0.7095 0.1897 0.8318 0.4289 0.1934 0.5028 0.3046 0.6822

(17)

>> v = eig(B) v =

1.3891 -0.3661 0.4676

- Costruzione di una matrice diagonale V contenente gli autovalori di B e di una matrice T contenente i corrispondenti autovettori:

>> [T,V]=eig(B) T =

-0.5246 -0.7008 -0.2298 -0.5800 0.7010 -0.2779 -0.6232 0.1324 0.9327

V =

1.3891 0 0

0 -0.3661 0

0 0 0.4676

>> B*T(:,1) ans =

-0.7289 -0.8057 -0.8656

>> B*T(:,1)-V(1,1)*T(:,1)

(18)

ans =

1.0e-15 * 0.7772 0.1110 0.4441

>> B*T(:,2)-V(2,2)*T(:,2) ans =

1.0e-15 * 0.1110

0 0.1249

Gli autovalori verificano l’equazione det(A − λI) = 0. Si dimostra che det(A − λI) = p(λ) `e un polinomio di grado n in λ che ha n radici nel campo complesso. p(λ) si chiama polinomio caratteristico.

Si dice raggio spettrale della matrice A, e lo si indica con ρ(A), il massimo modulo degli autovalori di A.

Se u `e un autovettore di A, anche αu, con α6= 0 `e autovettore di A.

Gli autovettori unitari o normalizzati sono tali che uTu = 1.

Esempio:

Data la seguente matrice:

>> A=[1 2;2 1]

A =

1 2

2 1

determiniamone gli autovalori

(19)

>> eig(A) ans =

-1 3

calcoliamo la matrice degli autovettori V

>> [V,D]=eig(A) V =

-0.7071 0.7071 0.7071 0.7071

D =

-1 0

0 3

e calcoliamo V0V

>> V’*V ans =

1.0000 0

0 1.0000

(20)

Matrici simmetriche.

1) Gli autovalori sono reali

2) Gli autovettori corrispondenti ad autovalori distinti sono ortogonali:

3) Esistono n autovettori unitari ortogonali tra loro.

Siano u1, u2, . . . , un autovettori unitari e sia U = (u1, u2,· · · un)

UTU =

uT1u1 uT1u2 . . . uT1un uT2u1 uT2u2 . . . uT2un

... ... . . . ... uTnu1 uTnu2 . . . uTnun

= I = U UT,

infatti:

uTi uj =

( 0 per i6= j 1 per i = j . La matrice U si dice ortogonale.

Se λ1, λ2, . . . , λngli autovalori si A associati a u1, u2, . . . , une Λ = diag(λ1, λ2, . . . , λn), si ha:

AU = U Λ da cui:

UTAU = Λ

Vediamo un’istruzione MATLAB che ci permette di costruire matrici ortogonali:

ORTH Orthogonalization.

Q = ORTH(A) is an orthonormal basis for the range of A.

That is, Q’*Q = I, the columns of Q span the same space as the columns of A, and the number of columns of Q is the rank of A.

See also SVD, RANK, NULL.

(21)

>> A=rand(3) A =

0.8981 0.7135 0.6952 0.8966 0.1679 0.4507 0.2469 0.3731 0.0594

>> Q=orth(A) Q =

-0.7872 0.3997 -0.4697 -0.5744 -0.7524 0.3224 -0.2246 0.5236 0.8218

>> Q’*Q ans =

1.0000 -0.0000 -0.0000 -0.0000 1.0000 0.0000 -0.0000 0.0000 1.0000

>> A=[1 0 0;0 5 0;0 0 0]

A =

1 0 0

0 5 0

0 0 0

>> rank(A) ans =

(22)

2

>> Q=orth(A) Q =

0 1

1 0

0 0

>> Q’*Q ans =

1 0

0 1

Esempio:

>> A=[1 2 3;4 5 6;7 8 3;]

A =

1 2 3

4 5 6

7 8 3

>> A=A+A’

A =

2 6 10

6 10 14

10 14 6

(23)

>> [T,V]=eig(A) T =

0.4955 0.7664 0.4088 0.4202 -0.6234 0.6594 -0.7602 0.1550 0.6309

V =

-8.2552 0 0

0 -0.8578 0

0 0 27.1130

>> T’*T ans =

1.0000 -0.0000 0.0000 -0.0000 1.0000 -0.0000 0.0000 -0.0000 1.0000

>>

Si dice forma quadratica di una matrice simmetrica l’espressione xTAx con x∈ Rn.

Una matrice simmetrica A si dice:

definita positiva se xTAx > 0 per x6= 0, semidefinita positiva xTAx ≥ 0 per x 6= 0

Una matrice simmetrica A `e definita positiva se e solo se gli autovalori sono tutti positivi.

Se A `e una matrice ad elementi complessi, A `e la matrice con elementi i complessi coniugati degli elementi di A.

(24)

La matrice A si dice hermitiana se AT = A.

Trasposta coniugata : AT = AH

Le matrici U per cui UHU = U UH = I si dicono matrici unitarie.

Esempio:

> A=rand(3) A =

0.5075 0.1050 0.0442 0.4366 0.7099 0.4675 0.0516 0.3509 0.9411

>> Q=orth(A) Q =

-0.1982 0.6490 0.7345 -0.6842 0.4450 -0.5778 -0.7018 -0.6171 0.3558

>> Q’*Q ans =

1.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000 -0.0000 -0.0000 1.0000

>> Q*Q’

ans =

(25)

1.0000 0.0000 0.0000 0.0000 1.0000 -0.0000 0.0000 -0.0000 1.0000

Se λ `e un autovalore di A, λ2 `e un autovalore di A2 ed in genere λr `e un autovalore di Ar per r > 0.

Esempio:

>> A=rand(3) A =

0.0030 0.6674 0.8103 0.2235 0.4112 0.3655 0.7066 0.4878 0.1923

>> eig(A).^5 ans =

3.1290 -0.1199 0.0000

>> eig(A^5) ans =

3.1290 -0.1199 0.0000

Norme vettoriali.

(26)

Sia x ∈ Rn, si chiama norma di x, e si indica con kxk, un numero non negativo che soddisfa le seguenti condizioni:

N1) se x `e il vettore nullo, kxk = 0 e viceversa;

N2) se λ `e uno scalare, kλxk = |λ|kxk;

N3) se x ed y sono due vettori, kx + yk ≤ kxk + kyk (disuguaglianza triangolare)

Dalla N3) segue che:

kx − yk ≥ | kxk − kyk | Disuguaglianza di Cauchy-Schwartz:

(xTy)2 ≤ (xTx)(yTy) Sia x = (x1, x2, . . . , xn)T

Norma ∞

kxk= max

1≤i≤n|xi|.

Vediamo l’istruzione Matlab per calcolare la Norma ∞ di un vettore:

>> x=[1 2 3 4]

x =

1 2 3 4

>> norm(x,inf) ans =

4

>> max(abs(x))

(27)

ans = 4

Norma 1.

kxk1 =

n

X

i=1

|xi|

>> x=[1 2 3 4]

x =

1 2 3 4

>> norm(x,1) ans =

10

La funzione Matlab sum accetta come dato di input un vettore e da come risultato la somma degli elementi del vettore.

>> sum(abs(x)) ans =

10

Norma 2.

kxk2 = (xTx)1/2 .

(28)

>> x=[1 2 3 4]

x =

1 2 3 4

>> norm(x,2) ans =

5.4772

>> sqrt(sum(x.^2)) ans =

5.4772

Norme matriciali.

Sia A ∈ Rm×n, si chiama norma di A, e si indica con kAk, un numero non negativo che soddisfa le seguenti condizioni:

M1) kAk = 0 se e solo se A `e la matrice nulla;

M2) Se λ `e uno scalare allora kλAk = |λ|kAk;

M3) Se B `e una matrice avente le stesse dimensioni di A allora:

kA + Bk ≤ kAk + kBk;

M4) Se B `e una matrice il cui numero di righe `e uguale al numero di colonne di A, allora:

kABk ≤ kAkkBk.

Norma matriciale indotta da una norma vettoriale

(29)

kAk = max

kxk=1kAxk

Una norma matriciale `e compatibile con una norma su vettori se dato y∈ Rn, kAyk ≤ kAkkyk.

Le norme matriciali indotte sono compatibili con le norme vettoriali.

Norma ∞

kAk = max

1≤i≤n n

X

j=1

|ai,j|.

>> A=rand(4)

A =

0.9501 0.8913 0.8214 0.9218

0.2311 0.7621 0.4447 0.7382

0.6068 0.4565 0.6154 0.1763

0.4860 0.0185 0.7919 0.4057

>> norm(A,’inf’) ans =

3.5846

La funzione Matlab sum accetta anche come dato di input una matrice e da come risultato un vettore contenente la somma degli elementi sulle colonne della matrice.

>> max(sum(abs(A’))) ans =

3.5846

(30)

Norma 1

kAk1 = max

1≤j≤n m

X

i=1

|ai,j|.

>> norm(A,1) ans =

2.6735

>> max(sum(abs(A))) ans =

2.6735

Norma 2

kAk2 =qρ(ATA)

>> norm(A,2) ans =

2.4479

Riferimenti

Documenti correlati

y vettore contenente il valore assunto nei punti in x dalla funzione spline. La funzione ` e richiamabile tramite

Le formule composte sono ottenute dividen- do l’intervallo [a, b] in un certo numero N di sottointervalli uguali, ed applicando in ognu- no di questi una formula di quadratura di

In generale al pas- so i dell’eliminazione di Gauss, ordiniamo le righe e le colonne da i a n in modo da por- tare l’elemento pi` u grande in valore assoluto in posizione i, i..

rappresentano istanti discreti di tem- po, le equazioni alle differenze del primo ordine possono essere considerate come lo strumento pi` u semplice per descrivere l’evoluzione

Per i problemi MAL CONDIZIONATI la per- turbazione nei dati dovuta alla rappresenta- zione finita genera errori elevati sul risultato, qualunque sia l’algoritmo utilizzato. Se K `

Dipartimento Interuniversitario di Matematica Universit` a di Bari. MATLAB: Elementi di

Data una matrice A, si dice rango della ma- trice, e si indica con rank(A), il rango dell’in- sieme dei suoi vettori colonna.... L’ultima relazione pu` o essere fuorviante, per- ch`

In generale al pas- so i dell’eliminazione di Gauss, ordiniamo le righe e le colonne da i a n in modo da por- tare l’elemento pi` u grande in valore assoluto in posizione i, i..