Power Method Eigenvectors Code

4 visualizaciones (últimos 30 días)
Benjamin Boettcher
Benjamin Boettcher el 28 de En. de 2021
Comentada: Benjamin Boettcher el 28 de En. de 2021
I am attempting to make a code for a manual computation of the Power Method.
I think I have it working properly but wanted to make sure. Any thoughts?
function [lambda,x,k] = power_method(A,x,tol,maxit);
% Initialize
n = length(A);
k = 0;
y = zeros(1,n);
tolerance = 1;
while k < maxit && (tolerance > tol)
yk = A * x; % y(k) = A* x(k)
xnext = yk / norm(yk); % X(k+1) = yk / 2norm(yk)
lambda = dot (xnext,(A * xnext)); % lambda = X(k+1) * (A * X(k+1))
k = k + 1;
tolerance = norm(yk - lambda * x);
err = tolerance;
x = xnext;
end
  2 comentarios
James Tursa
James Tursa el 28 de En. de 2021
What do you mean by "look smoother"?
Benjamin Boettcher
Benjamin Boettcher el 28 de En. de 2021
Editada: Benjamin Boettcher el 28 de En. de 2021
It seems to work, I guess I just wanted it verified. and see if it could be made any better.

Iniciar sesión para comentar.

Respuestas (1)

James Tursa
James Tursa el 28 de En. de 2021
The only obvious thing I would note is that the following line doesn't accomplish anything because you don't use err in your code, so it can be removed:
err = tolerance;
  1 comentario
Benjamin Boettcher
Benjamin Boettcher el 28 de En. de 2021
Thanks. That was an artifact from the generation of this.

Iniciar sesión para comentar.

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by