SLU.M
上传用户:sfyaiting
上传日期:2009-10-25
资源大小:320k
文件大小:1k
源码类别:

GPS编程

开发平台:

Matlab

  1. function [L,U] = slu(A)
  2. %SLU Simple, square, LU factorization.
  3. % [L,U] = SLU(A) for a square matrix A, illustrates the use of
  4. % Gaussian elimination to compute a lower triangular matrix L 
  5. % and an upper triangular matrix U so that L*U = A.
  6. %
  7. % The algorithm does no pivoting and so will fail if a small
  8. % pivot is encountered.
  9. %
  10. % See also SLV, PLU, LU.
  11. [n,n] = size(A);
  12. tol = 1.e-6;
  13. for k = 1:n
  14.    if abs(A(k,k)) < tol
  15.       disp(['Small pivot encountered in column ' int2str(k)])
  16.    end
  17.    L(k,k) = 1;
  18.    for i = k+1:n
  19.       L(i,k) = A(i,k)/A(k,k);
  20.       for j = k+1:n
  21.          A(i,j) = A(i,j) - L(i,k)*A(k,j);
  22.       end
  23.    end
  24.    for j = k:n
  25.       U(k,j) = A(k,j);
  26.    end
  27. end