PrimitiveRatRicDE(F, UP, L, LQ)ΒΆ

riccati.spad line 1 [edit on github]

In-field solution of Riccati equations, primitive case.

changeVar: (L, Fraction UP) -> L

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

changeVar: (L, UP) -> L

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

constantCoefficientRicDE: (L, UP -> List F) -> 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, UP -> List F) -> 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, (UP, SparseUnivariatePolynomial UP) -> List UP, UP -> Factored 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.