1> % diagonalizzazione di matrici 1> % esempio della matrice della lezione del 12 novembre 1> A = [0 -1 1; -3 -2 3; -2 -2 3] A = 0 -1 1 -3 -2 3 -2 -2 3 2> % polinomio caratteristico 2> p = poly(A) p = 1.00000 -1.00000 -1.00000 1.00000 3> % autovalori della A sono le radici del polinomio caratteristico p 3> roots(p) ans = -1.00000 1.00000 1.00000 4> format long 5> roots(p) ans = -1.000000000000000 0.999999990760051 1.000000009239949 6> format 7> [X, Lambda] = eig(A) X = -0.26726 -0.26726 0.76239 -0.80178 0.80178 -0.12807 -0.53452 0.53452 0.63432 Lambda = Diagonal Matrix -1.00000 0 0 0 1.00000 0 0 0 1.00000 8> x1 = X( : , 1) x1 = -0.26726 -0.80178 -0.53452 9> A * x1 ans = 0.26726 0.80178 0.53452 10> x2 = X( : , 2) x2 = -0.26726 0.80178 0.53452 11> x3 = X( : , 3) x3 = 0.76239 -0.12807 0.63432 12> norm(x1) ans = 1 13> norm(x2) ans = 1 14> norm(x3) ans = 1 15> % x1, x2, x3 sono ortonormali? 15> dot(x1,x2) ans = -0.85714 16> det(X) ans = -0.30844 17> inv(X) * A * X ans = -1.0000e+00 -6.1409e-16 1.3571e-15 -7.9320e-16 1.0000e+00 1.0734e-17 -2.5614e-16 -5.2367e-17 1.0000e+00 18> A A = 0 -1 1 -3 -2 3 -2 -2 3 19> % trasposta della A 19> A.' ans = 0 -3 -2 -1 -2 -2 1 3 3 20> % diagonalizzare una matrice simmetrica 20> B = [3 2; 2 3] B = 3 2 2 3 21> [XB, LambdaB] = eig(B) XB = -0.70711 0.70711 0.70711 0.70711 LambdaB = Diagonal Matrix 1 0 0 5 22> x1B = XB(:,1) x1B = -0.70711 0.70711 23> x2B = XB(:,2) x2B = 0.70711 0.70711 24> 1/sqrt(2) ans = 0.70711 25> dot(x1B, x2B) ans = 0 26> % XB e' una matrice ortogonale 26> XB.' * XB ans = 1.00000 0.00000 0.00000 1.00000 27> det(XB) ans = -1.0000 28> XB XB = -0.70711 0.70711 0.70711 0.70711 29> help scambio error: help: `scambio' is not documented 29> scambio(1,2,XB) ans = 0.70711 0.70711 -0.70711 0.70711 30> % scambio delle righe della XB 30> x = [XB(2,:); XB(1,:)] x = 0.70711 0.70711 -0.70711 0.70711 31> x.' * B * x ans = 1.0000e+00 4.2663e-17 1.8084e-16 5.0000e+00 32> det(x) ans = 1.0000 33> quit