Algebra Lineare Numerica Esercitazione n 9

Algebra Lineare Numerica
Esercitazione n◦ 9
• Esercizio 1
1. Si scriva una function pow che, data una matrice A, implementi il metodo delle
potenze.
2. Si scriva una function powinv che, data una matrice A, implementi il metodo delle
potenze inverse con shift.
3. Si implementi il metodo delle iterazioni di Rayleigh.
4. Si applichino i tre metodi alla matrice tridiagonale A m × m, per m = 20, con tutti
gli elementi diagonali uguali a 2 eccetto A(m, m) = 5, ed elementi sopra- e sottodiagonali -1. Nel caso del metodo delle potenze inverse si testi sia con shift uguale
che diverso da zero. A quale autovalore converge ogni metodo? Si tracci il grafico
semilogy dell’errore, ad ogni iterazione, fra l’autovalore esatto (calcolato con eig
di Matlab) e quello approssimato . Si calcoli l’ordine di convergenza sperimentale
(EOC).
Suggerimento: per calcolare l’ordine di convergenza sperimentale si utilizzi la formula
e
EOC =
k+2
log( ek+1
)
log(
ek+1
ek )
dove ek `e la norma dell’errore alla k-esima iterazione.
• Esercizio 2
Siano A e T le seguenti matrici


1 3 4
A= 3 1 2 
4 2 1


8 1 6
T =  3 5 7 .
4 9 2
La matrice simmetrica A ha i seguenti autovalori (con cinque cifre significative): λ1 =
7.0747, λ1 = −3.1879 e λ3 = −0.8868. Si confronti il comportamento del metodo delle
potenze nel calcolo di λ1 per la matrice A e per la matrice ad essa simile T −1 AT , utilizzando
come dato iniziale il vettore (1, 1, 1)T .
• Esercizio 3
Si consideri la matrice A ottenuta tramite il comando
A=compan([1 -4 -95 398 -500 200]);
1. Si applichi il metodo delle potenze con vettore iniziale x0 = ones(5, 1) e x0 =
randn(5, 1). Si dia una motivazione dei risultati ottenuti.
2. Si calcoli l’autovalore massimo della matrice A, utilizzando uno dei metodi implementati, e si giustifichi la scelta.
• Esercizio 4
Si scriva una function T = tridiag(A) che riduca una matrice A m × m reale simmetrica a forma tridiagonale usando trasformazioni di similitudine ortogonali. Si consiglia di
aggiungere una riga che forzi la matrice in output T ad essere esattamente tridiagonale
simmetrica, dato che potrebbe non esserlo a causa di errori di arrotondamento. Per esempio, si testi la function con A =hilb(4).
OSS. in Matlab esiste il comando hess.
2
Algebra Lineare Numerica
Lab nr. 9
• Exercise 1
1. Write a function pow that implements the power iteration method given a matrix A.
2. Write a function powinv that implements the inverse iteration method with shift
given a matrix A.
3. Implement Rayleigh quotient iteration.
4. Apply all the three methods to the tridiagonal A m × m with m = 20, the diagonal
entries are equal to 2, except for A(m, m) = 5, and super- and sub-diagonal entries
are equal to -1. For the inverse power method, test with and without shift. At which
eigenvalue do the methods converge? Plot using semilogy the error at each iteration
between the exact eigenvalue (computed using the Matlab command eig) and those
approximated. What is the experimental order of convergence (EOC)?
Hint: in order to compute the EOC use the following formula
e
EOC =
log( ek+2
)
k+1
log(
ek+1
ek )
where ek is the norm of the error at the k-th iteration.
• Exercise 2
Consider the following matrices A

1
A= 3
4
and T

3 4
1 2 
2 1


8 1 6
T =  3 5 7 .
4 9 2
The symmetric matrix A has the following spectrum: λ1 = 7.0747, λ1 = −3.1879 and
λ3 = −0.8868 (to five significant figures). Compare the behaviour of the power method
when computing λ1 for the symmetric matrix A and for its similar matrix T −1 AT , where
T is nonsingular and nonorthogonal. Use (1, 1, 1)T as initial data.
• Esercizio 3
Consider the matrix A, obtained with the following command
A=compan([1 -4 -95 398 -500 200]);
3
1. Apply the power method with initial guess x0 = ones(5, 1) and x0 = randn(5, 1).
Motivate the results.
2. Compute the maximum eigenvalue of the matrix A, using one of the implemented
method, and justify your choice.
• Exercise 4
Write a function T = tridiag(A) that reduces a real symmetric m × m matrix A to
tridiagonal form by othogonal similarity transformations. Your output matrix T should
be symmetric and tridiagonal up to rounding errors. If you like, add a line that forces T
at the end to be exactly symmetric and tridiagonal. For an example, apply your program
to A =hilb(4).
Remark: there is the Matlab function hess.
4