|
Calling Sequence
|
|
RationalSolution(sys, vars, opts)
RationalSolution(A, b, x, case, opts)
RationalSolution(A, x, case, opts)
|
|
Parameters
|
|
sys
|
-
|
list of equations; linear functional system
|
vars
|
-
|
list of function variables such as [y1(x), y2(x), ...]; variables to solve for
|
A
|
-
|
Matrix with rational elements
|
b
|
-
|
Vector with rational elements
|
x
|
-
|
independent variable
|
case
|
-
|
name indicating the case of the system; one of 'differential', 'difference', or 'qdifference'
|
opts
|
-
|
optional arguments of the form 'keyword'=value where keyword is one of method, denom, numdegree, hybrid, or use_constraints
|
|
|
|
|
Description
|
|
•
|
The RationalSolution command returns the rational solutions of the given linear functional system of equations with polynomial coefficients. If such a solution does not exist, then the empty list is returned. If either the denominator or the degree of numerator of rational solutions cannot be bound then FAIL is returned. In this case the problem could be further specified by providing additional equations or by fixing the degree and/or denominator bound in advance using numdegree and denom options.
|
|
The system parameter is entered either in list form (a list of equations sys and a list of function variables vars to solve for), or in matrix form (matrix A, vector b, and the independent variable x, where the vector b is optional).
|
|
The matrix form specifies the system , where L is the operator (either differential, difference, or q-difference), is the vector of the functions to solve for, A is a rational matrix, and b is a rational vector (right-hand side).
|
|
For the matrix from of the calling sequence, the case of the system must be specified as one of 'differential', 'difference', or 'qdifference'. If b is not specified, the system is assumed to be homogeneous.
|
•
|
If the option 'use_constraints'='true' is used, then the additional constraints on derivatives are added to the system. Additional constraints are consequences of the given system. They have the form , where is a polynomial and is a new unknown function. Using the constraints may speed up the solving of the system in some cases.
|
•
|
The solution is the list of rational functions in x, corresponding to vars. This solution involves arbitrary constants of the form _c1, _c2, etc.
|
•
|
If the number of linear independent equations of the system is less than the number of the function variables then the denominator and the degree of numerator of rational solutions cannot be bound and FAIL is returned. In this case it is possible either to specify the bounds using options of the form 'numdegree'=n and 'denom'=u or to extend the system by additional equations, in particular giving the desirable value of some of the function variables (see example).
|
•
|
This function is part of the LinearFunctionalSystems package, and so it can be used in the form RationalSolution(..) only after executing the command with(LinearFunctionalSystems). However, it can always be accessed through the long form of the command by using the form LinearFunctionalSystems[RationalSolution](..).
|
|
|
Options
|
|
•
|
The optional arguments are method, denom, numdegree, hybrid, and use_constraints.
|
|
method='quasimodular' or 'ordinary'
|
|
Indicates the version of EG-eliminations to use. The default is 'ordinary'.
|
|
Specifies the polynomial u bounding the denominator of rational solutions to be found
|
|
Sets the upper bound of the degree of the numerator of the polynomial solutions to be found (in respect to the specified denominator).
|
|
use_constraints=true or false
|
|
Specifies whether RationalSolution function should use additional constraints on derivatives. The default is false. (applicable only to differential systems)
|
|
|
Examples
|
|
>
|
|
>
|
|
>
|
|
>
|
|
| (1) |
>
|
|
>
|
|
| (2) |
>
|
|
>
|
|
The number of variables is bigger than the number of equations
>
|
|
specify options 'denom' and 'numdegree'
>
|
|
| (4) |
or extend the system
>
|
|
>
|
|
| (5) |
|
|
References
|
|
|
Abramov, S. A., and Polyakov, S.P. "Improved universal denominators" Programming and Computer Software 33, N. 3 (2007): 132-138.
|
|
Abramov, S. A., Bronstein M., Khmelnov D.E. "On regular and logarithmic solutions of ordinary linear differential systems" Proc. of CASC'2005, (2005): 1-12.
|
|
Abramov, S. A., Bronstein M. "On solutions of linear functional systems" Proc. of ISAAC'2001, (2001): 1-6.
|
|
Abramov, S. A. "EG-Eliminations." Journal of Difference Equations and Applications, (1999): 393-433.
|
|
|
|