阅读背景:

Matlab实现 乘幂法&&反幂法

来源:互联网 

以下伪码来自某《数值线性代数》教科书,非原创在这里插入图片描述

乘幂法 function [a,k,er]=Power(A) %定义乘幂法函数文件 %a:表示该方法下矩阵A的最大特征值 %k:表示停机时实际的迭代次数 %er:表示停机时实际的绝对误差 tol=1e-6;%绝对误差限 [n,m]=size(A); if n~=m %判断输入的合法性 error('Wrong Input'); end u=ones(n,1);q=max(abs(u)); k=0; while true y=A*u; q0=q; q=max(abs(y)); if abs(q-q0)<tol|k>1e4 %设置停机条件 break; end u=y/q; k=k+1; end er=abs(q0-q); a=q; 反幂法 function [a,k,er]=InversePower(A) %定义反幂法函数文件 %a:表示该方法下矩阵A的最小特征值 %k:表示停机时实际的迭代次数 %er:表示停机时实际的绝对误差 tol=1e-6;%绝对误差限 [n,m]=size(A); if n~=m %判断输入的合法性 error('Wrong Input'); end u=ones(n,1);q=max(abs(u)); k=0; while true y=A\u;%解出y q0=q; q=max(abs(y)); if abs(q-q0)<tol|k>1e4 %设置停机条件 break; end u=y/q; k=k+1; end er=abs(q0-q); a=1/q; 乘幂法 function [a,k,er]=Power



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: