Main Content

Autovalori

Decomposizione di autovalori

Un autovalore e un autovettore di una matrice quadrata A sono, rispettivamente, uno scalare λ e un vettore υ non zero che soddisfano

= λυ.

Con gli autovalori sulla diagonale di una matrice di diagonale Λ e i corrispettivi autovettori che formano le colonne di una matrice V, si ottiene

AV = .

Se V è non singolare, questo diventa la decomposizione di autovalori

A = VΛV–1.

Un buon esempio è rappresentato dalla matrice di coefficienti dell'equazione differenziale dx/dt = Ax:

A =
     0    -6    -1
     6     2   -16
    -5    20   -10

La soluzione a questa equazione viene espressa in termini della matrice esponenziale x(t) = etAx(0). La dichiarazione

lambda = eig(A)

genera un vettore di colonna contenente l'autovalore A. Per questa matrice, gli autovalori sono complessi:

lambda =
     -3.0710         
     -2.4645+17.6008i
     -2.4645-17.6008i

La parte reale di ciascuno degli autovalori è negativa, quindi eλt si avvicina a zero all'aumentare di t. La parte immaginaria non zero di due degli autovalori, ±ω, contribuisce alla componente oscillatoria, sin(ωt), della soluzione dell'equazione differenziale.

Con due argomenti di output, eig calcola gli autovettori e memorizza gli autovalori in una matrice di diagonali:

[V,D] = eig(A)
V =
  -0.8326         0.2003 - 0.1394i   0.2003 + 0.1394i
  -0.3553        -0.2110 - 0.6447i  -0.2110 + 0.6447i
  -0.4248        -0.6930            -0.6930          

D =
  -3.0710                 0                 0         
        0           -2.4645+17.6008i        0         
        0                 0           -2.4645-17.6008i

Il primo autovettore è reale, mentre gli altri due vettori sono coniugati complessi reciproci. Tutti e tre i vettori sono normalizzati per presentare una lunghezza euclidea, norm(v,2), pari a uno.

La matrice V*D*inv(V), che può essere scritta più brevemente come V*D/V, rientra nell'errore di arrotondamento di A. inv(V)*A*V, o V\A*V, rientra nell'errore di arrotondamento di D.

Autovalori multipli

Alcune matrici non dispongono della decomposizione degli autovettori. Si tratta di matrici non diagonizzabili. Ad esempio:

A = [ 1    -2    1 
      0     1    4 
      0     0    3 ]

Per questa matrice

[V,D] = eig(A)

genera

V =

    1.0000    1.0000   -0.5571
         0    0.0000    0.7428
         0         0    0.3714


D =

     1     0     0
     0     1     0
     0     0     3

Vi è un doppio autovalore in λ = 1. La prima e la seconda colonna di V coincidono. Per questa matrice non esiste una serie completa di autovettori linearmente indipendenti.

Decomposizione di Schur

Molti calcoli avanzati sulle matrici non richiedono la decomposizione degli autovalori. Si basano invece sulla decomposizione di Schur

A = USU ′ ,

in cui U è una matrice ortogonale e S è una matrice triangolare superiore di blocchi con blocchi 1x1 e 2x2 sulla diagonale. Gli autovalori sono rivelati dagli elementi della diagonale e dai blocchi di S, mentre le colonne di U forniscono una base ortogonale, che presenta proprietà numeriche assai superiori rispetto a una serie di autovettori.

Ad esempio, confrontare l'autovalore e le decomposizioni di Schur di questa matrice difettosa:

A = [ 6    12    19 
     -9   -20   -33 
      4     9    15 ];

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

  -0.4741 + 0.0000i  -0.4082 - 0.0000i  -0.4082 + 0.0000i
   0.8127 + 0.0000i   0.8165 + 0.0000i   0.8165 + 0.0000i
  -0.3386 + 0.0000i  -0.4082 + 0.0000i  -0.4082 - 0.0000i


D =

  -1.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   1.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   1.0000 - 0.0000i
[U,S] = schur(A)
U =

   -0.4741    0.6648    0.5774
    0.8127    0.0782    0.5774
   -0.3386   -0.7430    0.5774


S =

   -1.0000   20.7846  -44.6948
         0    1.0000   -0.6096
         0    0.0000    1.0000

La matrice A è difettosa perché non dispone di una serie completa di autovettori linearmente indipendenti (la seconda e la terza colonna di V coincidono). Poiché non tutte le colonne di V sono linearmente indipendenti, vi è un grande numero di condizioni di circa ~1e8. schur è tuttavia in grado di calcolare tre diversi vettori di base in U. Poiché U è ortogonale, allora cond(U) = 1.

La matrice S presenta l'autovalore reale come primo elemento della diagonale e l'autovalore ripetuto rappresentato dal blocco 2x2 inferiore a destra. Anche gli autovalori del blocco 2x2 sono autovalori di A:

eig(S(2:3,2:3))
ans =

   1.0000 + 0.0000i
   1.0000 - 0.0000i

Vedi anche

|

Argomenti complementari

Siti web esterni