OreTools[FractionFree]
RightEuclidean
return the subresultant sequence of first kind
RightPseudoQuotient
return the right pseudo-quotient
RightPseudoRemainder
return the right pseudo-remainder
Calling Sequence
Parameters
Description
Examples
References
RightEuclidean(Poly1, Poly2, A, 'c1', 'c2')
RightPseudoRemainder(Poly1, Poly2, A, 'mult', 'pquo')
RightPseudoQuotient(Poly1, Poly2, A, 'mult', 'prem')
Poly1, Poly2
-
Ore polynomials; to define an Ore polynomial, use the OrePoly structure.
A
Ore algebra; to define an Ore algebra, use the SetOreRing function.
c1, c2, mult, pquo, prem
(optional) unevaluated names.
The RightEuclidean(Poly1, Poly2, A) calling sequence returns a list [m, S] where m is a positive integer and S is an array with m elements storing the subresultant sequence of the first kind of Poly1 and Poly2.
If Poly1 and Poly2 are fraction-free, and the commutation rule of the Ore algebra A are also fraction-free, then the output of RightEuclidean is fraction-free.
If the optional fourth argument to the RightEuclidean command c1 is specified, the first co-sequence of Poly1 and Poly2 is assigned to c1, so that:
c1i⁢Poly2=Si⁢⁢⁢mod Poly1,i=1,2,...,m
and c1[m+1] Poly2 is a least common left multiple (LCLM) of Poly1 and Poly2.
If the optional fifth argument to the RightEuclidean command c2 is specified, the second co-sequence of Poly1 and Poly2 is assigned to c2, so that:
c1i⁢Poly2+c2i⁢Poly1=Si⁢⁢⁢i=1,2,...,m
and c1[m+1] Poly2 = - c2[m+1] Poly1 is an LCLM of Poly1 and Poly2.
The RightPseudoRemainder(Poly1, Poly2, A) calling sequence returns the right pseudo-remainder R of Poly1 and Poly2 such that:
mult Poly1=pquo Poly2+R
where the degree of R is less than that of Poly2, pquo is the right pseudo-quotient, and mult (the multiplier) is the degree⁡Poly1−degree⁡Poly2+1th sigma power of the leading coefficient of Poly2.
If the fourth argument 'mult' is specified, it is assigned the multiplier defined above. If the fifth argument 'pquo' is specified, it is assigned the right pseudo-quotient defined above.
The RightPseudoQuotient(Poly1, Poly2, A) calling sequence returns the right pseudo-quotient Q of Poly1 and Poly2 such that:
mult Poly1=Q⁢Poly2+prem
where the degree of the right pseudo-remainder prem is less than that of Poly2 and mult (the multiplier) is the degree⁡Poly1−degree⁡Poly2+1th sigma power of the leading coefficient of Poly2.
If the fourth argument 'mult' is specified, it is assigned the multiplier defined above. If the fifth argument 'prem' is specified, it is assigned the right pseudo-remainder defined above.
with⁡OreTools:
with⁡OreToolsFractionFree:
A≔SetOreRing⁡x,differential
A≔UnivariateOreRing⁡x,differential
Ore1≔OrePoly⁡1,3⁢x,x2−1+x,23⁢x+1
Ore1≔OrePoly⁡1,3⁢x,x2−x−1,23⁢x+1
Ore2≔OrePoly⁡x,x,x2+x+1
V≔RightEuclidean⁡Ore2,Ore1,A,c1,c2
V≔4,S
Check the result
m≔V1;S≔V2
m≔4
S≔S
print⁡S
OrePoly⁡1,3⁢x,x2−x−1,23⁢x+1OrePoly⁡x,x,x2+x+1OrePoly⁡−x5+x4+49⁢x3+7⁢x2−20⁢x,2⁢x5−17⁢x4+32⁢x3−14⁢x2−20⁢x−1OrePoly⁡x8+3⁢x7−209⁢x6+1005⁢x5+61⁢x4−587⁢x3+971⁢x2+35⁢x−20
foritomdoW1≔Multiply⁡c1i,Ore2,A;W2≔Multiply⁡c2i,Ore1,A;W≔Add⁡W1,W2;C≔Minus⁡W,Si;print⁡Cenddo:
OrePoly⁡0
W3≔Multiply⁡c1m+1,Ore2,A:
W4≔Multiply⁡c2m+1,Ore1,A:
Add⁡W3,W4
Poly1≔OrePoly⁡x,0,x+1,x+2
Poly2≔OrePoly⁡x,x+1,x2−1
B≔SetOreRing⁡x,shift
B≔UnivariateOreRing⁡x,shift
R≔RightPseudoRemainder⁡Poly1,Poly2,B
R≔OrePoly⁡x5+x4−3⁢x3+4⁢x,−2⁢x4−6⁢x3−x2+9⁢x+6
R≔RightPseudoRemainder⁡Poly1,Poly2,B,m,Q
m
x4+2⁢x3−x2−2⁢x
Q
OrePoly⁡x3+2⁢x2−2⁢x−4,x2−1⁢x+2
evalb⁡factor⁡Add⁡Multiply⁡Q,Poly2,B,R=factor⁡ScalarMultiply⁡m,Poly1
true
Q≔RightPseudoQuotient⁡Poly1,Poly2,A
Q≔OrePoly⁡x3−2⁢x2−8⁢x−3,x2−1⁢x+2
Q≔RightPseudoQuotient⁡Poly1,Poly2,B,m,R
Q≔OrePoly⁡x3+2⁢x2−2⁢x−4,x2−1⁢x+2
R
OrePoly⁡x5+x4−3⁢x3+4⁢x,−2⁢x4−6⁢x3−x2+9⁢x+6
Li, Z. "A subresultant theory for Ore polynomials with applications." Proc. of ISSAC'98. pp. 132-139. Edited by O. Gloor. ACM Press, 1998.
See Also
OreTools
OreTools/OreAlgebra
OreTools/OrePoly
OreTools[Euclidean]
OreTools[Quotient]
OreTools[Remainder]
OreTools[SetOreRing]
Download Help Document