%>>> Parametros de resolucao
ContadorMax = 25;

%>>> Definicao do sistema
F = @(t,x) x.^0.666666666; 

%>>> Condicoes iniciais
t0 = 0;                     
x0 = 0;                     

%>>> Intervalo de definicao
% Raio da "caixa inicial" para definicao do intervalo de definicao
delta = 1;
% Largura da malha 
largura_malha = 0.01;

% Norma maxima da velocidade na caixa inicial
M = max(abs(F(t0-delta:largura_malha:t0+delta,x0-delta:largura_malha:x0+delta)));

% Raio do intervalo de definicao
epsilon = min(delta, delta/M);

% Intervalo de definicao da solucao
N = 100;
t = linspace(t0, t0 + epsilon, N)';

%>>> Iteracao de Picard
% Curva inicial para iteracao
xi = ones(size(t))*x0;          

x = zeros([length(xi),ContadorMax]);
x(:,1) = xi;

% Definicao do metodo de integracao
%integrador = @(y) Retangulo(t,y,F);
integrador = @(y) Trapezio(t,y,F);

% Iterando Metodo de Picard
figure;
for i = 2:ContadorMax
 
    x(:,i) = xi + integrador(x(:,i-1));    
    plot(t,x(:,i))
    title(sprintf('n = %f',i))
    pause(1.0)
    
end
