Traceback (click to the left of this block for traceback) ... NotImplementedError: Maxima was unable to solve this ODE. Consider to set option contrib_ode to True. Traceback (most recent call last): soln=desolve(DE,y,ivar=t) File "", line 1, in <module> File "/tmp/tmpE2j3nd/___code___.py", line 8, in <module> soln=desolve(DE,y,ivar=t) File "/home/sageserver/sage8.7/local/lib/python2.7/sitepackages/sage/calculus/desolvers.py", line 597, in desolve raise NotImplementedError("Maxima was unable to solve this ODE. Consider to set option contrib_ode to True.") NotImplementedError: Maxima was unable to solve this ODE. Consider to set option contrib_ode to True. 




Automobile Suspension (Harmonic Oscillator)
Assume a wheel with mass m on a stationary automobile is suspended and the equilibrium position presume the position of the wheel is at y = 0.
At the equilibrium, the spring is not moving and so the force holding the wheel back is equal to the force of gravity pulling the wheel down. If $\lambda$ is the distance that gravity stretches the spring (and moves the wheel down) from it's natural position, then Hooke's Law suggests that the force exerted by the spring is proportional to this length or
$mg = k\lambda$
where k is the Hooke's Law proportionality constant.
Suppose now that the wheel is moved from this equilibrium position and that y is the distance the wheel is from equilibrium where positive yvalues are oriented downward (so that y>0 means the spring is stretched and y<0 means the spring is compressed). Hooke's law again says that an additional force will be exerted proportional to this distance y.So, the net resulting force on the spring when the wheel is at location y is
gravity + wheel weight on spring + spring's pulling/pushing = $mg  k(y+\lambda)$
where we note that y>0 means the spring is pulling back up (in the negative direction) and y<0 means the spring is pushing down (in the positive direction).
Therefore the net force on the wheel by Newton's Second Law is again $F = ma = m y''$ and so we get the differential equation
$m y'' = mg  k(y+\lambda) = k\lambda  ky  k\lambda $
or
$my'' + ky = 0$
which is a second order constant coefficient homogeneous DE.

Click to the left again to hide and once more to show the dynamic interactive window 
Notice, the solution to the DE above is unsatisfactory for safe travel since once a car hits a bump that it continues to bounce forever. Not a safe ride. So, let's add a shock absorber that will affect the motion of the wheel only while the wheel is moving. Since the first derivative models velocity (how fast a thing moves) then perhaps a good model would be for a shock absorber to exert a force that is negatively proportional to the speed of any movement. That is a force that looks like $ c y' $. Adding this into our net force equation from before gives
$ m y'' = mg  k(y+\lambda) = k\lambda  ky  k\lambda  cy' $
or
$ m y'' + cy' + ky = 0 $
Traceback (click to the left of this block for traceback) ... Is 4*kc^2 positive, negative or zero? Traceback (most recent call last): a0 = function('Q')(t) File "", line 1, in <module> File "/tmp/tmpnFwolU/___code___.py", line 14, in <module> soln=desolve(DE,y,ivar=t) File "/home/sageserver/sage8.7/local/lib/python2.7/sitepackages/sage/calculus/desolvers.py", line 584, in desolve soln = P(cmd) File "/home/sageserver/sage8.7/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 288, in __call__ return cls(self, x, name=name) File "/home/sageserver/sage8.7/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 703, in __init__ raise TypeError(x) TypeError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(4*kc^2>0)', see `assume?` for more details) Is 4*kc^2 positive, negative or zero? 

Traceback (click to the left of this block for traceback) ... ValueError: Assumption is inconsistent Traceback (most recent call last): assume(k>0) File "", line 1, in <module> File "/tmp/tmpqcZjh7/___code___.py", line 10, in <module> assume(_sage_const_4 *kc**_sage_const_2 <_sage_const_0 ) File "/home/sageserver/sage8.7/local/lib/python2.7/sitepackages/sage/symbolic/assumptions.py", line 550, in assume x.assume() File "sage/symbolic/expression.pyx", line 1837, in sage.symbolic.expression.Expression.assume (build/cythonized/sage/symbolic/expression.cpp:13610) ValueError: Assumption is inconsistent 
Notice the bifuraction when you pass across the point where $c^24k=0$.
Click to the left again to hide and once more to show the dynamic interactive window 
[x == 1/2*c  1/2*sqrt(c^2  4*k), x == 1/2*c + 1/2*sqrt(c^2  4*k)] [x == 1/2*c  1/2*sqrt(c^2  4*k), x == 1/2*c + 1/2*sqrt(c^2  4*k)] 
