differential factorization - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Differential Equations : dsolve : differential factorization

Solutions for Linear Ordinary Differential Equations (LODEs) via Differential Factorization

Description

  

One of the significant improvements for solving linear ODEs is the method which makes use of the factorization of differential operators (see diffop, and examples,diffop). As an example, the third order linear ODE

ode := x^2*diff(y(x),x$3) + (-x^3+3*x)*diff(y(x),x$2) + (-x^3+3*x)*y(x);

odex2ⅆ3ⅆx3yx+x3+3xⅆ2ⅆx2yx+x3+3xyx

(1)
  

is solved as

dsolve(ode);

yx=c__1BesselJ1,x+c__2BesselY1,x+c__3BesselJ1,xBesselY1,xⅇx22xⅆx+BesselJ1,xⅇx22xⅆxBesselY1,x

(2)
  

The method of solution takes advantage of the (sometimes) possible factorization of the linear differential operator associated to the given LODE. For example, for ode above, the differential operator is given by

DEtools[de2diffop](ode, y(x), [Dx,x]);

x2Dx3+x3+3xDx2x3+3x

(3)
  

and this operator is factored as

DEtools[DFactor]((3), [Dx,x]);

x2Dxxx22,Dx2+Dxx+x21x2

(4)
  

The original ode is then solved by solving the LODEs determined by these two factors above (the solution to the left factor enters as a non-homogeneous term in the LODE associated to the right factor; solving this non-homogeneous LODE leads to the solution of ode).

  

As the second example, consider

ode := diff(y(x),x$3) - x*diff(y(x),x$2) - b^2*diff(y(x),x) + b^2*x*y(x);

odeⅆ3ⅆx3yxxⅆ2ⅆx2yxb2ⅆⅆxyx+b2xyx

(5)
  

This LODE is solved by dsolve as follows

dsolve(ode);

yx=c__1ⅇbx+c__2ⅇbx+c__3erfI22bxⅇbb2x2+erfI22b+xⅇbb+2x2

(6)
  

In this case the solving method is taking advantage of the partial factorization

Dx^3-x*Dx^2-b^2*Dx+b^2*x = (Dx-x)*(Dx^2-b^2);

Dx3xDx2b2Dx+b2x=DxxDx2b2

(7)
  

rather than the complete factorization

Dx^3-x*Dx^2-b^2*Dx+b^2*x = (Dx-x)*(Dx-b)*(Dx+b);

Dx3xDx2b2Dx+b2x=DxxDxbDx+b

(8)
  

Even in cases where dsolve cannot find solutions for all the factors, it can still return a reduction of order expressed using a DESol structure. For example, for

ode := diff(y(x),x$3) + (x^3-x)*diff(y(x),x$2) - (x^4+3)*diff(y(x),x) - (x^3-x)*y(x);

odeⅆ3ⅆx3yx+x3xⅆ2ⅆx2yxx4+3ⅆⅆxyxx3xyx

(9)
  

we have

dsolve(ode);

yx=c__1ⅇx22+c__2ⅇx2x2+24HeunB12,0,32,1,x22ⅆxⅇx22+c__3xⅇx2x2+24HeunB12,0,32,1,x22ⅆxⅇx22

(10)
  

that is, a reduction of order by one, since, in the factorization

DEtools[de2diffop](ode, y(x), [Dx,x]);

Dx3+x3xDx2+x43Dxx3+x

(11)

DEtools[DFactor]((11), [Dx,x]);

Dx2+x3Dx1,Dxx

(12)
  

dsolve only succeeded in solving the right factor (the left factor has no Liouvillian solutions).

See Also

DEtools

diffop

dsolve,education

PDEtools