Power Method Eigenvectors Code

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 件のコメント

James Tursa
James Tursa 2021 年 1 月 28 日
What do you mean by "look smoother"?
Benjamin Boettcher
Benjamin Boettcher 2021 年 1 月 28 日
編集済み: Benjamin Boettcher 2021 年 1 月 28 日
It seems to work, I guess I just wanted it verified. and see if it could be made any better.

サインインしてコメントする。

回答 (1 件)

James Tursa
James Tursa 2021 年 1 月 28 日

1 投票

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 件のコメント

Benjamin Boettcher
Benjamin Boettcher 2021 年 1 月 28 日
Thanks. That was an artifact from the generation of this.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMathematics についてさらに検索

製品

質問済み:

2021 年 1 月 28 日

コメント済み:

2021 年 1 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by