2021-01-07Matlab数値解析マトリックス固有値と固有ベクトル計算改善された電力法逆電力法

Matlab数値解析行列固有値と固有ベクトル計算

1改善された電力方法

function [t,y]=eigIPower(A,v0,ep)
[tv,ti]=max(abs(v0));
lam0=v0(ti);
u0=v0/lam0;
err=ep*10;             %为第一步循环做准备,此处不考虑0次循环的情况
while(err>ep)
  v1=A*u0;
  [tv,ti]=max(abs(v1));
  lam1=v1(ti);
  err=abs(lam0-lam1);
  u0=v1/lam1;
  lam0=lam1;
end
t=lam1;
y=u0;

呼び出しプログラム

A=[12,6,-6;6,16,2;-6,2,16];xinit=[1;0.5;-0.5];[t,y]=eigIPower(A,xinit,1e-4)

2逆電力法

function [t,y]=eigIPower_inv(A,v0,ep)
[tv,ti]=max(abs(v0));
lam0=v0(ti);
u0=v0/lam0;
err=ep*10;
while(err>ep)
  v1=A\u0;

  [tv,ti]=max(abs(v1));
  lam1=v1(ti);
  err=abs(1/lam0-1/lam1);      %反幂法在误差计算时用的是特征值的倒数
  u0=v1/lam1;
  lam0=lam1;
end
t=1/lam1;

y=u0;

呼び出しプログラム

​​​​​​​

A=[12,6,-6;6,16,2;-6,2,16];xinit=[1;0.5;-0.5];[t,y]=eigIPower_inv (A,xinit,1e-4)

 

おすすめ

転載: blog.csdn.net/qingfengxd1/article/details/112321922