12.07.2015 Views

Metodi per il calcolo di autovalori e autovettori - Università degli ...

Metodi per il calcolo di autovalori e autovettori - Università degli ...

Metodi per il calcolo di autovalori e autovettori - Università degli ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Meto<strong>di</strong></strong> <strong>per</strong> <strong>il</strong> <strong>calcolo</strong> <strong>di</strong> <strong>autovalori</strong>e <strong>autovettori</strong>e stab<strong>il</strong>ità dei sistemi lineariTesina <strong>per</strong> <strong>il</strong> corso <strong>di</strong> <strong>calcolo</strong>numerico 2A.A. 2007/2008Samuela Locci


In<strong>di</strong>ceIntroduzione1 Approssimazione <strong>di</strong> <strong>autovalori</strong> e <strong>autovettori</strong>1.1 Autovalori e <strong>autovettori</strong>……………………………………………………… 31.2 Localizzazione geometrica <strong>degli</strong> <strong>autovalori</strong>………………………………….. 41.2.1 Applicazioni teoremi <strong>di</strong> Gershgorin …………………………………… 51.3 Metodo delle potenze………………………………………………………… 71.3.1 S<strong>per</strong>imentazione del metodo delle potenze…………………………… 91.4 Metodo delle potenze inverse…………………………………………………. 131.4.1 S<strong>per</strong>imentazione del metodo delle potenze inverse…………………… 141.5 L’algoritmo QR………………………………………………………………. 151.5.1 Applicazione dell’algoritmo ………………………………………….. 162 Stab<strong>il</strong>ità dei sistemi lineari2.1 Premessa……………………………………………………………………… 202.2 Stab<strong>il</strong>ità alla Lyapunov………………………………………………………. 212.2.1 Stab<strong>il</strong>ità dei punti <strong>di</strong> equ<strong>il</strong>ibrio ………………………………………… 212.3 Applicazione pratica………………………………………………………….. 222


IntroduzioneLa conoscenza <strong>degli</strong> <strong>autovalori</strong> e <strong>degli</strong> <strong>autovettori</strong> <strong>di</strong> una matrice quadrata èrichiesta non solo nell’ambito <strong>di</strong> importanti teorie della matematica, ma anche inmolte applicazioni, nelle quali si deve <strong>di</strong>sporre <strong>di</strong> una loro buona approssimazionenumerica.Gli <strong>autovalori</strong> e gli <strong>autovettori</strong> vengono ut<strong>il</strong>izzati nelle <strong>di</strong>scipline più <strong>di</strong>sparate chevanno dalla meccanica quantistica alla compressione <strong>di</strong> immagini, dallo stu<strong>di</strong>o deifenomeni sismici allo stu<strong>di</strong>o della stab<strong>il</strong>ità dei sistemi <strong>di</strong>namici, dalla propagazionedei segnali a questioni <strong>di</strong> statistica, ecc…Si pensi ad<strong>di</strong>rittura che Google, <strong>il</strong> notissimo motore <strong>di</strong> ricerca in Internet, usa <strong>il</strong><strong>calcolo</strong> <strong>degli</strong> <strong>autovalori</strong> <strong>di</strong> matrici <strong>di</strong> gran<strong>di</strong>ssima <strong>di</strong>mensione <strong>per</strong> stab<strong>il</strong>ire lecorrelazioni tra le pagine web ogni volta che viene effettuata una ricerca.Data la grande importanza <strong>di</strong> conoscere gli <strong>autovalori</strong> <strong>di</strong> una matrice, nel corsodell’ ultimo secolo sono stati ideati e <strong>per</strong>fezionati molti meto<strong>di</strong> <strong>per</strong> <strong>il</strong> loro <strong>calcolo</strong>,alcuni dei quali saranno trattati ed esaminati in questa tesina.Nell’ ultimo capitolo del testo è stata riportata un’applicazione <strong>degli</strong> algoritmitrattati <strong>per</strong> lo stu<strong>di</strong>o della stab<strong>il</strong>ità dei sistemi lineari.3


Capitolo 1Approssimazione <strong>di</strong> <strong>autovalori</strong> e<strong>autovettori</strong>1.1 Autovalori e <strong>autovettori</strong>Si <strong>di</strong>cono autovalore ed autovettore <strong>di</strong> una matrice A uno scalare λ ed un vettore x ≠ 0 cheverifichino la relazione:Ax=λ xTale equazione può essere riscritta nella forma( A−λ I)x=0Affinché questo sistema lineare omogeneo ammetta una soluzione non nulla è necessario che <strong>il</strong> suodeterminantep A( λ ) = det( A−λ I)si annulli. Essendo p (λ A) un polinomio <strong>di</strong> grado n in λ , chiamato polinomio caratteristico <strong>di</strong> A, <strong>il</strong>Teorema fondamentale dell’algebra assicura l’esistenza <strong>di</strong> n <strong>autovalori</strong>, non necessariamente<strong>di</strong>stinti, che possono essere determinati calcolando gli zeri <strong>di</strong> p A(λ ).Inoltre <strong>per</strong> ciascun autovalore λk una soluzione non nulla del sistema singolare:( A−λ I)x=0kfornisce <strong>il</strong> corrispondente autovettore, che, nel caso in cui la matrice ( A− λ kI)abbia rango n-1 restadeterminato a meno <strong>di</strong> una costante moltiplicativa.Definiamo spettro <strong>di</strong> una matrice l’insieme dei suoi <strong>autovalori</strong>:σ ( A)= { λ1,.............λk}e raggio spettrale <strong>il</strong> massimo dei moduli <strong>degli</strong> <strong>autovalori</strong> <strong>di</strong> Aρ ( A)= max λk4


1.2 Localizzazione geometrica <strong>degli</strong> <strong>autovalori</strong>Il <strong>calcolo</strong> <strong>degli</strong> <strong>autovalori</strong> ed <strong>autovettori</strong> <strong>di</strong> una matrice è un problema potenzialmente delicato, sia<strong>per</strong>ché computazionalmente oneroso sia <strong>per</strong>ché, in taluni casi, può rivelarsi estremamente instab<strong>il</strong>econducendo ad una forte propagazione <strong>degli</strong> errori.Inoltre poiché gli <strong>autovalori</strong> non sono altro che gli zeri del polinomio caratteristico p (λ A) , <strong>per</strong> n ≥ 5è necessario ricorrere a meto<strong>di</strong> iterativi <strong>per</strong> la loro valutazione. Una conoscenza preliminare della<strong>di</strong>slocazione dello spettro della matrice nel piano complesso può risultare vantaggiosa <strong>per</strong> innescareopportunamente tali meto<strong>di</strong>.I teoremi dei cerchi <strong>di</strong> Geshgorin ci <strong>per</strong>mettono <strong>di</strong> in<strong>di</strong>viduare un sottoinsieme del pianocomplesso che contenga tutti gli <strong>autovalori</strong> <strong>di</strong> una matrice.Primo teorema <strong>di</strong> Gershgorin: Assegnata una matrice quadrata A, definiamo cerchi riga gliinsiemiR = { z∈C:z−a ≤iiin∑j=1j≠iaij}, i=1,………….,nAllora gli <strong>autovalori</strong> <strong>di</strong> A sono contenuti nei cerchi riga, ossia:σ ( A)⊆ nR ii=1Corollario1: Assegnata una matrice quadrata A, definiamo cerchi colonna gli insiemiCj⎧⎫n⎪⎪= ⎨ z∈C: z−aij≤ ∑ aij⎬ j =1,......... ...., n⎪i=1 ⎪⎩i≠j ⎭Alloraσ ( A)⊆ nC jj=1Corollario2: Se in<strong>di</strong>chiamo con SR eS R⊆ R i nS C⊆ C jAllora: ni= 1σ ( A)⊆S R∩ S Cj= 1SCl’unione dei cerchi riga e dei cerchi colonna cioè:Secondo teorema <strong>di</strong> Gershgorin: supponiamo che l’insieme SR sia costituito dall’unione <strong>di</strong> duesottoinsiemi <strong>di</strong>sgiunti, cioè che: kR ii=1S1= , n S2= R i , S 1∩ S 2= 0i=k + 15


Allora S1contiene esattamente k <strong>autovalori</strong> <strong>di</strong> A, contati con la loro molteplicità, e S2contiene irimanenti n-k.Terzo teorema <strong>di</strong> Gershgorin: Sia A una matrice irriducib<strong>il</strong>e. Se un autovalore λ <strong>di</strong> A appartienealla frontiera <strong>di</strong> SR allora esso deve appartenere alla frontiera <strong>di</strong> ciascun cerchio riga R i , i=1,….n.1.2.1 Applicazioni teoremi <strong>di</strong> GershgorinVe<strong>di</strong>amo ora alcune applicazioni dei teoremi <strong>di</strong> localizzazione esposti sopra.Possiamo visualizzare graficamente i cerchi <strong>di</strong> Gershgorin <strong>di</strong> una matrice A attraverso la functiongershgorin.m. Tale funzione visualizza in tre finestre grafiche <strong>di</strong>stinte i cerchi <strong>di</strong> riga, i cerchi <strong>di</strong>colonna e l'intersezione dell’unione dei cerchi <strong>di</strong> riga e <strong>di</strong> colonna.Consideriamo <strong>per</strong> cominciare la matrice:A=12−1270−10− 5Lo spettro <strong>di</strong> tale matrice è σ (A)={ -5.1712, 0.55888, 7.6123}.Ut<strong>il</strong>izzando <strong>il</strong> comando gershgorin(A) otteniamo:-cerchi riga: R = { z:z−13},R = { z:z− 7 2},R = { z:z+ 5 1};1≤2≤3≤-cerchi colonna: C = { z:z−13},C = { z:z− 7 2},C = { z:z+ 5 1};1≤2≤3≤La loro intersezione ed unione è riportata nella figura sottostante in color arancio:Osservando tale figura notiamo che gli <strong>autovalori</strong> sono compresi negli intervalli: [-2, 4], [5, 9] e[-6, -4]. Possiamo inoltre vedere che, poiché la matrice A è simmetrica ed ha quin<strong>di</strong> <strong>autovalori</strong> reali,cerchi riga e cerchi colonna coincidono, quin<strong>di</strong> <strong>per</strong> localizzare gli <strong>autovalori</strong> potevamo limitarci aconsiderare esclusivamente i cerchi riga.6


Consideriamo ora la seguente matrice complessa:A=1+i10.250.52− 0.250.506+iLo spettro <strong>di</strong> tale matrice è σ (A)={ 0.69+0.82i, 2.29+0.18i, 6.02+1.01i}.Attraverso la function gershgorin.m otteniamo:-cerchi riga: R = { z:z−(1 + i)1},R = { z:z− 2 1},R = { z:z−(6+i)0.5};1≤2≤3≤-cerchi colonna: C1= { z:z−(1 + i)≤1.25},C2= { z:z− 2 ≤ 0.75},C3= { z:z−(6+i)≤ 0.5};Riportati nelle immagini sottostanti:Riportiamo ora, l’intersezioneS ∩ S che è colorata in arancio:RCNotiamo che gli <strong>autovalori</strong> sono tutti localizzati nella zona in arancio.7


1.3 Metodo delle potenzeIl metodo delle potenze è un metodo iterativo particolarmente adatto <strong>per</strong> approssimare l’autovalore<strong>di</strong> modulo massimo <strong>di</strong> una matrice, ed <strong>il</strong> relativo autovettore associato.Esso converge quando sono verificate le seguenti tre ipotesi: A è <strong>di</strong>agonalizzab<strong>il</strong>e;(0) <strong>il</strong> vettore iniziale x ha una componente non nulla lungo l’autovettore v 1corrispondente a λ1; l’autovalore <strong>di</strong> modulo massimo è separato dagli altriConsideriamo quin<strong>di</strong> una matrice A <strong>di</strong> or<strong>di</strong>ne n <strong>di</strong>agonalizzab<strong>il</strong>e e siano<strong>autovalori</strong> tali che:λ ,..........λ1 n i suoiλ > λ ≥ λ ≥ ........ ≥123λnsupponiamo cioè che l’autovalore <strong>di</strong> modulo massimo λ1 abbia molteplicità algebrica unitaria e chenon esistano altri <strong>autovalori</strong> con lo stesso modulo.nL’algoritmo è allora <strong>il</strong> seguente: fissato un vettore iniziale x ( 0) ∈ C , si genera la successione <strong>di</strong>vettori <strong>il</strong> cui termine k-esimo è:x( k )=Akx(0)questa successione converge all’autovettore principale v 1 della matrice A.(k )Esaminiamo <strong>il</strong> comportamento <strong>per</strong> k − > ∞ della successione x .(0)Nelle ipotesi fatte su A si ha che x ha rappresentazione x (0)= α v i i,e supponendo che α 0kn⎛ n⎞( k ) kk kha:⎜ α ⎛ ⎞iλix = α +=+⎟1λ1v1∑ αiλ1viα1λ1v1⎜∑⎜⎟ vi⎟i=2i=2 α⎝1 ⎝ λ1 ⎠ ⎠Da cui si vede che, poiché λ i < 1λ <strong>per</strong> i ≥ 2 , la <strong>di</strong>rezione del vettore(k )x tende a quella <strong>di</strong> v 1.1Nella forma sopra esposta, l’algoritmo può presentare problemi <strong>di</strong> underflow o <strong>di</strong> overflow dovuti alkfatto che λ1 può tendere a zero o all’infinito. E’ necessaria, quin<strong>di</strong>, un’o<strong>per</strong>azione <strong>di</strong>normalizzazione che può essere effettuata ut<strong>il</strong>izzando a priori <strong>di</strong>versi tipi <strong>di</strong> norma <strong>di</strong> vettore.L’iterazione assume la seguente forma:k ( k − 1)⎧ x = Aq⎪k⎪ ( k ) xq =⎪kx2⎨( k ) T⎪ ( k ) ( q ) Aq⎪ λ1=( k ) T (( q ) q⎪⎪⎩( k )k )Sarà inoltre necessario introdurre un criterio <strong>di</strong> stop del tipo:( k ) ( k − 1) ( k )λ − λ < τ λ oppure k> N111n∑i=11 ≠si8


Il metodo delle potenze può essere implementato in Matlab ut<strong>il</strong>izzando la function potenze.m <strong>il</strong> cu<strong>il</strong>istato, nella sua parte essenziale, è riportato <strong>di</strong> seguito.I dati in ingresso x0, tol, nmax rappresentano rispettivamente <strong>il</strong> vettore iniziale, la tolleranza sottola quale si accetta l’approssimazione calcolata e <strong>il</strong> numero massimo <strong>di</strong> iterazioni consentite.La funzione restituisce lo scalare lambda che rappresenta l’approssimazione dell’autovalore <strong>di</strong>modulo massimo, <strong>il</strong> vettore x1, approssimazione del corrispondente autovettore e lo scalare itercorrispondente al numero <strong>di</strong> iterazioni impiegate.function [lambda,x,iter]=potenze(A,tol,nmax,x0)x0 = x0/norm(x0);pro = A*x0;lambda = x0'*pro;err = tol*abs(lambda) + 1;wh<strong>il</strong>e (err > tol*abs(lambda) & iter


1.3.1 S<strong>per</strong>imentazione del metodo delle potenzeIn questa sezione testeremo la vali<strong>di</strong>tà dell’algoritmo e la sua convergenza. Iniziamo col generare lamatrice A sulla quale saranno eseguiti i primi test, ut<strong>il</strong>izzando i seguenti coman<strong>di</strong> Matlab:λ ,..........,λD = <strong>di</strong>ag ( [Q =orth(rand(n));A =Q’*D*Q;1 n ] );La matrice generata è sim<strong>il</strong>e alla matrice D scelta in partenza, <strong>per</strong>tanto gode <strong>di</strong> un’importantissimaproprietà: ha i suoi stessi <strong>autovalori</strong>.Scegliamo una matrice <strong>di</strong>agonale 5x 5 così costituita:D=<strong>di</strong>ag( λ 1 , 3, 1, 7, 10);Q=orth(rand(5));A =Q’*D*Q;Abbiamo in<strong>di</strong>cato con λ1 l’autovalore <strong>di</strong> modulo massimo.(0)Facciamo <strong>di</strong>verse prove ut<strong>il</strong>izzando come vettore iniziale x = [ 1 1 1 1 1], come tolleranzatol=1e-14 e facendo variare <strong>il</strong> valore dell’autovalore <strong>di</strong> modulo massimo λ1:λ1N iterazioni Errore lambda2000 4 4.77484718430787e-012 20001000 5 1.13686837721616e-013 1000250 6 8.5265128291212e-014 25050 12 4.2632564145606e-014 5020 24 8.5265128291212e-014 2011 159 9.76996261670138e-014 11-10 55 1.15463194561016e-014 1.25021577449067La tabella in alto mette in evidenza come <strong>il</strong> metodo delle potenze sia tanto più rapidamenteconvergente quanto più l’autovalore dominante sia ben separato dagli altri, ovvero tale cheλsia decisamente inferiore a uno.2λ1Notiamo inoltre che se nello spettro della matrice A, ci sono due <strong>autovalori</strong> dominanti oppostiλ2= − λ 1 allora <strong>il</strong> metodo delle potenze non converge poiché durante la costruzione dell'algoritmoavevamo supposto che esistesse uno ed un solo autovalore dominante. L’algoritmo ci fornisceerroneamente come autovalore dominante lambda=1.2502 anziché restituire <strong>il</strong> valore correttolamda=10.Tuttavia nel caso si abbia λ2= − λ1 si può approssimare l’autovalore <strong>di</strong> modulo massimo applicando2<strong>il</strong> metodo delle potenze alla matrice A .22 22 2Si ha infatti λi( A ) = [ λi(A )] , <strong>per</strong> i = 1,......,n in modo λ1= λ2 e si ricade nel caso <strong>di</strong> <strong>autovalori</strong>coincidenti <strong>per</strong> cui <strong>il</strong> metodo converge.10


Otteniamo infatti:λ1N iterazioni Errore lambda-10 24 2.70006239588838e-013 99.9999999999998E’ necessario mettere in evidenza che <strong>per</strong> l’applicazione <strong>di</strong> questo algoritmo la scelta del vettore(0)iniziale x è libera, tuttavia è buona norma prendere un vettore generato in maniera casuale(0)x = rand(n,1) in modo da ridurre la probab<strong>il</strong>ità <strong>di</strong> violare la seconda ipotesi <strong>di</strong> convergenzadell’algoritmo.A questo proposito consideriamo una matrice A generata dal comando Matlab:A= toeplitz([-3,1,0,0]);Gli <strong>autovalori</strong> <strong>di</strong> questa matrice, generati col comando eig <strong>di</strong> Matlab, sono:λ = − 14.6180 ; λ 3. 61802= − ; λ2= − 2. 3819 ; λ2= − 1.3819;(0)Applicando <strong>il</strong> metodo delle potenze con vettore iniziale x =[1 1 1 1] otteniamo invece:- λ1=-3.6180- N° iterazioni = 19quin<strong>di</strong> <strong>il</strong> metodo converge erroneamente al secondo autovalore più grande in modulo.Questo accade <strong>per</strong>ché l’autovettore principale è ortogonale a [1;1;1;1], e quin<strong>di</strong> <strong>il</strong> vettore iniziale hacomponente nulla rispetto al primo autovettore.(0)Ponendo ora x = rand(n,1) e riapplicando <strong>il</strong> metodo si ottiene la convergenza all’autovalorecorretto: λ = − 14. 6180 con un numero <strong>di</strong> iterazioni pari a 67.Mostriamo nella figura sottostante l’andamento dell’errore nei due casi sopra esposti:11


Testiamo infine l’algoritmo su una matrice A in forma compagna.Per ottenerla, Matlab ci fornisce due funzioni:- poly che riceve un vettore contenente gli <strong>autovalori</strong> e restituisce un vettore contenente icoefficienti del polinomio che ha come ra<strong>di</strong>ci i valori contenuti nel vettore <strong>di</strong> input;- compan genera la matrice compagna ut<strong>il</strong>izzando i valori del vettore in ingresso <strong>per</strong> calcolare<strong>il</strong> valore <strong>degli</strong> elementi della prima riga.Si ha:p=poly([ λ1,............λn])A=compan(p)Nella tabella sottostante sono riportati i risultati ottenuti:λ1,.......λnN iterazioni Errore lambda[1:5] 134 4.9737991503207e-014 5.00000000000021[1:8] 221 7.28306304154103e-014 8.00000000000093[1:10] 261 9.9475983006414e-014 9.99999999999735[1:12] 411 5.86197757002083e-014 12.0000000000844[1:14] 1654 3.73034936274053e-014 13.9999999980131[1:20] 2001 6.12470358873907e-008 19.9999971368358Analizzando la tabella notiamo che all’aumentare delle <strong>di</strong>mensioni della matrice, <strong>il</strong> metodo dellepotenze converge all’autovalore <strong>di</strong> modulo massimo ma con moltissime iterazioni.Per scoprire <strong>per</strong>ché accade questo, bisogna fare un’analisi più accurata della stab<strong>il</strong>ità del <strong>calcolo</strong>.A questo proposito enunciamo <strong>il</strong> seguente teorema:Teorema <strong>di</strong> Bauer-Fike: Sia A∈tale che:− 1X AX = D=<strong>di</strong>ag( λ ........ ,λ )1nnxnC <strong>di</strong>agonalizzab<strong>il</strong>e, cioè esista una matrice non singolare XFissata una matrice <strong>di</strong> <strong>per</strong>turbazione E, sia µ un autovalore <strong>di</strong> A+E. Alloraλ − µ ≤ k ( X ) Eminλ ∈ σ ( A)22dove σ (A)rappresenta lo spettro della matrice A e k2<strong>il</strong> numero <strong>di</strong> con<strong>di</strong>zionamento in norma adue.Il Teorema <strong>di</strong> Bauer-Fike afferma che, se la matrice A è <strong>di</strong>agonalizzab<strong>il</strong>e, k2(X ) rappresenta <strong>il</strong>numero <strong>di</strong> con<strong>di</strong>zionamento del problema agli <strong>autovalori</strong>.Vogliamo ora determinare <strong>il</strong> numero <strong>di</strong> con<strong>di</strong>zionamento del nostro problema.La prima cosa da fare è verificare se la nostra matrice A=compan(p) è <strong>di</strong>agonalizzab<strong>il</strong>e.E’ noto che: se una matrice <strong>di</strong> or<strong>di</strong>ne n ha n <strong>autovalori</strong> <strong>di</strong>stinti, allora esiste un insieme <strong>di</strong> nn<strong>autovettori</strong> linearmente in<strong>di</strong>pendenti che costituiscono dunque una base <strong>per</strong> R .Inoltre data una matrice A <strong>di</strong> <strong>di</strong>mensione nxn con <strong>autovalori</strong> λ1,........,λn , sia X=[ v 1| v 2| ....... | v n|] unasua matrice modale (costituita dai suoi n <strong>autovettori</strong>).La matrice Λ ottenuta:12


Λ = X − 1 AX è <strong>di</strong>agonale.Per le proposizioni riportate sopra possiamo dedurre che la nostra matrice A=compan(p), generatadal polinomio p=poly([ λ1,............λn]), avendo <strong>autovalori</strong> tutti <strong>di</strong>stinti è <strong>di</strong>agonalizzab<strong>il</strong>e, <strong>per</strong>tantorisulta valido <strong>il</strong> teorema <strong>di</strong> Bauer-Fike.Possiamo quin<strong>di</strong> concludere che k2(X ) è numero <strong>di</strong> con<strong>di</strong>zionamento del nostro problema; <strong>il</strong> suovalore è riportato nella tabella in basso:λ ,.......λ1 n( 2)[1:5] 9485.49036761777[1:8] 121498473.797356[1:10] 130243291293.691[1:12] 208338818562397[1:14] 1.51540128507309e+018[1:20] 8.24300784889221e+020Dall’analisi della tabella notiamo che <strong>il</strong> valore <strong>di</strong> k2(X ) è elevatissimo anche <strong>per</strong> matrici <strong>di</strong> piccola<strong>di</strong>mensione, oltre a presentare una significativa crescita all’aumentare delle <strong>di</strong>mensioni dellamatrice.Da questo possiamo concludere che <strong>per</strong> una matrice in forma compagna <strong>il</strong> problema del <strong>calcolo</strong><strong>degli</strong> <strong>autovalori</strong> risulta fortemente mal con<strong>di</strong>zionato.E’ interessante osservare l’errore commesso nel <strong>calcolo</strong> dell’autovalore <strong>di</strong> modulo massimo, <strong>per</strong>una matrice <strong>di</strong> or<strong>di</strong>ne elevato:13


1.4 Metodo delle potenze inverseAssegnato un numero µ ∈ C , con µ ∉nxnC , vogliamo approssimare l’autovalore della matriceA ∈nxnC più vicino a µ . A tal fine si può ut<strong>il</strong>izzare <strong>il</strong> metodo delle potenze applicato alla matrice− 1− 1( Mµ) = ( A−µ I), ottenendo quello che viene chiamato metodo delle potenze inverse.Il numero µ viene detto shift.− 1− 1La matrice M ha <strong>per</strong> <strong>autovalori</strong> ξ = ( λ − µ ) ; supponiamo che esista un intero m tale che:µiiλm− µ < λi− µ con i = 1,........n e i≠ mQuesta ipotesi equivale ad assumere che l’autovalore λm più vicino a µ abbia molteplicità pari a 1.− 1L’autovalore <strong>di</strong> modulo massimo <strong>di</strong> Mµ corrisponde <strong>per</strong>tanto a ξm , ed in particolare se µ = 0 , λmrappresenta l’autovalore <strong>di</strong> modulo minimo <strong>di</strong> A.L’algoritmo è così strutturato:k ( k −⎧ ( A−µ I)x = q⎪k⎪ ( k ) xq =⎪kx2⎨( k ) T⎪ ( k ) ( q ) Aq⎪ σ =( k ) T (( q ) q⎪⎪⎩1)( k )k )Gli <strong>autovalori</strong> <strong>di</strong> Mµ coincidono con quelli <strong>di</strong> A in quanto− 1Mµ= X ( Λ − µ In)X doveΛ = <strong>di</strong>ag( λ 1,........... λ n).La principale <strong>di</strong>fferenza rispetto al processo iterativo del metodo delle potenze tra<strong>di</strong>zionale, risiedenel fatto che ad ogni passo k è necessario risolvere un sistema lineare avente matrice deicoefficienti: Mµ= A−µ I.Conviene dunque calcolare, <strong>per</strong> k=1, la fattorizzazione LU <strong>di</strong> Mµ , in2modo da dover risolvere ad ogni passo solo due sistemi triangolari <strong>per</strong> un costo dell’or<strong>di</strong>ne <strong>di</strong> nflops.Il metodo delle potenze può essere implementato in Matlab attraverso la function potinv.m <strong>il</strong> cu<strong>il</strong>istato, nella sua parte essenziale, è riportato <strong>di</strong> seguito.Il dato in ingresso mu contiene l’approssimazione iniziale <strong>per</strong> l’autovalore cercato.Lo script restituisce sigma che rappresenta l’approssimazione dell’autovalore più prossimo a mu.La fattorizzazione LU, con pivoting parziale, della matrice Mµ è stata effettuata usando la funzioneMatlab intrinseca lu.function [sigma, x, iter] = potinv (A, mu, tol, nmax, x0)[L,U]=lu(A-mu*eye(n));x0=x0/norm(x0);err=tol*abs(sigma)+1;wh<strong>il</strong>e err > tol*abs(sigma) & iter


1.4.1 S<strong>per</strong>imentazione del metodo delle potenze inversePer analizzare la convergenza del metodo delle potenze inverse facciamo i nostri test su una matricedel tipo:λ ,..........,λD = <strong>di</strong>ag ( [Q =orth(rand(n));A =Q’*D*Q;1 n ] );Consideriamo la seguente matrice <strong>di</strong>agonale 5x 5 :D=<strong>di</strong>ag(2000, 35, 560, 78, 1200);e generiamo la matrice A con i coman<strong>di</strong> riportati sopra.Facciamo <strong>di</strong>verse prove ut<strong>il</strong>izzando:(0)-vettore iniziale: x = rand(n,1)-tolleranza: tol=1e-14- µ variab<strong>il</strong>e <strong>per</strong> ogni testµ N iterazioni Errore sigma0 22 6.93889390390723e-017 3510 17 2.63677968348475e-016 3520 14 5.55111512312578e-017 3530 9 3.60822483003176e-016 3534.9 4 1.06581410364015e-014 3577 5 1.22124532708767e-015 781999 4 4.44089209850063e-016 2000Dalla tabella si può notare che tale metodo ha la proprietà fondamentale <strong>di</strong> convergere ad ungenerico autovalore <strong>di</strong> A, precisamente a quello più vicino allo shift µ .La convergenza sarà tanto più rapida quanto più µ è vicino a λm.Esso si può ut<strong>il</strong>izzare convenientemente <strong>per</strong> migliorare una stima iniziale <strong>di</strong> µ <strong>di</strong> un autovalore <strong>di</strong>A, ottenuta ad esempio ut<strong>il</strong>izzando l’algoritmo <strong>di</strong> localizzazione introdotto nella prima parte dellatesina.Ovviamente tale metodo non è applicab<strong>il</strong>e su matrici singolari, in quanto queste non possono essereinvertite.15


1.5 L’algoritmo QRL’algoritmo QR risulta essere <strong>il</strong> metodo più generale esistente <strong>per</strong> <strong>il</strong> <strong>calcolo</strong> <strong>di</strong> tutti gli <strong>autovalori</strong> <strong>di</strong>una matrice. Lo schema dell’algoritmo è particolarmente semplice:Si parte ponendo A0= A. Nella generica iterazione si effettua la fattorizzazione QR della matrice Ak(ad esempio con l’algoritmo <strong>di</strong> Householder) e si calcola la nuova iterata rimoltiplicando i fattori inor<strong>di</strong>ne inverso:1. A0=A2. for k=0,1,…… fino alla convergenza1. fattorizza Ak= QkRk2. calcola Ak + 1= RkQkOsserviamo che tutte le matrici della successione sono unitariamente sim<strong>il</strong>i:A = R Q = Q Q R Q = Qk + 1kkTkkkkTkA Qkke come tali hanno gli stessi <strong>autovalori</strong>.Sotto opportune ipotesi la successione Ak converge ad una matrice triangolare su<strong>per</strong>iore che hacome elementi <strong>di</strong>agonali gli <strong>autovalori</strong> <strong>di</strong> A.L’ipotesi <strong>per</strong> la convergenza del metodo è che gli <strong>autovalori</strong> siano reali e <strong>di</strong>stinti in modulo:λ > λ > .......... >12λnSe tali ipotesi non sono verificate, la successione Ak non converge ad una forma triangolaresu<strong>per</strong>iore; tuttavia è stato <strong>di</strong>mostrato che anche in questi casi <strong>il</strong> metodo può essere applicato conopportune varianti.Sia ad esempio:λ1> ....... > λr= λr+ 1> .... > λn> 0dove λr e λr+ 1 sono due numeri complessi coniugati, oppure due numeri reali. Allora la successione{ Ak} o meglio <strong>degli</strong> elementi <strong>di</strong>agonali non converge agli <strong>autovalori</strong> dello stesso modulo, ma gli<strong>autovalori</strong> dei blocchi <strong>di</strong>agonali convergono a λr e λr+ 1.Situazioni analoghe si presentano quando la matrice A ha più <strong>autovalori</strong> <strong>di</strong> modulo uguale e inquesto caso <strong>il</strong> metodo QR genera matrici Rkcon struttura <strong>di</strong>agonale a blocchi, in cui gli <strong>autovalori</strong>dei blocchi <strong>di</strong>agonali convergono ad <strong>autovalori</strong> <strong>di</strong> A.L’algoritmo QR può essere implementato ut<strong>il</strong>izzando la function qrbase.m. Tale funzione prende iningresso la matrice A ed <strong>il</strong> numero <strong>di</strong> iterazioni desiderate iter, mentre i parametri in uscita T, Q eR sono le matrici Ak + 1, Q ed R dopo iter iterazioni del metodo.16


1.6.1 Applicazione dell’algoritmoPer testare questo algoritmo pren<strong>di</strong>amo <strong>per</strong> cominciare la matrice:A=010001211Applicando l’algoritmo otteniamo dopo 2001 iterazioni la seguente matrice triangolare a blocchi:A2001 =2000.26726− 0.5− 0.86603−1.38870.86603− 0.5da cui si ricava imme<strong>di</strong>atamente l’autovalore λ = 2 , mentre gli altri due <strong>autovalori</strong> si ricavano come<strong>autovalori</strong> della seguente sottomatrice 2x2:B=− 0.5− 0.866030.86603− 0.5cioè: λ2 ,1=− 0.5±0.866iSi può notare che la matrice assegnata, presentando due <strong>autovalori</strong> complessi e coniugati, nonverifica le ipotesi <strong>di</strong> convergenza del metodo QR; tuttavia osserviamo che la successione A2001converge almeno verso una forma triangolare a blocchi e questo ci consente comunque <strong>di</strong> ricavaretutto lo spettro <strong>di</strong> A.Consideriamo ora una matrice con la struttura seguente:λ ,..........,λD = <strong>di</strong>ag ( [Q =orth(rand(n));A =Q’*D*Q;1 n ] );Mo<strong>di</strong>fichiamo gli elementi sulla <strong>di</strong>agonale <strong>di</strong> D riducendo <strong>il</strong> passo tra i vari termini ad ogni prova.Riportiamo i risultati ottenuti nella tabella seguente:Diag[ λ1,.......λn ] N iterazioni Errore[20 16 12 8 4] 162 2.09133463581949e-015[20 18 16 14 12] 338 1.50721186373355e-015[20 19 18 17 16] 689 2.1359873651684e-015[20 19.5 19 18.5 18] 1335 3.21955463672211e-015Possiamo notare che più lo spettro <strong>di</strong> A risulta <strong>di</strong>stribuito, ovvero più gli <strong>autovalori</strong> sono spaziati traloro, più veloce risulta la convergenza del metodo.17


Se invece gli <strong>autovalori</strong> risultano molto vicini tra loro, algoritmo QR risulta essere troppo lento,osserviamo infatti che nell’ultimo caso riportato nella tabella occorrono ben 1335 iterazioni <strong>per</strong> laconvergenza del metodo.Nella colonna a destra ho riportato l’errore commesso nell’approssimazione dello spettro <strong>di</strong> A. Taleerrore è stato calcolato in questo modo:λ = [ λ ,.......λ ];1 n~ ~ ~λ = [ λ ,....... λ ];1 n~abs(λ − λ )err= ;abs(λ )dove λ rappresenta <strong>il</strong> vettore <strong>degli</strong> <strong>autovalori</strong> <strong>di</strong> A calcolati ut<strong>il</strong>izzando la funzione intrinseca <strong>di</strong>Matlab eig, mentre λ ~ rappresenta l’approssimazione <strong>degli</strong> <strong>autovalori</strong> calcolata con la functionqrbase.m.Segnaliamo che la funzione eig implementa <strong>il</strong> metodo QR con opportune tecniche <strong>di</strong> shift in mododa accelerare la convergenza rispetto al metodo <strong>di</strong> base qualora A presenti <strong>autovalori</strong> molto vicini inmodulo.Consideriamo ora una matrice A in forma compagna che sappiamo essere generata come:p=poly([ λ1,............λn])A=compan(p)Ricor<strong>di</strong>amo che <strong>per</strong> una matrice <strong>di</strong> questo tipo <strong>il</strong> problema del <strong>calcolo</strong> <strong>degli</strong> <strong>autovalori</strong> risultafortemente mal con<strong>di</strong>zionato. Per questo motivo, è interessante confrontare i risultati che siottengono implementando <strong>il</strong> metodo QR sia con la funzione intrinseca eig <strong>di</strong> Matlab e sia con lafunction qrbase.m.Iniziamo i nostri test con una matrice <strong>di</strong> <strong>di</strong>mensione 5x 5 :λ ,.......λ N1 niterazioni[1:5] 144Autovalori: qrbase.m Autovalori: eig Autovalori attesi5.00000000000013.999999999999853.0000000000000520.9999999999999994.999999999999834.000000000000342.9999999999998321.0000000000000154321Nella tabella ho riportato le approssimazioni <strong>degli</strong> <strong>autovalori</strong> fornite rispettivamente dalla functionqrbase.m e dalla funzione eig <strong>di</strong> Matlab, nella colonna a destra ho invece riportato i valori esatti<strong>degli</strong> <strong>autovalori</strong> della matrice A che ci attendevamo ( essendo contenuti in poly([1:5]) ).Analizzando i risultati si vede chiaramente che nel <strong>calcolo</strong> <strong>degli</strong> <strong>autovalori</strong> viene commesso unerrore, piccolo ma esistente, sia con la funzione eig <strong>di</strong> Matlab sia con la function qrbase.m.Questo errore è dovuto essenzialmente al cattivo con<strong>di</strong>zionamento del problema.Per completezza riportiamo <strong>di</strong> seguito i valori dell’errore commesso in entrambi i casi:Erreig= 4.9620913438793e-14Errqrbase.m= 2.27959065765307e-1418


Consideriamo ora una matrice in forma compagna <strong>di</strong> <strong>di</strong>mensione n=25 così costituita:p=poly([1:25])A=compan(p)Confrontiamo, anche in questo caso, i risultati ottenuti implementando <strong>il</strong> metodo QR sia con lafunzione intrinseca eig <strong>di</strong> Matlab e sia con la function qrbase.m.Non costruiremo una tabella <strong>per</strong>ché, a causa delle <strong>di</strong>mensioni della matrice, i valori da riportaresarebbero troppi; ma riporteremo i risultati ottenuti, attraverso due grafici.Nel primo <strong>di</strong> questi abbiamo rappresentato in rosso gli <strong>autovalori</strong> calcolati applicando la functionqrbase.m, invece in nero gli <strong>autovalori</strong> veri della matrice A che avremmo dovuto ottenere.Osservando la figura si nota che <strong>il</strong> metodo QR da noi implementato ci fornisce una buona stimadello spettro <strong>di</strong> A fino all’autovalore λ = 1511, dopo<strong>di</strong>chè si <strong>di</strong>scosta dai valori attesi.E’ necessario precisare che nel grafico qui sopra ho plotato gli elementi della <strong>di</strong>agonale dellamatrice A anche se, non sarei autorizzata a farlo visto che la sotto<strong>di</strong>agonale non è <strong>di</strong>ventata piccolama presenta alcune componenti decisamente non nulle.Se applicassi l’algoritmo qr in modo rigoroso, ovvero senza trascurare <strong>il</strong> fatto che la sotto<strong>di</strong>agonaleottenuta contiene elementi non nulli, otterrei in realtà gli stessi <strong>autovalori</strong> che mi fornisce lafunzione eig <strong>di</strong> Matlab.19


Nel secondo grafico mostriamo, invece, i risultati ottenuti calcolando gli <strong>autovalori</strong> della nostramatrice A con la function intrinseca eig.Osservando la figura, ci ren<strong>di</strong>amo subito conto che la stima <strong>degli</strong> <strong>autovalori</strong> ottenuta è moltolontana dall’effettivo spettro della matrice A. La function eig <strong>di</strong> Matlab ci fornisce ad<strong>di</strong>rittura sette<strong>autovalori</strong> complessi e coniugati, da questo né conclu<strong>di</strong>amo che non è affidab<strong>il</strong>e <strong>per</strong> calcolare“stime esatte” <strong>di</strong> <strong>autovalori</strong> <strong>per</strong> matrici in forma compagna <strong>di</strong> gran<strong>di</strong> <strong>di</strong>mensioni.20


Capitolo 2Stab<strong>il</strong>ità dei sistemi lineari2.1 PremessaLa stab<strong>il</strong>ità è senza dubbio la proprietà più stu<strong>di</strong>ata dei sistemi <strong>di</strong>namici. L’importanza <strong>di</strong> taleproprietà deriva dal fatto che la stab<strong>il</strong>ità è una specifica imposta a quasi ogni sistema fisicocontrollato, <strong>per</strong>ché implica la possib<strong>il</strong>ità <strong>di</strong> lavorare intorno a certe con<strong>di</strong>zioni nominali senza<strong>di</strong>scostarsi troppo da esse.In questo capitolo ci limiteremo ad analizzare la stab<strong>il</strong>ità dei sistemi lineari.E’ fondamentale precisare che <strong>il</strong> caso dei sistemi lineari è particolare, <strong>per</strong> questo tipo <strong>di</strong> sistemi èpossib<strong>il</strong>e infatti parlare <strong>di</strong> stab<strong>il</strong>ità come caratteristica del sistema. Questo non è invece possib<strong>il</strong>enel caso <strong>di</strong> sistemi non-lineari <strong>per</strong> cui la stab<strong>il</strong>ità è una proprietà che <strong>di</strong>pende non solo dal sistemama anche dalle sue con<strong>di</strong>zioni.Esistono <strong>di</strong>verse definizioni <strong>di</strong> stab<strong>il</strong>ità, ma senza dubbio la più significativa è la stab<strong>il</strong>ità allaLyapunov. Questa definizione, che verrà enunciata nel seguito, è valida in generale sia <strong>per</strong> sistem<strong>il</strong>ineari che non lineari ma come detto prima la nostra trattazione si limiterà <strong>per</strong> semplicità solo aisistemi lineari.21


2.2 Stab<strong>il</strong>ità alla LyapunovLa teoria della stab<strong>il</strong>ità alla Lyapunov è basata sulla nozione fondamentale <strong>di</strong> stato <strong>di</strong> equ<strong>il</strong>ibrio.Dato un sistema lineare autonomo x ˙ ( t)= Ax(t), lo stato xe è un punto <strong>di</strong> equ<strong>il</strong>ibrio se e solo se èsoluzione del sistema lineare omogeneo:Ax e= 0Da ciò derivano imme<strong>di</strong>atamente i seguenti risultati:- Se la matrice A è non singolare, l’unico stato <strong>di</strong> equ<strong>il</strong>ibrio del sistema è xe= 0 ossia l’origine- Viceversa, se A è singolare allora <strong>il</strong> sistema ha un numero infinito <strong>di</strong> stati <strong>di</strong> equ<strong>il</strong>ibrio chedescrivono uno spazio lineare2.2.1 Stab<strong>il</strong>ità dei punti <strong>di</strong> equ<strong>il</strong>ibrioDato un sistema lineare autonomo:- Se uno stato <strong>di</strong> equ<strong>il</strong>ibrio è stab<strong>il</strong>e (instab<strong>il</strong>e), ciò implica che anche tutti gli altri eventualistati <strong>di</strong> equ<strong>il</strong>ibrio sono stab<strong>il</strong>i (instab<strong>il</strong>i)- Se uno stato <strong>di</strong> equ<strong>il</strong>ibrio xe è asintoticamente stab<strong>il</strong>e, allora valgono i tre seguenti risultati:- xe= 0 , ovvero tale stato coincide con l’origine;x è l’unico stato <strong>di</strong> equ<strong>il</strong>ibrio del sistema ;- e- x e è globalmente asintoticamente stab<strong>il</strong>e, ossia <strong>il</strong> suo dominio <strong>di</strong> attrazione coincide conl’intero spazio <strong>di</strong> stato.La precedente proposizione spiega <strong>per</strong>ché nel caso <strong>di</strong> sistemi lineari è lecito parlare <strong>di</strong> sistemastab<strong>il</strong>e, ovvero instab<strong>il</strong>e, ovvero sistema asintoticamente stab<strong>il</strong>e, anziché riferire tali proprietà algenerico stato <strong>di</strong> equ<strong>il</strong>ibrio.Nell’analisi dei sistemi lineari e stazionari esistono numerosi risultati in termini <strong>di</strong> stab<strong>il</strong>ità.Il criterio <strong>di</strong> analisi <strong>di</strong> stab<strong>il</strong>ità ut<strong>il</strong>izzato <strong>di</strong> solito è quello basato sul <strong>calcolo</strong> <strong>degli</strong> <strong>autovalori</strong> dellamatrice A.Teorema: Criterio <strong>degli</strong> <strong>autovalori</strong>Si consideri <strong>il</strong> sistema lineare e stazionario:x ˙( t)= Ax(t)Tale sistema è asintoticamente stab<strong>il</strong>e se e solo se tutti gli <strong>autovalori</strong> della matrice A hannoparte reale negativa.Tale sistema è stab<strong>il</strong>e se e solo se la matrice A non ha <strong>autovalori</strong> a parte reale positiva e glieventuali <strong>autovalori</strong> a parte reale nulla hanno in<strong>di</strong>ce unitarioTale sistema è instab<strong>il</strong>e se e solo se almeno un autovalore <strong>di</strong> A ha parte reale positiva,oppure parte reale nulla e in<strong>di</strong>ce maggiore <strong>di</strong> uno.22


Il criterio agli <strong>autovalori</strong> fornisce una “misura” della stab<strong>il</strong>ità del sistema.E’ infatti scontato che piccole variazioni <strong>di</strong> un parametro caratterizzante un sistema si ri<strong>per</strong>cuotanoin piccole variazioni <strong>degli</strong> elementi aijdella matrice A e, quin<strong>di</strong>, in piccole variazioni <strong>degli</strong><strong>autovalori</strong> λn del sistema.Un sistema a tempo continuo asintoticamente stab<strong>il</strong>e resterà <strong>per</strong>tanto tale anche se soggetto apiccole <strong>per</strong>turbazioni parametriche, se l’in<strong>di</strong>catore:è sufficientemente grande.min{ − Re( λ )}n2.3 Applicazione praticaFacciamo ora un esempio <strong>di</strong> applicazione del criterio <strong>degli</strong> <strong>autovalori</strong> <strong>per</strong> stu<strong>di</strong>are la stab<strong>il</strong>ità <strong>di</strong> unsistema reale.Supponiamo <strong>di</strong> dover regolare l’alimentazione <strong>di</strong> un impianto chimico.Lo schema al quale facciamo riferimento è <strong>il</strong> seguente:Tale impianto ha portata <strong>di</strong> alimentazione y (t)che deve essere mantenuta <strong>il</strong> più possib<strong>il</strong>e costante epari ad un valore desiderato u1 . La portata y(t)è l’uscita <strong>di</strong> un serbatoio preceduto da altri dueserbatoi uguali e alimentati da una portata v (t)che può essere variata attraverso un’elettrovalvola.All’equ<strong>il</strong>ibrio la portata <strong>di</strong> uscita ŷ è uguale alla portata <strong>di</strong> alimentazione, <strong>per</strong> cui se u 2(t ) fosseidenticamente nullo basterebbe fissare l’alimentazione v al valore costante u1 <strong>per</strong> ottenere un23


funzionamento corretto dell’intero impianto. Per compensare alle variazioni della portata y (t),provocate dal <strong>di</strong>sturbo ( )u t si pone: 2]v( t)= u1 − k[y(t)− u1con k>0Per compensare meglio i <strong>di</strong>sturbi si tende a scegliere un valore <strong>di</strong> guadagno k molto elevato, maquesto è possib<strong>il</strong>e solo se <strong>il</strong> sistema rimane asintoticamente stab<strong>il</strong>e <strong>per</strong> alti valori <strong>di</strong> k.Per vedere se ciò accade possiamo applicare <strong>il</strong> criterio <strong>degli</strong> <strong>autovalori</strong>.Scriviamo le equazioni che rappresentano la <strong>di</strong>namica del sistema:x˙( t)= − ax ( t)+ u − k(ax ( t)− u )1x˙( t)= ax ( t)− ax2x˙( t)= ax3y(t)= ax ( t)3121( t)+ u212( t)( t)− ax ( t)33dove a è un coefficiente e x i(t)sono i tre volumiLa matrice <strong>di</strong> stato A risulta quin<strong>di</strong>:1A=− aa00− aa− ka0− aPoniamo a = 2 e facciamo invece variare k.CASO 1: a = 2 e k=3La matrice A <strong>di</strong>venta quin<strong>di</strong>:A=− 2200− 22− 60− 2Tale matrice è non singolare <strong>per</strong> cui possiamo subito affermare che l’origine è l’unico stato <strong>di</strong>equ<strong>il</strong>ibrio del sistema, dobbiamo ora vedere se questo è stab<strong>il</strong>e o meno.Per verificare la vali<strong>di</strong>tà dei risultati che otterremo applicando gli algoritmi, an<strong>di</strong>amo a calcolareinnanzitutto gli <strong>autovalori</strong> della matrice A con la function eig <strong>di</strong> Matlab.Gli <strong>autovalori</strong> trovati sono:λ = 1 -4.88449914061482λ = 2,1 -0.55775042969259 ± 2.49804953296681iSupponiamo ora <strong>di</strong> non aver fatto l’o<strong>per</strong>azione precedente e quin<strong>di</strong> <strong>di</strong> non conoscere nulla sullospettro della matrice A.In queste situazioni la prima cosa da fare è applicare l’algoritmo <strong>di</strong> localizzazione <strong>degli</strong> <strong>autovalori</strong>attraverso la function gershgorin.m.24


Otteniamo i seguenti risultati:-cerchi riga: R = { z:z+ 2 6},R = { z:z+ 2 2},R = { z:z+ 2 2};1≤2≤3≤-cerchi colonna: C1= { z:z+ 2 ≤ 2},C2= { z:z+ 2 ≤ 2},C3 = { z:z+ 2 ≤ 6};La loro intersezione ed unione è riportata nella figura sottostante in color arancio:Notiamo che cerchi riga e cerchi colonna coincidono, <strong>per</strong>tanto gli <strong>autovalori</strong> sono localizzatinell’intervallo [-8, 4].Una volta localizzata la zona del piano complesso che contiene gli <strong>autovalori</strong>, possiamo procedereal loro effettivo <strong>calcolo</strong>.Applichiamo <strong>per</strong> cominciare <strong>il</strong> metodo delle potenze che, ricor<strong>di</strong>amo fornisce un’approssimazionedell’autovalore <strong>di</strong> modulo massimo.Attraverso la function potenze.m troviamo che: dopo 51 iterazioni <strong>il</strong> metodo convergeall’autovalore <strong>di</strong> modulo massimo λ = 1-4.884499con un errore <strong>il</strong> cui andamento è riportato inbasso:Applichiamo ora l’algoritmo delle potenze inverse con µ =0 <strong>per</strong> trovare una stima dell’autovalore<strong>di</strong> modulo minimo.Otteniamo i seguenti risultati:Numero iterazioni: 4001Autovalore <strong>di</strong> modulo minimo trovato: -7.55679Errore commesso: 0.046825


Riportiamo in basso l’andamento dell’errore:Come possiamo notare l’algoritmo non converge al corretto autovalore <strong>di</strong> modulo minimo, ma cifornisce erroneamente λm= -7.55679.Riapplichiamo <strong>il</strong> metodo ponendo µ =i e ve<strong>di</strong>amo cosa succede:Numero iterazioni: 41Autovalore <strong>di</strong> modulo minimo: -0.557750429692594 + 2.49804953296681iErrore commesso: 3.347281e-015Riportiamo in basso l’andamento dell’errore:Ve<strong>di</strong>amo che, con una opportuna mo<strong>di</strong>fica dello shift, l’algoritmo riesce a convergere all’autovalore<strong>di</strong> modulo minimo corretto.Per verificare la stab<strong>il</strong>ità del sistema, <strong>per</strong>ò, non è sufficiente conoscere gli <strong>autovalori</strong> <strong>di</strong> modulomassimo e minimo, ma ci serve tutto lo spettro della matrice A.Applichiamo quin<strong>di</strong> l’algoritmo QR attraverso la function qrbase.m.26


Dopo 2001 iterazioni otteniamo la seguente matrice:Ak + 1=− 4.884499003.5019-0.87596-3.7537-1.45251.6894-0.23954da cui si ricava imme<strong>di</strong>atamente l’autovalore λ = − 4. 884499 , mentre gli altri due <strong>autovalori</strong> siricavano come <strong>autovalori</strong> della seguente sottomatrice 2x2:− 0.87596B=− 3.75371.6894− 0.23954cioè: λ2 ,1=-0.55775 ± 2.498iConcludendo possiamo <strong>di</strong>re che <strong>per</strong> k=3 l’origine è un punto <strong>di</strong> equ<strong>il</strong>ibrio asintoticamente stab<strong>il</strong>e, oequivalentemente che <strong>il</strong> sistema risulta essere asintoticamente stab<strong>il</strong>e in quanto i suoi <strong>autovalori</strong>hanno tutti parte reale negativa.CASO 2: a = 2 e k=7La matrice A <strong>di</strong>venta quin<strong>di</strong>:A=− 2200− 22−140− 2Tale matrice è non singolare <strong>per</strong> cui possiamo subito affermare che l’origine è l’unico stato <strong>di</strong>equ<strong>il</strong>ibrio del sistema, dobbiamo ora vedere se questo è stab<strong>il</strong>e o meno.Per avere un’idea della localizzazione <strong>degli</strong> <strong>autovalori</strong> tracciamo i cerchi <strong>di</strong> Gershgorin:Otteniamo i seguenti risultati:-cerchi riga: R = { z:z+ 2 14},R = { z:z+ 2 2},R = { z:z+ 2 2};1≤2≤3≤-cerchi colonna: C1= { z:z+ 2 ≤ 2},C2= { z:z+ 2 ≤ 2},C3 = { z:z+ 2 ≤14};La loro intersezione ed unione è riportata nella figura sottostante in color arancio:Notiamo che gli <strong>autovalori</strong> sono localizzati nella zona in arancio ovvero nell’intervallo [-16; 12].27


Applichiamo ora l’algoritmo QR attraverso la function qrbase.m <strong>per</strong> conoscere lo spettro dellamatrice A.Dopo 2001 iterazioni del metodo, risulta:Ak + 1=-5.8259003.1502-2.2941-2.765-11.045.7322.12da cui si ricava imme<strong>di</strong>atamente l’autovalore λ = − 5. 8259 , mentre gli altri due <strong>autovalori</strong> si ricavanocome <strong>autovalori</strong> della seguente sottomatrice 2x2:B=-2.2941− 2.7655.7322.12cioè λ = 2 ,1-0.08705 + 3.3133iPoiché conosciamo tutti gli <strong>autovalori</strong> della matrice A possiamo affermare che <strong>per</strong> <strong>il</strong> criterio <strong>degli</strong><strong>autovalori</strong> <strong>il</strong> sistema risulta asintoticamente stab<strong>il</strong>e in quanto i suoi <strong>autovalori</strong> sono tutti a parte realenegativa.CASO 3: a = 2 e k=8La matrice A è in questo caso:A=− 2200− 22−160− 2Tracciamo i cerchi <strong>di</strong> Gershgorin:Gli <strong>autovalori</strong> sono localizzati nell’intervallo [-18, 14].Possiamo osservare come all’aumentare del guadagno k, aumenta anche l’ ampiezza dell’intervalloin cui sono compresi gli <strong>autovalori</strong>.Applichiamo <strong>il</strong> metodo QR <strong>per</strong> calcolare gli <strong>autovalori</strong> della matrice:.28


Dopo 2001 iterazioni del metodo, risulta:Ak + 1=-60013.4161.2-7.33212.5473e-121.833-1.2ricaviamo imme<strong>di</strong>atamente l’autovalore λ = − 5. 8259 , gli altri vengono ricavati dalla sottomatrice Be sono pari a: λ2,1=2.77555e-17 ± 3.464102i.Il sistema <strong>per</strong> k=8 risulta instab<strong>il</strong>e <strong>per</strong>ché ha due <strong>autovalori</strong> a parte reale positiva. Quin<strong>di</strong> <strong>il</strong>guadagno dell’elettrovalvola non può essere troppo elevato altrimenti <strong>il</strong> sistema <strong>di</strong>venta instab<strong>il</strong>e.In conclusione possiamo affermare che <strong>per</strong> avere un funzionamento corretto dell’intero impianto sideve scegliere un circuito <strong>di</strong> comando con un guadagno k

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!