MATLAB
…oggi… Indipendenza lineare, basi, sottospazi Autovalori, autovettori Fattorizzazione QR Esercizi vari
Vettori l.i. sono linearmenti indipendenti se m=n e i vettori sono l.i. => formano una base di Rn Fissata una base nello s.v. V possiamo associare in modo unico ad un vettore v un elemento di Rn => per vedere se i vettori sono l.i. o no si puo’ operare direttamente in Rn Si scrivono i vettori in componenti e si forma la matrix A che ha come colonne le componenti dei vettori e si calcola il rango della matrix. I vettori corrispondenti alle colonne dei pivot sono quelli l.i.
il rango è 3 => i vettori sono l.i. e formano una base per R3 Esempio - 1 v1 = [1 0 2]’; v2 = [2 1 1]’; v3 = [1 2 0]’; A = [v1 v2 v3] rank(A) costruiamo la matrice A (le cui colonne sono le componenti dei vettori) In MATLAB x vedere se i vettori v1,v2,v3 sono l.i formiamo la matrix A avente x colonne le componenti dei vettori e vediamo quanto vale il rango della matrix col comando rank(A); se il rango è 3 => i vettori sono l.i.; in particolare poiché siamo in R3 i 3 vettori formano una base x tale spazio il rango è 3 => i vettori sono l.i. e formano una base per R3
il rango è 3 => i vettori sono l.d. Esempio – 2 (I parte) v1 = [1 2 0 1]’; v2 = [2 2 1 1]’; v3 = [1 0 1 0]’; v4 = [0 2 0 2]’; A = [v1 v2 v3 v4] rank(A) il rango è 3 => i vettori sono l.d.
Esempio – 2 (II parte) Per trovare una c.l. nulla a coefficienti nn tutti nulli t.c. troviamo una soluzione non nulla del sistema omogeneo Ak = 0 rref(A) Vi ricordate come si risolve un sistema lineare in Matlab? A è una matrix quadrata singolare => per risolvere il sistema facciamo rref(A) e scriviamo le soluzioni a mano
Basi Dopo aver verificato che i vettori sono una base di R3 esprimere come c.l. dei v1 = [1 1 0’]’; v2 = [0 1 1]’; v3 = [1 0 1]’; v = [1 1 1]’; A = [v1 v2 v3] rank(A) il rango è 3 => i vettori sono l.i. i coefficienti lineari della combinazione si trovano: I coefficienti lineari della combinazione si trovano risolvendo il sistema Ak=v A matrix quadrata di ordine 3 nn singolare => risolviamo il sistema con l’algoritmo di Gauss k=A\v
…ricapitolando… costruiamo la matrice A le cui colonne sono le componenti dei vettori i vettori sono l.i. rank(A)=m (m<=n) se sono l.d. => i coefficienti di una loro combinazione lineare non nulla si trovano risolvendo il sistema Ak=0 Per esprimere un vettore w come c.l. dei vettori della base, si risolve il sistema Ak=w W = span(v1,v2,…,vm) dim W = rank(A) una base BW del s.s. W è costituita dai vettori l.i. di A A è la matrix avente x colonne le componenti dei vettori
Esercizo Scrivere una funzione di n (n>0) che crei la matrice A: per n=7 sia W=span(c1,c2,c3,c4) dim(W)=? scrivere una base di W dire quali dei seguenti vettori appartiene a W ed eventualmente scriverne le coordinate rispetto alla base di W trovata: w1=(0 1 2 0 1 2 3) w2=(1 2 1 2 1 2 1)
Vettori ortogonali I vettori non nulli si dicono ortogonali se: I vettori non nulli si dicono ortonormali se sono ortogonali e inoltre Se m=n si dice che tali vettori ortonormali formano una base canonica (ortonormale) di Rn
Matrici ortogonali Una matrice si dice ortogonale se le sue colonne formano vettori fra loro ortonormali le colonne (le righe) di A formano una b.c. di Rn
Vettori ortogonali in MATLAB Per verificare, mediante MATLAB, se 2 vettori colonna v1,v2 sono ortogonali Se il prodotto del vettore riga v1’ col vettore colonna v2 e’ 0 => i vettori sono ortogonali Per calcolare la norma di un vettore v1’*v2==0 norm(v)
Autovalori e autovettori Per trovare gli autovalori e autovettori di A ava -> vettore colonna degli autovalori di A D -> matrice diagonale contenente gli autovalori di A V -> matrice le cui colonne sono gli autovettori di A relativi agli autovalori in D Data una matrix quadrata A di ordine n, un numero λ (reale o complesso) e un vettore v son detti risp autovalore e autovettore di A se vale la relazione Av= λv. Per ottenere in MATLAB gli autovalori e autovettori di una matrix quadrata si usa il comando eig Se come parametro di uscita indichiamo una sola variabile => eig ci restituisce un vettore colonna contenente gli autovalori della matrix, altrimenti restituirà 2 matrici V e D contenenti rispettivamente gli autovettori e gli autovalori di A. In particolare D è una matrix diagonale contenente gli autovalori di A, mentre V è t.c. le sue colonne sono gli autovettori di A relativi agli autovalori contenuti in D. RICORDA gli autovalori di una matrix diagonale sono gli elementi della diagonale gli autovalori di una matrix trangolare (sup o inf) sono gli elementi della diagonale gli autovalori di una matrix simmetrica sono tutti numeri reali ava= eig(A) [V D] = eig(A)
Esempio diagonalizzabile => [V D] = eig(A) V*V’ esiste una base di Rn formata da autovettori di A A simmetrica => A diagonalizzabile in questo caso eig dà una matrix V ortonormale [V D] = eig(A) V*V’ V’*V Le colonne di V formano una base canonica per Rn La matrix V ottenuta dalla funzione eig a due output è una matrix ortogonale
Esercizi Richiamare la matrice A di prima, costruire la matrice A*A’ dire se è diagonalizzabile trovare la matrix P che la diagonalizza scrivere una base o.n. di R7 La matrice A è diagonalizzabile?
Fattorizzazione QR Una matrice invertibile può essere fattorizzata come A = QR Q è ortogonale (è l’ortogonalizzazione delle colonne di A) R è triangolare superiore. Si può usare la stessa fattorizzazione anche per matrici
Esempio Trovare la fattorizzazione QR della matrice clear [Q,R]=qr(A) Q*R=A % test Q*Q’ % è = I Q’*Q % è = I
Esercizo Richiamare la matrice A di prima eseguire la fattorizzazione QR scrivere una base normale per W=span(c1,c2,c3,c4) completare la base o.n. di W a base o.n. di R7