Linear differential systems
function:reg_sols
FUNCTION: reg_sols - compute the regular formal solutions of a system of
linear differential equations
CALLING SEQUENCE:
reg_sols(A, x, t)
reg_sols(A, x = x_0, t)
reg_sols(A, x = x_0, t, k)
reg_sols(A, b, x, t)
reg_sols(A, b, x = x_0, t)
reg_sols(A, b, x = x_0, t, k)
PARAMETERS:
A - a square matrix containing rational functions with coefficients in
the rationals or an algebraic extension of the rationals
b - (optional) a list or vector of rational functions
x - a name
x_0 - a rational or an algebraic number or infinity
t - a name
k - (optional) an integer
SYNOPSIS:
This function computes the subset of regular formal solutions of the linear
differential system Y'=AY+b at the point x_0. They are of the form t^lambda*z
where lambda is an algebraic number and z = z_0+z_1 log(t)+ .. +z_s log^s(t)
with the z_i formal power series in t with coefficients in the constant
coefficient field of A extended by lambda. It holds t = x-x_0 for x_0 <>
infinity and t = 1/x otherwise.
The vector b may depend linearly on parameters. If b <> 0, only logarithm
free series solutions will be computed.
The regular formal solutions are represented as general solution involving
constants of the form _C[1],_C[2],...which stand for arbitrary values.
The output is a list of pairs [r, c] where r is a parametrized regular
solution and c a set of conditions on the parameters of b which must be
satisfied. The set c may be empty.
The optional integer k gives the order to which the series solutions should
be computed. If k is not passed as argument, the global variable Order is
used.
The set of regular formal solutions is only computed completely if k >
max_diff, where max_diff denotes the maximal integer difference of the
roots of the indicial equation. This value can be inspected by setting
infolevel[isolde] := 4 and executing the reg_sols function.
REFERENCES:
[1] M. Barkatou, E.Pfluegel "An Algorithm Computing the Regular Formal
Solution of a System of Linear Differential Equations", Technical
Report, IMAG RR-988, available at http://www-lmc.imag.fr/~pfluegel
EXAMPLES:
A:=
array(1 .. 4, 1 .. 4,[(1, 1)=1/x,(3, 3)=3/x,(2, 2)=1/x,(1, 4)=0,(1, 2)=1/x^2,
(2, 4)=1,(4, 1)=1/x,(1, 3)=-1,(2, 3)=4*x,(4, 3)=0,(3, 4)=1/x^2,(4, 2)=0,(3, 1)=
0,(4, 4)=1/x,(3, 2)=0,(2, 1)=0]);
[ 1 ]
[ 1/x ---- -1 0 ]
[ 2 ]
[ x ]
[ ]
[ 0 1/x 4 x 1 ]
A := [ ]
[ 1 ]
[ 0 0 3/x ---- ]
[ 2 ]
[ x ]
[ ]
[ 1/x 0 0 1/x ]
> reg_sols(A,x,t,4);
[ 2 3 3 2
[[[-3 t _C[2] + 4 _C[3] t, t _C[4] + t ln(t) _C[2] - 3 _C[3] t ,
_C[3] + t _C[4] + ln(t) t _C[2],
2 2 ]
(-3 _C[4] + _C[2]) t - 4 _C[3] t - 3 t ln(t) _C[2]]/t, {}]]
> reg_sols(A,x=infinity,t,6);
[ 5 4
[[[- 4/3 _C[6] t + 12 t _C[2],
3 4 3
_C[4] + t (4 _C[5] + 4 _C[2]) + t _C[6] + 4 t ln(t) _C[2],
2 5 5
_C[4] t + (4 _C[5] + 4 _C[2]) t + 4 t ln(t) _C[2],
5 4 4 ] / 5
4/3 _C[6] t + (-12 _C[5] - 16 _C[2]) t - 12 t ln(t) _C[2]] / t , {}]]
/
A:=
array(1 .. 3, 1 .. 3,[(2, 2)=7/x,(1, 3)=2/x,(1, 1)=-1,(3, 2)=9/x^2,(1, 2)=-5/x^
2,(3, 3)=-5,(2, 3)=-4,(2, 1)=4,(3, 1)=2/x]);
[ 5 ]
[-1 - ---- 2/x]
[ 2 ]
[ x ]
[ ]
A := [ 4 7/x -4 ]
[ ]
[ 9 ]
[2/x ---- -5 ]
[ 2 ]
[ x ]
%1 [/159661 62263 27
[[t [|------ _C[1] + ------ %1 _C[1]| t - -- _C[1] - 2/59 %1 _C[1],
[459 389459 / 59
(7/59 %1 _C[1] + 6/59 _C[1]) t,
/ 646809 37613 ]
|- ------ _C[1] - ------ %1 _C[1]| t + _C[1]], {}],
389459 389459 / ]
2 [ 97 85 ]
[t [_C[2] - -- t _C[2], 0, _C[2] - -- t _C[2]], {}]]
[ 41 41 ]
2
%1 := RootOf(_Z - 4 _Z + 44)