[Maxima] Homogeneous differential equations
Jaime Villate
villate at fe.up.pt
Tue Sep 25 02:01:03 CDT 2007
On Mon, 2007-09-24 at 17:06 -0300, Ismael Garrido wrote:
> I'm trying to solve Homogeneous ODEs and I get the following:
>
> Maxima 5.10.0 http://maxima.sourceforge.net
> Using Lisp GNU Common Lisp (GCL) GCL 2.6.7 (aka GCL)
> (Under Ubuntu Feisty)
>
> (%i1) a : 'diff(y,x,3)+'diff(y,x,2)+'diff(y,x)+y=0;
> (%o1) 'diff(y,x,3)+'diff(y,x,2)+'diff(y,x,1)+y=0
> (%i2) ode2(a, x, y);
> (%t2) 'diff(y,x,3)+'diff(y,x,2)+'diff(y,x,1)+y=0
> msg1
> (%o2) false
The documentation says:
(%i5) ? ode2
-- Function: ode2 (<eqn>, <dvar>, <ivar>)
The function `ode2' solves an ordinary differential equation (ODE)
of first or second order. It takes three arguments: an ODE given by
<eqn>, the dependent variable <dvar>, and the independent variable
<ivar>.
Your equation is of third order, so ode2 will not work.
> I would expect Maxima to take the characteristic polynomial (lambda^3
> +
> l^2 + l + 1), found it's roots and return the general solution. Why
> isn't it?
It will! If you use the "desolve" function:
ve
(%i13) a : diff(y(x),x,3)+diff(y(x),x,2)+diff(y(x),x)+y(x)=0;
(%o13) 'diff(y(x),x,3)+'diff(y(x),x,2)+'diff(y(x),x,1)+y(x) = 0
(%i14) desolve(a,y(x));
(%o14) y(x) = sin(x)*(?%at('diff(y(x),x,2),x = 0)
+2*(?%at('diff(y(x),x,1),x = 0)) + y(0))/2
+%e^-x*(?%at('diff(y(x),x,2),x = 0) + y(0))/2
-cos(x)*(?%at('diff(y(x),x,2),x = 0) - y(0))/2
I have not seen how ode2 works and how it solves a second-order
homogeneous linear equation, so I cannot tell you how easy or hard it
would be to extend it into higher orders. desolve uses Laplace
transforms.
Regards,
Jaime Villate
More information about the Maxima
mailing list