# [Maxima] Sage/Maxima desolve_rk4 problem

Robert Dodier robert.dodier at gmail.com
Mon Apr 19 13:52:18 CDT 2010

```Looks like the rk function in Maxima doesn't try hard enough to
float-ify its argument. I haven't looked at the code, but
maybe rk can call COERCE-FLOAT-FUN to construct a
function to evaluate the expression. At least that would
bring it into line with other Maxima functions which
evaluate expressions to numbers (e.g. plotting, quadpack).

Follow-ups to the Maxima mailing list. I've appended
the original message below.

best

Robert Dodier

PS.

On Apr 19, 8:38 am, jvkersch <joris.vankerscha... at gmail.com> wrote:

> Technically, this is not a Sage problem, but I figured I would post it
> here anyway since others might have run into the same problem, and I'm
> also trying to solve the problem using some Sage/python trickery.
>
> The problem concerns the use of symbolic constants such as pi in
> numerical integration with desolve_rk4.  The following code is adapted
> from the manual page for desolve_rk4 -- note especially the constant
> pi in the specification of the ODE:
>
>   x, y = var('x y')
>   desolve_rk4(x*y*(2-y) + pi, y, ics=[0, 1], end_points=1, step=0.5)
>
> and raises the following error:
>
>   TypeError: Error executing code in Maxima
>   CODE:
>         sage1 : rk(%pi-x*(y-2)*y,y,1,[x,0,1,0.500000000000000])        \$
>   Maxima ERROR: Inconsistent set of equations and variables
>
> This same error occurs whenever you have an ODE with pi in it, no
> matter how simple. The error persists when directly running this
> command in Maxima, but works fine (both in Sage and Maxima) when
> manually replacing pi by 3.14...   Since I don't know any Maxima, I
> have no idea of what the problem could be or where to look.
>
> So, I was wondering if there is a way to have Sage replace the %pi
> when invoking Maxima by the corresponding numerical value?  I guess I
> could store my ODE in a string and use a regular expression to get rid
> of any pi's myself, but that seems very inelegant.  Is there anything
> you would recommend?
>
> Thanks a lot,
> Joris
```