## 90 Package rk_adaptive ¶

### 90.1 Introduction to rk_adaptive ¶

`rk_adaptive` employs the runge-kutta method for numberically solving differential equations, but other than `rk` it tries to find a sensible step size, which reduces both runtime and amount of data produced.

### 90.2 Functions and Variables for rk_adaptive ¶

Function: rk_adaptive (expr, vars, vars_initval, var, ¶

  startval, endval, params1...)

  Tries to solve the ODE whose derivates are defined by `expr` to the variables `vars`, starting at their initial values `vars_initval`. The independent variable (in physics: normally time) is `var`, being stepped from `startval` to `endval`.

  Sometimes it speeds up the calculation to use a floating-point number as `startval`, as using floars will prevent all results from becoming endless rational numbers.

  The following optional parameters are accepted:

  - `maxstep=num`: The maximum step size to be used.
  - `minstep=num`: The minimum step size to be used.
  - `timestep_initial=num`: The initial guess for the optimum time step to start with.
  - `maxabserr=num`: The maximum absolute error of the resulting curves.
  - `maxrelerr=num`: The maximum relative error of the resulting curves as a fallback for variables with big values for which `maxabserr` might be too sensitive.

  See also rk.

  Example:

      (%i1) pnts:rk_adaptive(-1/10*x,x,1,t,0,100)  $