Power Method Eigenvectors Code

4 visualizzazioni (ultimi 30 giorni)
Benjamin Boettcher
Benjamin Boettcher il 28 Gen 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 Commenti
James Tursa
James Tursa il 28 Gen 2021
What do you mean by "look smoother"?
Benjamin Boettcher
Benjamin Boettcher il 28 Gen 2021
Modificato: Benjamin Boettcher il 28 Gen 2021
It seems to work, I guess I just wanted it verified. and see if it could be made any better.

Accedi per commentare.

Risposte (1)

James Tursa
James Tursa il 28 Gen 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 Commento
Benjamin Boettcher
Benjamin Boettcher il 28 Gen 2021
Thanks. That was an artifact from the generation of this.

Accedi per commentare.

Categorie

Scopri di più su Mathematics in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by