Erro absoluto dos métodos ODE45 e Runge-Kutta em comparação com solução analítica

Gostaria que alguém pudesse ajudar com o seguinte problema. Eu tenho o seguinte ODE:

dr/dt = 4*exp(0.8*t) - 0.5*r   ,r(0)=2, t[0,1]       (1)

Eu resolvi (1) de duas maneiras diferentes. Por meio doMétodo Runge-Kutta (4ª ordem) e por meio deode45 no Matlab. Comparei os dois resultados com a solução analítica, que é dada por:

r(t) = 4/1.3 (exp(0.8*t) - exp(-0.5*t)) + 2*exp(-0.5*t)

Quando plogo o erro absoluto de cada método em relação à solução exata, obtenho o seguinte:

Para o método RK, meu código é:

h=1/50;                                            
x = 0:h:1;                                        
y = zeros(1,length(x)); 
y(1) = 2;    
F_xy = @(t,r) 4.*exp(0.8*t) - 0.5*r;                   
for i=1:(length(x)-1)                              
    k_1 = F_xy(x(i),y(i));
    k_2 = F_xy(x(i)+0.5*h,y(i)+0.5*h*k_1);
    k_3 = F_xy((x(i)+0.5*h),(y(i)+0.5*h*k_2));
    k_4 = F_xy((x(i)+h),(y(i)+k_3*h));
    y(i+1) = y(i) + (1/6)*(k_1+2*k_2+2*k_3+k_4)*h;  % main equation
end

E paraode45:

tspan = 0:1/50:1;
x0 = 2;
f = @(t,r) 4.*exp(0.8*t) - 0.5*r;
[tid, y_ode45] = ode45(f,tspan,x0);

Minha pergunta é: por que tenho oscilações quando usoode45? (Estou me referindo ao erro absoluto). Ambas as soluções são precisas (1e-9), mas o que acontece comode45 nesse caso?

Quando calculo o erro absoluto para o método RK, por que parece melhor?

questionAnswers(2)

yourAnswerToTheQuestion