EDR passo-a-passo no MATLAB ®

Código do Matlab® para resolver Equações Diferenciais com Retardamento através do método passo-a-passo (quando possível) fazendo uso do pacote de matemática simbólica. A vantagem do método é obter a solução analítica, sendo mais preciso do que aproximações numéricas.

O programa abaixo resolve a equação diferencial

\[{dx \over dt}(t) = \lambda x(t-\tau)\;.\]

  % código por: Felipe Longo (ime.unicamp.br/~ra211683/ - longo@ime.unicamp.br)
  lambda=1; tau=1;

  phi=@(t) 1;
  ti=-tau:0.001:0;
  
  z=zeros(size(ti));
  z(:)=phi(ti(:));
  plot(ti,z,'LineWidth',2); hold on;

  syms t
  x(t) = phi(0) + lambda*int(phi(t-tau),0,t);
  %y = matlabFunction(x); %transforma simbolic function em handle function
  ti=0:0.001:tau;
  plot(ti,x(ti),'LineWidth',2); hold on;

  for i=1:5
    x(t) = x(i*tau) + lambda*int(x(t-tau),i*tau,t);
    ti=i*tau:0.001:(i+1)*tau;
    plot(ti,x(ti),'LineWidth',2); hold on;
  end
  grid