diff --git a/functions/eigenvalues.m b/functions/eigenvalues.m new file mode 100644 index 0000000..0819f12 --- /dev/null +++ b/functions/eigenvalues.m @@ -0,0 +1,12 @@ +function [ values, err ] = eigenvalues( A, ite, toll ) + +i=0; +err = inf; +while (i < ite) && (err > toll) + [q,r] = qr(A); + A1= r * q + err = norm(diag(A1) - diag(A),inf) / norm (diag(A1),inf); + A = A1; + i=i+1; +end +values = diag(A); diff --git a/functions/power_method.m b/functions/power_method.m index 6dc8d1c..1e79c5a 100644 --- a/functions/power_method.m +++ b/functions/power_method.m @@ -1,22 +1,22 @@ -function [v,a] = power_method (U,toll) +function [vn,a] = power_method (U,toll) [x,~] = size(U); for i=1:x v(i)=1; end v=v'; +vn=v; err = inf; while err > toll - v1=U*v; - v1=v1./norm(v1,inf); - err = norm(v1-v,inf); + v1n=v1./norm(v1,inf); + err = norm(v1n-vn,inf); a = v1./v; v=v1; - + vn=v1n; end diff --git a/samples/similar matrix.m b/samples/similar matrix.m new file mode 100644 index 0000000..81b25b3 --- /dev/null +++ b/samples/similar matrix.m @@ -0,0 +1,3 @@ +B = inv(S) * A * S; + +A e B sono simili e hanno gli stessi autovalori \ No newline at end of file