invpow.m

来自「数值计算方法的教程」· M 代码 · 共 53 行

M
53
字号
function [lambda,V]=invpow(A,X,alpha,epsilon,max1)%Input    - A is an nxn matrix%            - X is the nx1 starting vector%            - alpha is the given shift%            - epsilon is the tolerance%            - max1 is the maximum number of iterations%Output - lambda is the dominant eigenvalue%            - V is the dominant eigenvector%  NUMERICAL METHODS: Matlab Programs% (c) 2004 by John H. Mathews and Kurtis D. Fink%  Complementary Software to accompany the textbook:%  NUMERICAL METHODS: Using Matlab, Fourth Edition%  ISBN: 0-13-065248-2%  Prentice-Hall Pub. Inc.%  One Lake Street%  Upper Saddle River, NJ 07458%Initialize the matrix A-alphaI and parameters[n n]=size(A);A=A-alpha*eye(n);lambda=0;cnt=0;err=1;state=1;while ((cnt<=max1)&(state==1))      %Solve system AY=X   Y=A\X;      %Normalize Y   [m j]=max(abs(Y));   c1=Y(j);   dc=abs(lambda-c1);   Y=(1/c1)*Y;      %Update X and lambda and check for convergence   dv=norm(X-Y);   err=max(dc,dv);   X=Y;   lambda=c1;   state=0;   if (err>epsilon)      state=1;   end   cnt=cnt+1;endlambda=alpha+1/c1;V=X;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?