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

📄 trifac.m

📁 matlab算法集 matlab算法集
💻 M
字号:
function [Q,Delta] = trifac (T)
%----------------------------------------------------------------------
% Usage:      [Q,Delta] = trifac (T)
%
% Descripton: Factor an n by n tridiagonal coefficient matrix A into
%             lower and upper-triangular factors.
%
% Inputs:     T = 3 by n matrix containing the nonzero entries of A:
%
%                 row                  contents
%                 ---------------------------------------------------
%                  1     A[1][2], A[2][3], ... , A[n-1][n],   ---    
%                  1     A[1][1], A[2][2], ... , A[n-1][n-1], A[n][n]    
%                  3     A[2][1], A[3][2], ... , A[n][n-1],   ---    
%                 ---------------------------------------------------
%
% Outputs:        Q     = 3 by n matrix containing lower and upper-
%                         triangular factors of A.  The matrix Q is 
%                         used by the function trisub which solves 
%                         Ax = b by forward and backward substitution.
%                 Delta = deteriminant of A.  If Delta ~= 0, A has been 
%                         successfully factored.
%----------------------------------------------------------------------
   ep = eps/100;
   Delta = 1;
   [m,n] = size (T);
   if (m ~= 3) | (n < 3)
      display ('trifac must be called with a 3 by n matrix.')
      return
   end

% Factor T into L and U */
     
   Q = zeros (3,n);
   Q(3,1:n-1) = T(3,1:n-1);
   Q(2,1) = T(2,1);
   for k = 1 : n-1
      Delta = Delta*Q(2,k);
      if abs(Q(2,k)) < ep
         Delta = 0;
         return
      else 
         Q(1,k)   = T(1,k)/Q(2,k);
         Q(2,k+1) = T(2,k+1) - T(3,k)*Q(1,k);
      end
   end
   Delta = Delta*Q(2,n);
%----------------------------------------------------------------------

⌨️ 快捷键说明

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