5th-order Runge-Kutta Method for numerically approximating solutions of the IVP:
dy/dx=f(x,y), y(x0)=y0

/* User input comes first */
dydx: 1/2-y/(10+4*x)   $/* dy/dx = f(x,y) */
x0: 0   $/* Initial x-value */
y0: 0   $/* Initial y-value */
h: 1.0   $/* Ending x-value */
steps: 10   $/* Number of steps --- Ending x-value will be x0 + steps*h */
/* End of user input */

xx: float(x0)$ yy: float(y0)$
print("Step size = ", h)$
print("x",0,"=", xx, ", y",0,"=", yy)$
for i: 1 thru steps do
   (
   k1: h * ev( dydx, numer, [x=xx,y=yy] ),
   ww: yy + k1/4,
   k2: h * ev( dydx, numer, [x=xx+h/4,y=ww] ),
   ww: yy + (k1+k2)/8,
   k3: h * ev( dydx, numer, [x=xx+h/4,y=ww] ),
   ww: yy + k3 - k2/2,
   k4: h * ev( dydx, numer, [x=xx+h/2,y=ww] ),
   ww: yy + (3*k1+9*k4)/16,
   k5: h * ev( dydx, numer, [x=xx+3*h/4,y=ww] ),
   ww: yy - (3*k1 - 2*k2 - 12*k3 + 12*k4 - 8*k5) / 7,
   k6: h * ev( dydx, numer, [x=xx+h,y=ww] ),
   yy: yy + (7*k1 + 32*k3 + 12*k4 + 32*k5 + 7*k6) / 90,
   xx: xx + h,
   print("x", i, "=", xx, ", y", i, "=", yy)
   );