Page 16-70
contains functions for the numerical solution of ordinary differential equations
for use in programming. These functions are described next using RPN mode
and system flag 117 set to SOFT menus.
The functions provided by the SOLVE/DIFF menu are the following:
Function RKF
This function is used to compute the solution to an initial value problem for a
first-order differential equation using the Runge-Kutta-Fehlbert 4
th
-5
th
order
solution scheme. Suppose that the differential equation to be solved is given
by dy/dx = f(x,y), with y = 0 at x = 0, and that you will allow a convergence
criteria
ε
for the solution. You can also specify an increment in the
independent variable,
∆
x, to be used by the function. To run this function you
will prepare your stack as follows:
3: {‘x’, ‘y’, ‘f(x,y)’}
2: {
ε
∆
x }
1: x
final
The value in the first stack level is the value of the independent variable where
you want to find your solution, i.e., you want to find, y
final
= f
s
(x
final
), where f
s
(x)
represents the solution to the differential equation. The second stack level may
contain only the value of
ε
, and the step
∆
x will be taken as a small default
value. After running function
@@RKF@@
, the stack will show the lines:
2: {‘x’, ‘y’, ‘f(x,y)’}
1:
ε
The value of the solution, y
final
, will be available in variable
@@@y@@@
. This
function is appropriate for programming since it leaves the differential
equation specifications and the tolerance in the stack ready for a new solution.
Notice that the solution uses the initial conditions x = 0 at y = 0. If, your
actual initial solutions are x = x
init
at y = y
init
, you can always add these values
to the solution provided by RKF, keeping in mind the following relationship: