qr1.m

来自「关于数值计算的matlab程序代码,包含了很多的实用的算法.程序全部可以直接用的」· M 代码 · 共 38 行

M
38
字号
function D=qr1(A,epsilon)%Input - A is a symmetric tridiagona nxn matrix%      - epsilon is the tolerance%Output - D is the vector of eigenvalues%  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 parameters[n,n]=size(A);m=n;while (m>1)   S=A(m-1:m,m-1:m);   if abs(S(2,1))<epsilon      A(m,m-1)=0;      A(m-1,m)=0;       else      shift=eig(S);      [j,k]=min([abs(A(m,m)-shift(1)) abs(A(m,m)-shift(2))]);   end   [Q,U]=qr(A-shift(k)*eye(n));   A=U*Q+shift(k)*eye(n);   m=m-1;endD=diag(A);

⌨️ 快捷键说明

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