%-----------------------------------------------------------------------
%             -----------                           ----------
%             script file                           tstode45.m
%             -----------                           ----------
%-----------------------------------------------------------------------
%                  -------------------------------------
%                  Metodo de Runge-Kutta de Quarta Ordem 
%                  -------------------------------------
%
%
%
%
%	Problema de Valor Inicial:   Y'(t)  =  F(t,Y(t))  ,  t > 0
%       --------------------------
%                                     Y(0)  =  Yo .
%
%
%
%       ---------------------------------------------------
%	Programa Teste para o Procedimento  ode45 do Matlab
%----------------------------------------------------------
%
%
%	Variaveis de Entrada
%---------------------------
%	   fname : Nome da Function que contem a funcao  F(t,Y(t))
%
%	Tinicial : Tempo Inicial
%
%         Tfinal : Tempo Final
%
%             Y0 : Condicao Inicial
%
%       precisao : Precisao Desejada
%
%
%	Variavel de Saida
%------------------------
%	 Y : Vetor contendo a Solucao Aproximada
%
%	 T : Vetor contendo os Pontos de Integracao do Tempo
%
%
%       ----------------
%	Dados de Entrada
%-----------------------
%
	   fname = 'exemplo';
        Tinicial = 0.0;
	  Tfinal = 32.0;
	      Y0 = 1.0;
        precisao = 1.0e-12;
%
%
%       -----------------------------
%	Chamada do Procedimento ode45
%------------------------------------
	[T,Y]  =  ode45(fname,Tinicial,Tfinal,Y0,precisao);
%---------------------------------------------------------
%
%
	figure(1), plot(T,Y)
	title('Metodo de Runge-Kutta de Quarta Ordem (ode45)')
        xlabel('F(t,Y(t))  =  exp(-1.5*Y*Y)   com  Y(0) = 1.0')
	grid on
%
%
%       -----------------------------------------
%	Saida do Resultado em um Arquivo de Dados
%------------------------------------------------
%
%       Nome do Arquivo de Dados
%-------------------------------
	name = 'ode45.dat';
%
%       Abre um Arquivo Sequencial para Escrita
%----------------------------------------------
	fid = fopen(name, 'w');
%
%
	fprintf(fid,'          %15.10f        %15.10f\n', [ T' ; Y' ]);
%
%
%	Fecha o Arquivo de Dados
%-------------------------------
	fclose(fid);
%
%
	disp('    ')
	disp('    ')
	disp('         Saida da Solucao no Arquivo  ode45.dat')
%
%
%	
	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/
%
%-----------------------------------------------------------------------
