Ask Your Question
1

Cannot desolve ODE

asked 2015-01-29 00:03:45 +0100

this post is marked as community wiki

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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-01-30 08:38:00 +0100

tmonteil gravatar image

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)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2015-01-29 00:03:45 +0100

Seen: 498 times

Last updated: Jan 30 '15