Power Method Eigenvectors Code

4 Ansichten (letzte 30 Tage)
Benjamin Boettcher
Benjamin Boettcher am 28 Jan. 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 Kommentare
James Tursa
James Tursa am 28 Jan. 2021
What do you mean by "look smoother"?
Benjamin Boettcher
Benjamin Boettcher am 28 Jan. 2021
Bearbeitet: Benjamin Boettcher am 28 Jan. 2021
It seems to work, I guess I just wanted it verified. and see if it could be made any better.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by