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 + -
显示快捷键?