1> a = [2 -1 2; -1 2 -2 ; 2 -2 5] a = 2 -1 2 -1 2 -2 2 -2 5 2> % la matrice a e' simmetrica, cioe' coincide con la sua trasposta a' 2> a' ans = 2 -1 2 -1 2 -2 2 -2 5 3> % con il comando eig calcoliamo una matrice X e una matrice diagonale Lambda % le colonne di X sono gli autovettori (normalizzati) di a % gli elementi sulla diagonale principale di Lambda sono gli autovalori di a 3> [X, Lambda] = eig(a) X = 0.32965 0.85127 0.40825 -0.76815 0.49324 -0.40825 -0.54890 -0.17902 0.81650 Lambda = Diagonal Matrix 1.00000 0 0 0 1.00000 0 0 0 7.00000 4> % abbiamo calcolato a mano il seguente autovettore relativo all'autovalore 7: 4> x3 = [1 -1 2]/sqrt(6) x3 = 0.40825 -0.40825 0.81650 5> % x3 come vettore colonna: 5> x3 = [1; -1; 2]/sqrt(6) x3 = 0.40825 -0.40825 0.81650 6> X(:,3) %terza colonna di X che coincide con x3 (calcolato a mano) ans = 0.40825 -0.40825 0.81650 7> x1 = X(:,1) x1 = 0.32965 -0.76815 -0.54890 8> norm(x1) ans = 1 9> x2 = X(:,2) x2 = 0.85127 0.49324 -0.17902 10> norm(x2) ans = 1 11> x1' * x2 % prodotto scalare che dovrebbe essere 0 ans = 7.4281e-017 12> dot(x1,x2) % lo stesso prodotto scalare calcolato con il comando dot ans = 9.7145e-017 13> a * X ans = 0.32965 0.85127 2.85774 -0.76815 0.49324 -2.85774 -0.54890 -0.17902 5.71548 14> X * Lambda % che deve coincidere con a * X ans = 0.32965 0.85127 2.85774 -0.76815 0.49324 -2.85774 -0.54890 -0.17902 5.71548 15> % X e' una matrice ortogonale, cioe' X * X' e' la matrice indentita' 15> X * X' ans = 1.0000e+000 -2.9992e-017 -6.4754e-017 -2.9992e-017 1.0000e+000 2.2470e-017 -6.4754e-017 2.2470e-017 1.0000e+000 16> X' * X % deve essere anche la matrice identita' ans = 1.0000e+000 7.4281e-017 -4.5320e-017 7.4281e-017 1.0000e+000 -2.2673e-017 -4.5320e-017 -2.2673e-017 1.0000e+000 17> inv(X) % deve coincidere con la trasposta X' ans = 0.32965 -0.76815 -0.54890 0.85127 0.49324 -0.17902 0.40825 -0.40825 0.81650 18> X' ans = 0.32965 -0.76815 -0.54890 0.85127 0.49324 -0.17902 0.40825 -0.40825 0.81650 19> % esempio di una matrice b che Octave non riesce a identificare come % matrice singolare: il determinante di b e' ovviamente zero poiche' % la somma della seconda e della quarta riga e' un multiplo della terza riga, % ma det(b) non e' molto grande (in valore assoluto) 19> b = [40000120 0 0 0; 0 8e7 -12e4 4e7; 0 -12e4 240 -12e4; 0 4e7 -12e4 8e7] b = 40000120 0 0 0 0 80000000 -120000 40000000 0 -120000 240 -120000 0 40000000 -120000 80000000 20> det(b) ans = -1.3642e+009 21> % anche il calcolo del minore 3 x 3 (che serve nello sviluppo di Laplace % secondo la prima colonna di b) fallisce: 21> c = b(2:4,2:4) c = 80000000 -120000 40000000 -120000 240 -120000 40000000 -120000 80000000 22> det(c) ans = -34.106 23> quit