# Cannot desolve ODE This post is a wiki. Anyone with karma >750 is welcome to improve it.

I'm trying to compute the solution for a first order differential equation using the code below:

var('g, a, v_e, m_0, v_9, k')
m(t) = (m_0 - a*t)
v = function('v', t)
de = m*diff(v, t) == -v_e*diff(m, t) - k*v - m*g
ans = desolve(de, v, ics=[0,0], ivar=t)


This returns the following error: TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation may help (example of legal syntax is 'assume(-k/a>0)', see assume? for more details)

Running assume(-k/a>0) before desolve does not remove the error. This error does not happen with the k*v term removed. By hand, I was able to solve this DE using integrating factors.

edit retag close merge delete

Sort by » oldest newest most voted

You can provide a stronger information than assume(-k/a>0), the following seems to work:

sage: assume(a>0)
sage: assume(k<0)
sage: ans = desolve(de, v, ics=[0,0], ivar=t)
sage: ans
-(a*g*k*t*e^(k*log(-m_0)/a) + g*k*m_0*e^(k*log(a*t - m_0)/a) - g*k*m_0*e^(k*log(-m_0)/a) + ((a^2 - a*k)*e^(k*log(a*t - m_0)/a) - (a^2 - a*k)*e^(k*log(-m_0)/a))*v_e)*e^(-k*log(-m_0)/a)/(a*k - k^2)

more