return the polynomial solution of a linear functional system of equations
PolynomialSolution(sys, vars, opts)
PolynomialSolution(A, b, x, case, opts)
PolynomialSolution(A, x, case, opts)
list of equations; linear functional system
list of function variables such as [y1(x), y2(x), ...]; variables to solve for
Matrix with rational elements
Vector with rational elements
name indicating the case of the system; one of 'differential', 'difference', or 'qdifference'
optional arguments of the form 'keyword'=value, where keyword is method or degree
The PolynomialSolution command returns the polynomial 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 the degree of polynomial solutions cannot be bound then FAIL is returned. In this case the problem could be further specified by providing additional equations and/or by fixing the degree bound in advance using the degree option.
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 Ly⁡x=Ay⁡x+b, where L is the operator (either differential, difference, or q-difference), y⁡x 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 form 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.
This function computes the matrix recurrence system corresponding to the given system. This matrix recurrence system is represented by its explicit matrix (the matrix n by n*m, where n is the order of the system, with the leading and trailing matrix of size n by n). Then, this function triangularizes the trailing matrix by using LinearFunctionalSystems[MatrixTriangularization] in order to bound the polynomial solution degree and then builds such a solution.
The solution is the list of polynomials in x corresponding to vars. This solution involves arbitrary constants of the form _c1, _c2, etc.
The optional arguments are method and degree.
'method'='quasimodular' or 'ordinary'
This option indicates the method of EG-eliminations to use. The default is ordinary.
This option sets the upper bound of the degree of polynomial solutions to be found.
If the number of linear independent equations of the system is less than the number of the function variables then the degree of polynomial solutions cannot be bound and FAIL is returned. In this case it is possible either to specify the bound using option of the form 'degree'=n or to extend the system by additional equations, in particular giving the desirable value of some of the function variables (see example).
The error conditions associated with this function are the same as those which are generated by LinearFunctionalSystems[Properties].
This function is part of the LinearFunctionalSystems package, and so it can be used in the form PolynomialSolution(..) 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[PolynomialSolution](..).
Abramov, S. A. "EG-Eliminations." Journal of Difference Equations and Applications, (1999): 393-433.
Download Help Document
What kind of issue would you like to report? (Optional)