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
© Copyright 2024 Paperzz