LinearFunctionalSystems[PolynomialSolution]  return the polynomial solution of a linear functional system of equations

Calling Sequence


PolynomialSolution(sys, vars, opts)
PolynomialSolution(A, b, x, case, opts)
PolynomialSolution(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 method or degree





Description


•

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 , where L is the operator (either differential, difference, or qdifference), is the vector of the functions to solve for, A is a rational matrix, and b is a rational vector (righthand 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 EGeliminations 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).

•

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](..).



Examples


>


>


>


>


 (1) 
>


>


>


 (2) 
>


>


>


 (3) 
>


 (4) 
>


>


 (5) 


References



Abramov, S. A. "EGEliminations." Journal of Difference Equations and Applications, (1999): 393433.


