⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minreshgf.m

📁 计算特征值和特征向量的幂法和反幂法以及计算矩阵的minres 算法的matlab程序
💻 M
字号:
function [x,k,rn,tol]=Minreshgf(A,b)
k=0;
[N,M] = size(A);
x = zeros(N,1);
r0=b-A*x;
r0r0=norm(r0);
aa=norm(A,1);
q0=0;
beta=r0r0;
q1=r0/beta;
tol1(1)=1;
while tol1(k+1)>1e-16
    aq=A*q1;
    r=aq-beta*q0;
    alpha=q1'*r;
    r=r-alpha*q1;
    k=k+1;
    beta1=norm(r);
    if k == 1
        T = [alpha];
        T1=[T;beta1];
        Q = [q1]; 
    elseif k == 2
        T = [T,beta;beta,alpha];
        T1=[T;0,beta1];
        Q = [Q,q1];
    else
        T2 = [zeros(k-2,1);beta];
        T = [T,T2;T2',alpha];
        T1=[T;zeros(1,k-1),beta1];
        Q = [Q,q1];
     end;
    [Q1,R] = qr(T1);
    rr = r0r0*[1;zeros(k,1)];
    gk1=Q1'*rr;
    gk=gk1(1:k);
    R = R(1:k,:);
    yk = R\gk;
    x = Q*yk;    
    if r~=0;
        beta=beta1;
        q0=q1;
        q1=r/beta;
    end
    rn(k)=abs(gk1(k+1));
    tol1(k+1)=rn(k)/(aa*norm(x)+norm(b));
end
[n,m]=size(tol1);
tol=tol1(2:m);

⌨️ 快捷键说明

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