Quello che andremo a fare è seguire passo passo quanto indicato sopra per ottenere una verifica che il metodo sia corretto:
» v=[10;7;12], Q=eye(3)-2*v*v'/(v'*v)
v =
10
7
12
Q =
0.31740614334471 -0.47781569965870 -0.81911262798635
-0.47781569965870 0.66552901023891 -0.57337883959044
-0.81911262798635 -0.57337883959044 0.01706484641638
» Q*Q'
ans =
1.00000000000000 0 0.00000000000000
0 1.00000000000000 -0.00000000000000
0.00000000000000 -0.00000000000000 1.00000000000000
» A=Q*diag([40;20;10])*Q'
A =
15.30547822339223 -7.72985125045137 -5.06004729233887
-7.72985125045137 21.27852391990588 7.92554368717166
-5.06004729233887 7.92554368717166 33.41599785670188
» [l,i]=potenze(A, rand(3,1), 10e-15, 2000)
l =
39.99999999999992
i =
24
»
Si è costruito un vettore
di tre elementi, dopo di che si è
costruito la matrice
di Householder, che sappiamo essere
ortogonale, e quindi come riprova abbiamo moltiplicato Q per la
sua trasposta per verificare che produca come risultato la matrice
identita, e così è; successivamente abbiamo prodotto la matrice A
come trasformazione per similitudine della matrice diagonale che
contiene i nostri autovalori, ed infine abbiamo applicato il
metodo delle potenze a questa matrice. Il risultato, come si vede,
è pienamente soddisfacente.