Linear differential systems

function:ratsolde

FUNCTION: ratsolde - compute the rational solutions of a system of linear
differential equations or a scalar nth order linear
differential equation


CALLING SEQUENCE:
ratsolde(eq, y)
ratsolde(A, x)
ratsolde(A, x, b)


PARAMETERS:
eq - a linear differential equation
A - a square rational function matrix with coefficients over the rationals
y - the unknown function searched for
x - a name
b - a rational function vector

SYNOPSIS:
The call ratsolde(eq, y) computes the set of rational solutions of the
nth order linear differential equation which is given by eq. The equation
must be linear in y and its derivatives. y must be a function of the form
f(x).

The call ratsolde(A, x, b) computes the set of rational vector solutions
of the system Y' = A(x)Y + b.

The output is a parametrized solution which consists of a particular solution
in case of inhomogeneous equations and a parametrised general solution. The
parameters are of the form _C[1],_C[2],.. and stand for arbitrary constants.

If the vector b contains parameters, the algorithm computes conditions on
them which must be fullfilled in order to obtain the solutions. These
conditions are not yet included in the output, however they appear as side
effect in b. This will soon be changed.

More details on the method used can be found in [1].

REFERENCES:

[1] M.Barkatou "On rational solutions of systems of linear differential
equations", Technical Report, LMC-IMAG, 1997. Submitted to Special Issue
of Journal of Symbolic Computation.


EXAMPLES:


A:=
array(1 .. 4, 1 .. 4,[(1, 1)=1/x,(4, 3)=0,(4, 4)=1/x,(1, 3)=-1,(1, 2)=1/x^2,(
1, 4)=0,(3, 1)=0,(2, 4)=1,(4, 1)=1/x,(3, 3)=3/x,(3, 4)=1/x^2,(3, 2)=0,(2, 1)=0,
(2, 3)=4*x,(2, 2)=1/x,(4, 2)=0]);

> ratsolde(A,x);

[
[ 4
[- 4/3 _C[3], x (x _C[1] + 4 x _C[2] + _C[3]),
[

4 ]
3 x _C[1] + 12 x _C[2] - _C[3] ]
1/3 -------------------------------, -12 x _C[2] + 4/3 _C[3]]
x ]


T :=
array(1 .. 9, 1 .. 9,[(6, 6)=4/x^2-2/(x^2+1)*x+1/2/x/(x^2+1)+5/x^3,(3, 8)=0,(
8, 7)=-4/x,(8, 2)=1/6/(x^2+1)+1/6*x^2/(x^2+1),(4, 8)=0,(9, 6)=5/2/x/(x^2+1),(7
, 4)=5/2/x/(x^2+1),(9, 1)=0,(4, 7)=-16*x^2/(x^2+1)-4/x^2/(x^2+1)-8*x^4/(x^2+1)-
12/(x^2+1)-11/2/x/(x^2+1)-5/x^3/(x^2+1),(8, 4)=0,(7, 5)=0,(3, 5)=0,(9, 8)=4,(5
, 7)=0,(6, 3)=5/6*x^2/(x^2+1)+1/2/(x^2+1)+1/3*x^4/(x^2+1),(1, 7)=12/x/(x^2+1)-
48*x^2/(x^2+1)-48/(x^2+1),(2, 7)=0,(8, 1)=0,(1, 1)=-5/x^2+5/(x^2+1)+5/x^2/(x^2+
1)-2/(x^2+1)*x,(8, 8)=2/x-15/2/x/(x^2+1)-4/x^2/(x^2+1)-2/(x^2+1)*x-5/x^3/(x^2+1
)-4/(x^2+1),(5, 8)=-16*x^2/(x^2+1)-4/x^2/(x^2+1)-8*x^4/(x^2+1)-12/(x^2+1)-11/2/
x/(x^2+1)-5/x^3/(x^2+1),(1, 5)=0,(4, 3)=0,(4, 4)=-2/(x^2+1)*x-5/x^2+1/2/x/(x^2+
1),(5, 4)=-4/x,(9, 5)=0,(1, 3)=1,(5, 5)=-2/(x^2+1)*x+1/2/x/(x^2+1)+2/x,(7, 2)=0
,(1, 2)=1,(5, 6)=-5/x,(7, 1)=1/6/(x^2+1)+1/6*x^2/(x^2+1),(7, 3)=0,(6, 2)=0,(6,
5)=4,(8, 6)=0,(1, 4)=-12/x/(x^2+1),(7, 9)=1,(3, 1)=-8,(9, 9)=5/x^3+4/x^2-4/x^2/
(x^2+1)-15/2/x/(x^2+1)-5/x^3/(x^2+1)-4/(x^2+1)-2/(x^2+1)*x,(2, 4)=0,(4, 1)=5/6*
x^2/(x^2+1)+1/2/(x^2+1)+1/3*x^4/(x^2+1),(9, 2)=0,(9, 4)=0,(5, 3)=0,(6, 9)=-16*x
^2/(x^2+1)-4/x^2/(x^2+1)-8*x^4/(x^2+1)-12/(x^2+1)-11/2/x/(x^2+1)-5/x^3/(x^2+1),
(5, 2)=5/6*x^2/(x^2+1)+1/2/(x^2+1)+1/3*x^4/(x^2+1),(3, 9)=12/x/(x^2+1)-48*x^2/(
x^2+1)-48/(x^2+1),(3, 3)=5/(x^2+1)+5/x^3+4/x^2+5/x^2/(x^2+1)-2/(x^2+1)*x,(2, 5)
=-12/x/(x^2+1),(5, 1)=0,(9, 7)=-8,(1, 8)=0,(4, 9)=0,(3, 4)=0,(9, 3)=1/6/(x^2+1)
+1/6*x^2/(x^2+1),(3, 2)=4,(7, 8)=1,(5, 9)=0,(1, 9)=0,(6, 8)=0,(2, 8)=12/x/(x^2+
1)-48*x^2/(x^2+1)-48/(x^2+1),(3, 6)=-12/x/(x^2+1),(6, 4)=-8,(2, 1)=-4/x,(8, 3)=
0,(8, 9)=-5/x,(6, 7)=0,(4, 5)=1,(6, 1)=0,(2, 9)=0,(4, 6)=1,(1, 6)=0,(2, 3)=-5/x
,(8, 5)=5/2/x/(x^2+1),(2, 2)=5/x^2/(x^2+1)+2/x+5/(x^2+1)-2/(x^2+1)*x,(3, 7)=0,(
4, 2)=0,(7, 7)=-4/x^2/(x^2+1)-15/2/x/(x^2+1)-5/x^2-2/(x^2+1)*x-5/x^3/(x^2+1)-4/
(x^2+1),(2, 6)=0,(7, 6)=0]):

ratsolde(T, x);


[ _C[1] _C[1] _C[1] ]
[-3 ------, 0, 0, 0, _C[1], 1/2 ------, 0, 0, 1/2 ------]
[ 2 2 2 ]
[ x + 1 x + 1 x + 1]