Implementazione in Matlab

Qui di seguito mostriamo il codice che implementa il metodo delle potenze:

function [lambda,i]=potenze(A,vett,toll,nmax)
%POTENZE Esegue il metodo delle potenze per il calcolo dell'autovalore
%   dominante della matrice A, se questo esiste
%
%   [lambda,i]=POTENZE(A,vett,toll,nmax)
%
%   I parametri della funzione sono:
%       A -> matrice di cui vogliamo calcolare l'autovalore dominante
%       vett -> vettore di partenza; solitamente rand(n,1)
%       toll -> tolleranza per l'autovalore
%       nmax -> limite superiore al numero di iterazioni
%
%   I valori di ritorno sono:
%       lambda -> l'autovalore dominante
%       i -> il numero di iterazioni impiegate per ottenere la soluzione
  i=0;
  err=toll+1;
  sig=0;
  y=vett;
  while (i<nmax & err>toll*abs(sig))
      i=i+1;
      t=y/norm(y);
      y=A*t;
      sig1=(t'*y)/(t'*t);
      err=abs(sig1-sig);
      sig=sig1;
  end
  lambda=sig;



Morpheus 2004-01-04