%-----------------------------------------------------------------------
%               -------------                            ---------
%               function file                            tridiag.m
%               -------------                            ---------
%-----------------------------------------------------------------------
%
%
	function [Diag,Sup,Sub] = tridiag(Diag,Sup,Sub,Ndim)
%===========================================================
%
%
%	Decomposicao de Crout para Matriz Tridiagonal
%----------------------------------------------------
%
%
%	Variaveis de Entrada
%---------------------------
%	Diag	: Diagonal Principal da Matriz do Sistema Lienar
%	Sup	: Diagonal Superior  "   "     "    "      "
%	Sub 	: Diagonal Inferior  "   "     "    "      "
%	Ndim	: Dimensao do Sistema Linear
%
%
%	Variaveis de Saida
%-------------------------
%	A Decomposicao de Crout é armazenada nos mesmos vetores,
%       Diag, Sup e Sub, utilizados para armazenar a Matriz A.
%
%
%
%
%
%	Precisao para verificar a singularidade da Matriz
%--------------------------------------------------------
	epsilon = 1.0e-10;
%
%
		for i = 2:Ndim
%
%		Verifica se a Matriz e' Singular
%-----------------------------------------------
%
		if ( abs(Diag(i-1)) < epsilon  )
		disp('')
		disp('')
		disp('Valor do Elemento da Diagonal')
		disp(Diag(i))
		error( 'Matriz Singular' )
                end
%
		Sub(i-1) = Sub(i-1)/Diag(i-1);
%
		Diag(i) = Diag(i) - Sub(i-1)*Sup(i-1);
%
		end
%
        if ( abs(Diag(Ndim)) < epsilon  )
        disp('')
        disp('')
	disp('Valor do Elemento da Diagonal')
	disp(Diag(Ndim))
	error( 'Matriz Singular' )
        end
%
%
%
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%--------------------------------------------------
%	Petronio Pulino
%	Departamento de Matemática Aplicada - D.M.A
%	IMECC - UNICAMP
%	e-mail: pulino@ime.unicamp.br
%	http://www.ime.unicamp.br/~pulino/MS211/
%--------------------------------------------------
%-----------------------------------------------------------------------
%
%
%
%	-----------------------------------
%	Armazenamento da Matriz Tridiagonal
%------------------------------------------
%
%
%
%	Diagonal Principal
%-------------------------
%
%	Diag(i) = a(i,i)  para  i = 1,2, ... ndim
%
%
%	Diagonal Superior
%------------------------
%
%	Sup(i) = a(i,i+1)  para  i = 1,2, ... (ndim-1)
%
%
%
%	Diagonal Inferior
%------------------------
%
%	Sub(i-1) = a(i,i-1)  para  i = 2,3, ... ndim
%
%
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
