kill(all)$
numer:true$ decimales:6$ prec:10^decimales$
a:0$ b:2$ N:3$
h:(b-a)/N$ 
t[0]:0$ y[0]:1$
k1:0$ k2:0$ k3:0$ k4:0$
y(t):=exp((t^4-6*t)/4)$
f(t,y):=y*t^3-1.5*y;
print("i   ","   Analítica"," Runge-Kutta 4")$
for i:0 thru N do (
      t[i]:t[0]+i*h,
      k1:f(t[i],y[i]),
      k2:f(t[i]+h/2,y[i]+h*k1/2),
      k3:f(t[i]+h/2,y[i]+h*k2/2),
      k4:f(t[i]+h,y[i]+h*k3),
      y[i+1]:y[i]+h*(k1+2*k2+2*k3+k4)/6,

      print(round(t[i]*10)/10,"    ",
            float(round(y(t[i])*prec)/prec),"   ",
            float(round(y[i]*prec)/prec))        
)$

wxdraw2d(
color=red,
key="Solución Runge-Kutta",
point_type=filled_circle,
point_size=1,
points(makelist([t[j],y[j]],j,0,N)),
color=blue,
key="Solución Exacta",
explicit(y(t),t,a,b),
grid=true,
xlabel="t",
ylabel="y",
title="Solución analítica versus solución numérica"
);