DEtools[intfactor] - look for integrating factors for a given ODE
|
Calling Sequence
|
|
intfactor(ODE, y(x), _mu = int_factor_form, try_hard=true)
|
|
Parameters
|
|
ODE
|
-
|
ordinary differential equation (any order)
|
y(x)
|
-
|
(optional) dependent variable; required when the ODE contains more than one function being differentiated
|
try_hard = true
|
-
|
(optional) to search for integrating factors depending on n-1 variables, where n is the ODE order
|
_mu = int_factor_form
|
-
|
(optional) to search for integrating factors having the indicated form
|
|
|
|
|
Description
|
|
•
|
For a given nth order ODE
|
•
|
The knowledge of an integrating factor -- say mu -- is sufficient to reduce the order of a given ODE by one; in the case of first order ODEs this reduction of order leads directly to their solution. The reduced ODEs obtained from the knowledge of mu are also called first integrals and can be computed by using the firint command (see examples below).
|
•
|
By default intfactor looks for "as many" integrating factors as the differential order of the given ODE, and it returns an answer as soon as these integrating factors are found, or when all its schemes have already been tried.
|
•
|
In the case of third and higher nth order ODEs, intfactor searches for integrating factors depending on any two of , by formulating and tackling a linear PDE system for mu (see gensys). When integrating factors with such a dependence exist, the success of intfactor in computing them depends on the success of the dsolve and pdsolve commands in solving the differential equations of that PDE system.
|
•
|
Given an nth order ODE and calling intfactor with the optional argument try_hard = true, the routines search for mu depending on any n-1 of by tackling the related linear PDE system for mu as explained in the previous paragraph. Although this "hard" approach widens the chances of success significatively, the number of different mu problems being tackled is equal to the differential order and each of them involves more than two variables, so this approach could result much slower than the default one, especially for ODEs of order 4 or higher.
|
•
|
It is also possible to request to intfactor the search of integrating factors of some predefined form by using the option '_mu = int_factor_form'. In this approach, int_factor_form, could be either an algebraic expression or a list of them, containing unknowns in the form of functions of and / or any symbols whose values are to be determined. When int_factor_form contains no unknowns, only a direct test of it using mutest is performed to validate or discard the suggestion. When the indicated form contains unknowns, intfactor sets up a related algebraic/ODE/PDE system of equations for these unknowns and attempt to solve it using Maple's solve, dsolve and pdsolve commands. This option is particularly useful when the intfactor algorithms fail in finding any integrating factor, but you have some idea of the functional form of such factors (see example at the end of this page).
|
•
|
When, for a given high order ODE, many integrating factors are returned, the sequence of mus can be used to reduce the given ODE by many orders at once. Note however that sometimes not all of the integrating factors lead to "different" reductions of order. The reason is that if mu leads to a reduced ODE -- say R1 -- then , where f is an arbitrary function, is also an integrating factor and leads to the same reduced ODE. Hence, different subroutines may find different integrating factors which are actually leading to just one reduction of order. To determine if two integrating factors lead to different reductions of order, you can first calculate the related first integrals using firint - see examples.
|
•
|
From a given ODE and an integrating factor for it, you can compute the integrating factor of another ODE, obtained from the first one by performing any arbitrary change of variables. To compute this integrating factor for the changed ODE, use muchange. To test whether an expression is an integrating factor for a given ODE, use the mutest command.
|
•
|
The intfactor command is in some sense complementary to the redode command in that the output of one of them is the input for the other one and vice versa.
|
•
|
This function is part of the DEtools package, and so it can be used in the form intfactor(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[intfactor](..).
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
Here is an ODE depending on an arbitrary function .
>
|
|
| (2) |
A pair of symmetry infinitesimals for this ODE is given by (see symgen):
>
|
|
| (3) |
From these infinitesimals, a related integrating factor for ODE is given by:
>
|
|
| (4) |
Note that when the ODE is given as an equation , it is converted to the form before calculating mu.
Let's see the change on the ODE type produced by mu.
>
|
|
| (5) |
>
|
|
| (6) |
Here is a second order example with two integrating factors. Its solution is obtained using them to reduce the ODE order by two at once.
>
|
|
| (7) |
>
|
|
| (8) |
>
|
|
| (9) |
>
|
|
| (10) |
>
|
|
| (11) |
Eliminating from these two first integrals and renaming in one of them we obtain the ODE solution; this process is performed internally by dsolve to arrive at:
>
|
|
| (12) |
A third order ODE example and two integrating factors for it:
>
|
|
| (13) |
>
|
|
| (14) |
>
|
|
| (15) |
For ODE3 above, using its defaults intfactor found two integrating factors. If however we use the try_hard=true option, an integrating factor depending on an arbitrary function is obtained.
>
|
|
| (16) |
Integrating factors can be tested using mutest, which returns zero when the integrating factor is correct, meaning that it cancels the appropriate integrating factor PDE system (see odepde).
>
|
|
| (17) |
A fourth order ODE example and an integrating factor polynomial in the highest possible derivative (for an ODE of order n, mu can depend at most on the nth-1 derivative).
>
|
|
| (18) |
>
|
|
| (19) |
A second order ODE with three integrating factors:
>
|
|
| (20) |
>
|
|
| (21) |
Of the three integrating factors found, only two of them lead to different reductions of order. The reduction obtained using is as follows.
>
|
|
| (22) |
>
|
|
| (23) |
The reduction obtained using :
>
|
|
| (24) |
>
|
|
| (25) |
The reduction obtained using :
>
|
|
| (26) |
>
|
|
| (27) |
When the algorithms implemented in intfactor fail in computing integrating factors - or to investigate the existence of more or different type of integrating factors - we can give a hint to intfactor by using the option _mu = some_mu_form, where some_mu_form contains some unknowns - functions of the ODE variables or just symbols - whose values are to be determined. For example, for the following ODE we use intfactor to compute - if possible - integrating factors of the form for some function to be determined.
>
|
|
| (28) |
>
|
|
| (29) |
>
|
|
| (30) |
In this example, we indicate a form for the integrating factor which depends on 4 symbolic constants to to be determined.
>
|
|
| (31) |
>
|
|
| (32) |
>
|
|
| (33) |
|
|
See Also
|
|
DEtools, DEtools[equinv], DEtools[firint], DEtools[gensys], DEtools[mutest], DEtools[odeadvisor], DEtools[odepde], DEtools[redode], DEtools[symgen], DEtools[symtest], dsolve, odetest, PDEtools, PDEtools[dchange]
|
|