arnold.m

来自「anoldi算法,有运行结果,效果还行,可自己改进,能对大型矩阵操作」· M 代码 · 共 36 行

M
36
字号
function [H,V,flag]=arnold(A,v,m);
eps=1.0e-10;
n = size(A); 
H = zeros(m+1,m); 
V = zeros(n,m+1); 

flag = 0;

 V(:,1) = v/norm(v);    
%  将所产生的值赋给矩阵的第一列

for j = 1:m, 

  u = A*V(:,j);

    for i = 1:j, 
        H(i,j) = V(:,i)'*u;
        u = u- H(i,j)*V(:,i); 
    end 

    H(j+1,j) = norm(u);

    if H(j+1,j) <= eps, 
       flag = 1; 
       break; 
    end 

    V(:,j+1) = u/H(j+1,j); 

end  

% Vorth = norm(V'*V - eye(j+1),1) 
% Res = norm(A*V(:,1:m) - V*H,1) 
 

⌨️ 快捷键说明

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