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

📄 chenmh_arnoldi.m

📁 Frequently used algorithms for numerical analysis and signal processing
💻 M
字号:
function [x,k,err] = Chenmh_Arnoldi(A,b,x0,tol,mode);
m = size(A,1);
r0 = b-A*x0; nr0 = (r0'*r0)^0.5;
err = [];
if (nr0==0)
    x = x0;
else
    V = r0/nr0; H = []; k = 0; istop = 0;
    while ( (k<m) & (istop==0) )
        [V,H,k,istop] = Chenmh_ArnoldiPro(A,m,k,V,H);
        e1 = eye(k); e1 = e1(:,1);
        if (mode==0) % Arnoldi
            y = H(1:end-1,:)\e1*nr0;
            err(k) = H(end,end)*abs(y(end));
        else         % GMRES   
            [Q,R] = qr(H);                                
            g = Q'*nr0*[e1;0];
            y = R(1:end-1,:)\g(1:end-1);
            err(k) = abs(g(end));
        end
        if (err(k)<tol)
            istop = 1;
        end
    end
    x = x0+V(:,1:end-1)*y;
end

        
               
       
            
            
            

⌨️ 快捷键说明

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