PrimitiveRatRicDE(F, UP, L, LQ)

riccati.spad line 1 [edit on github]

In-field solution of Riccati equations, primitive case.

changeVar : (L, UP) -> L

changeVar(+/[ai D^i], a) returns the operator +/[ai (D+a)^i].

changeVar : (L, Fraction(UP)) -> L

changeVar(+/[ai D^i], a) returns the operator +/[ai (D+a)^i].

constantCoefficientRicDE : (L, Mapping(List(F), UP)) -> List(Record(constant : F, eq : L))

constantCoefficientRicDE(op, ric) returns [[a1, L1], [a2, L2], ... , [ak, Lk]] such that any rational solution with no polynomial part of the associated Riccati equation of op y = 0 must be one of the ai's in which case the equation for z = y e^-int ai is Li z = 0. ric is a Riccati equation solver over F, whose input is the associated linear equation.

denomRicDE : L -> UP

denomRicDE(op) returns a polynomial d such that any rational solution of the associated Riccati equation of op y = 0 is of the form p/d + q'/q + r for some polynomials p and q and a reduced r. Also, deg(p) < deg(d) and gcd(d, q) = 1.

leadingCoefficientRicDE : L -> List(Record(deg : NonNegativeInteger, eq : UP))

leadingCoefficientRicDE(op) returns [[m1, p1], [m2, p2], ... , [mk, pk]] such that the polynomial part of any rational solution of the associated Riccati equation of op y = 0 must have degree mj for some j, and its leading coefficient is then a zero of pj. In addition, m1>m2> ... >mk.

polyRicDE : (L, Mapping(List(F), UP)) -> List(Record(poly : UP, eq : L))

polyRicDE(op, zeros) returns [[p1, L1], [p2, L2], ... , [pk, Lk]] such that the polynomial part of any rational solution of the associated Riccati equation of op y=0 must be one of the pi's (up to the constant coefficient), in which case the equation for z=y e^-int p is Li z =0. zeros is a zero finder in UP.

singRicDE : (L, Mapping(List(UP), UP, SparseUnivariatePolynomial(UP)), Mapping(Factored(UP), UP)) -> List(Record(frac : Fraction(UP), eq : L))

singRicDE(op, zeros, ezfactor) returns [[f1, L1], [f2, L2], ... , [fk, Lk]] such that the singular part of any rational solution of the associated Riccati equation of op y=0 must be one of the fi's (up to the constant coefficient), in which case the equation for z=y e^-int p is Li z=0. zeros(C(x), H(x, y)) returns all the P_i(x)'s such that H(x, P_i(x)) = 0 modulo C(x). Argument ezfactor is a factorisation in UP, not necessarily into irreducibles.