(maxima.info)Functions and Variables for Differential Equations


Prev: Introduction to Differential Equations Up: Differential Equations
Enter node , (file) or (file)node

21.2 Functions and Variables for Differential Equations
=======================================================

 -- Function: bc2 (<solution>, <xval1>, <yval1>, <xval2>, <yval2>)
     Solves a boundary value problem for a second order differential
     equation.  Here: <solution> is a general solution to the equation,
     as found by 'ode2'; <xval1> specifies the value of the independent
     variable in a first point, in the form '<x> = <x1>', and <yval1>
     gives the value of the dependent variable in that point, in the
     form '<y> = <y1>'.  The expressions <xval2> and <yval2> give the
     values for these variables at a second point, using the same form.

     See 'ode2' for an example of its usage.

 -- Function: desolve
          desolve (<eqn>, <x>)
          desolve ([<eqn_1>, ..., <eqn_n>], [<x_1>, ..., <x_n>])

     The function 'desolve' solves systems of linear ordinary
     differential equations using Laplace transform.  Here the <eqn>'s
     are differential equations in the dependent variables <x_1>, ...,
     <x_n>.  The functional dependence of <x_1>, ..., <x_n> on an
     independent variable, for instance <x>, must be explicitly
     indicated in the variables and its derivatives.  For example, this
     would not be the correct way to define two equations:

          eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x);
          eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);

     The correct way would be:

          eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x);
          eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);

     The call to the function 'desolve' would then be
          desolve([eqn_1, eqn_2], [f(x),g(x)]);

     If initial conditions at 'x=0' are known, they can be supplied
     before calling 'desolve' by using 'atvalue'.

          (%i1) 'diff(f(x),x)='diff(g(x),x)+sin(x);
                           d           d
          (%o1)            -- (f(x)) = -- (g(x)) + sin(x)
                           dx          dx
          (%i2) 'diff(g(x),x,2)='diff(f(x),x)-cos(x);
                            2
                           d            d
          (%o2)            --- (g(x)) = -- (f(x)) - cos(x)
                             2          dx
                           dx
          (%i3) atvalue('diff(g(x),x),x=0,a);
          (%o3)                           a
          (%i4) atvalue(f(x),x=0,1);
          (%o4)                           1
          (%i5) desolve([%o1,%o2],[f(x),g(x)]);
                            x
          (%o5) [f(x) = a %e  - a + 1, g(x) =

                                                          x
                                             cos(x) + a %e  - a + g(0) - 1]
          (%i6) [%o1,%o2],%o5,diff;
                       x       x      x                x
          (%o6)   [a %e  = a %e , a %e  - cos(x) = a %e  - cos(x)]


     If 'desolve' cannot obtain a solution, it returns 'false'.

 -- Function: ic1 (<solution>, <xval>, <yval>)
     Solves initial value problems for first order differential
     equations.  Here <solution> is a general solution to the equation,
     as found by 'ode2', <xval> gives an initial value for the
     independent variable in the form '<x> = <x0>', and <yval> gives the
     initial value for the dependent variable in the form '<y> = <y0>'.

     See 'ode2' for an example of its usage.

 -- Function: ic2 (<solution>, <xval>, <yval>, <dval>)
     Solves initial value problems for second-order differential
     equations.  Here <solution> is a general solution to the equation,
     as found by 'ode2', <xval> gives the initial value for the
     independent variable in the form '<x> = <x0>', <yval> gives the
     initial value of the dependent variable in the form '<y> = <y0>',
     and <dval> gives the initial value for the first derivative of the
     dependent variable with respect to independent variable, in the
     form 'diff(<y>,<x>) = <dy0>' ('diff' does not have to be quoted).

     See 'ode2' for an example of its usage.

 -- 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>.  When successful, it returns either an explicit or
     implicit solution for the dependent variable.  '%c' is used to
     represent the integration constant in the case of first-order
     equations, and '%k1' and '%k2' the constants for second-order
     equations.  The dependence of the dependent variable on the
     independent variable does not have to be written explicitly, as in
     the case of 'desolve', but the independent variable must always be
     given as the third argument.

     If 'ode2' cannot obtain a solution for whatever reason, it returns
     'false', after perhaps printing out an error message.  The methods
     implemented for first order equations in the order in which they
     are tested are: linear, separable, exact - perhaps requiring an
     integrating factor, homogeneous, Bernoulli's equation, and a
     generalized homogeneous method.  The types of second-order
     equations which can be solved are: constant coefficients, exact,
     linear homogeneous with non-constant coefficients which can be
     transformed to constant coefficients, the Euler or equi-dimensional
     equation, equations solvable by the method of variation of
     parameters, and equations which are free of either the independent
     or of the dependent variable so that they can be reduced to two
     first order linear equations to be solved sequentially.

     In the course of solving ODE's, several variables are set purely
     for informational purposes: 'method' denotes the method of solution
     used (e.g., 'linear'), 'intfactor' denotes any integrating factor
     used, 'odeindex' denotes the index for Bernoulli's method or for
     the generalized homogeneous method, and 'yp' denotes the particular
     solution for the variation of parameters technique.

     In order to solve initial value problems (IVP) functions 'ic1' and
     'ic2' are available for first and second order equations, and to
     solve second-order boundary value problems (BVP) the function 'bc2'
     can be used.

     Example:

          (%i1) x^2*'diff(y,x) + 3*y*x = sin(x)/x;
                                2 dy           sin(x)
          (%o1)                x  -- + 3 x y = ------
                                  dx             x
          (%i2) ode2(%,y,x);
                                       %c - cos(x)
          (%o2)                    y = -----------
                                            3
                                           x
          (%i3) ic1(%o2,x=%pi,y=0);
                                        cos(x) + 1
          (%o3)                   y = - ----------
                                             3
                                            x
          (%i4) 'diff(y,x,2) + y*'diff(y,x)^3 = 0;
                                   2
                                  d y      dy 3
          (%o4)                   --- + y (--)  = 0
                                    2      dx
                                  dx
          (%i5) ode2(%,y,x);
                                3
                               y  + 6 %k1 y
          (%o5)                ------------ = x + %k2
                                    6
          (%i6) ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));
                                       3
                                    2 y  - 3 y
          (%o6)                   - ---------- = x
                                        6
          (%i7) bc2(%o5,x=0,y=1,x=1,y=3);
                                   3
                                  y  - 10 y       3
          (%o7)                   --------- = x - -
                                      6           2



automatically generated by info2www version 1.2.2.9