• 大小: 414KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-01-02
  • 语言: Matlab
  • 标签:

资源简介

matlab开发-GMRESArnoldi。求解非对称线性方程组的阿诺迪相互作用。

资源截图

代码片段和文件信息

function [QH] = Arnoldi0(Ak_totq1)
% La funci髇 aplcia k=k_tot iteraciones de  Arnoldi con una matriz cuadrada A
% de dimensiones n por n comenzando por un vector q1 de dimensi髇 n
% Para k < n devuelve una matriz Q de dimensiones n por (k+1) con columnas 
% orthonormales y una matriz H de dimensiones  (k+1) por k llamada 
% matriz de Hessenberg que es una matriz triangular superior tal que
%  A*Q(:1:k) = Q(:1:k)*H(1:k1:k) + H(k+1k)*Q(:k+1)*E_k‘
% donde E_k es la columna k-閟ima de la matriz identidad de tama駉 k po k.
%
%  A: matriz cuadrada del sistema lineal (n por n)
%  q1: vector inicial supuesto no nulo
%  k =k_tot: n鷐ero natural total de iteraciones
%  Q: base ortonormal del espacio de Krylov (n por k+1)
%  H: matriz triangular superior de Hessenberg (k+1 por k)
%      tal que A*Q(:1:k)=Q*H 
% z: es un vector estimaci髇 del error
%      tal que AQ = QH + z*E_k

n = length(A);
Q = zeros(nk_tot); 
q1 = q1/norm(q1);
Q(:1) = q1;
H = zeros(min(k_tot+1k_tot)n);


for k=1:k_tot
    z = A*Q(:k);
    for i=1:k
        H(ik) = Q(:i)‘*z;
        z = z - H(ik)*Q(:i);
    end
    if k < n
       H(k+1k) = norm(z);
       if H(k+1k) == 0 return end
       Q(:k+1) = z/H(k+1k);
   end
end
       
% END of Arnoldi0.m

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1291  2016-08-04 02:52  Arnoldi0.m
     文件         550  2016-08-04 02:52  Description.txt
     文件       21987  2016-08-04 02:52  Explanation in Spanish.docx
     文件         597  2016-08-04 02:52  Gmres0.m
     文件      604488  2016-08-04 02:52  Numerical linear algebra Lecture+35.pdf
     文件        1320  2016-08-04 02:52  license.txt

评论

共有 条评论