# Solving system of ODE gets "ValueError"

I'm trying to solve a system of ODE using desolve_system but get "ValueError":

t=var('t'); f=function('f')(t); g=function('g')(t);
de1 = diff(f,t) == f*sin(t);
de2 = diff(g,t) == 0;
desolve_system([de1, de2], [f,g])


gets:

Traceback (click to the left of this block for traceback)
...
ValueError: The name "+" is not a valid Python identifier


the problem seems to be sin(t) factor, without it the system solves with no problem. Also desolve(de1, f) has no problem. What is going on here?

edit retag close merge delete

Your equations are independent. Note that solving the equation one by one does work

sage: desolve(de1, f)
_C*e^(-cos(t))
sage: desolve(de2, g)
_C


Sort by » oldest newest most voted

The problem comes from the fact that Sage is not able to understand Maxima's answer

f(_SAGE_VAR_t) = ilt((%i laplace(f(_SAGE_VAR_t), _SAGE_VAR_t, g2579 + %i)
- %i laplace(f(_SAGE_VAR_t), _SAGE_VAR_t, g2579 - %i) + 2 f(0))/(2 g2579), g2579, _SAGE_VAR_t)


I opened the ticket #23445 to track the issue.

more