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);
|
| (1) |
| (2) |
>
|
DEtools[de2diffop](ode, y(x), [Dx,x]);
|
| (3) |
|
and this operator is factored as
|
>
|
DEtools[DFactor]((3), [Dx,x]);
|
| (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);
|
| (5) |
|
This LODE is solved by dsolve as follows
|
| (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);
|
| (7) |
|
rather than the complete factorization
|
>
|
Dx^3-x*Dx^2-b^2*Dx+b^2*x = (Dx-x)*(Dx-b)*(Dx+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);
|
| (9) |
| (10) |
|
that is, a reduction of order by one, since, in the factorization
|
>
|
DEtools[de2diffop](ode, y(x), [Dx,x]);
|
| (11) |
>
|
DEtools[DFactor]((11), [Dx,x]);
|
| (12) |
|
dsolve only succeeded in solving the right factor (the left factor has no Liouvillian solutions).
|
|
|