Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: response to a Math-Forum post by Robert Lewis
Replies: 14   Last Post: Sep 15, 2011 2:33 AM

 Messages: [ Previous | Next ]
 clicliclic@freenet.de Posts: 1,245 Registered: 4/26/08
response to a Math-Forum post by Robert Lewis
Posted: Sep 11, 2011 5:48 PM

In a Math-Forum post named "Using Groebner Basis routines in Maple"
(which I never saw at the Aioe.org NNTP server)

Robert Lewis wrote on July 9, 2011:
>
> All,
>
> I occasionally use Maple for Groebner basis calculations. I thought I
> knew what to do, but recently have hit a problem I don't understand.
>
> I am aware of the page
>
> http://www.maplesoft.com/support/help/Maple/view.aspx?path=Groebner/Basis_algorithms
>
> I have a system of equations and I want a GB that will produce one
> polynomial that contains only the variable ca. (So I want to solve
> for ca, in essence.) The system of equations is at the end of this
> note.
>
> I have tried
>
> out := fgb_gbasis(sys, [b, c, d, e, f, rr, t50], [ca]);
>
> out := fgb_gbasis(sys, [b, c, d, e, f, t50, rr], [ca])
>
> out := Basis(sys, prod(tdeg(rr, b, c, d, e, f, t50), tdeg(ca)))
>
> out := Basis(sys, lexdeg([b, c, d, e, f, t50, rr], [ca]));
>
> out := Basis(sys, lexdeg([rr, b, c, d, e, f, t50], [ca]))
>
> out := Basis(sys, plex(rr, b, c, d, e, f, t50, ca))
>
> out := Basis(sys, prod(plex(rr, b, c, d, e, f, t50), plex(ca)))
>
> Nothing works. In all cases, there is no polynomial in the GB
> containing ONLY ca.
>
> I tried rearranging the order of the equations. I also tried
> Triangularize, but that crashes Maple after 10 minutes or so. This is
> Maple12.
>
> Robert H. Lewis
>
>
> - e^2 + d^2 - 2*ca*b*d + b^2 ,
> - t50^2*e^2 - e^2 - 2*t50^2*d*e - 2*d*e - t50^2*d^2 - d^2 + t50^2*c^2 + c^2 - rr*t50^2*c - 2*t50*c
> + rr*c + t50^2 + 1 ,
> - t50^2*f^2 - f^2 + t50^2*e^2 + e^2 - 4*t50*e + t50^2 + 1 ,
> e^2 - d*e + d^2 - b^2 ,
> f^2 + d*f + d^2 - c^2 ,
> f^2 - e*f + e^2 - 1,
> rr^2 - 3,
> t50^6 - 33*t50^4 + 27*t50^2 - 3
>

I have played around a bit with this system using the GROEBNER_BASIS
function of Derive 6.10, which computes a minimal/reduced basis for a
lexicographical order of monomials, presumably via the Buchberger
algorithm. In the Derive function, the lexicographical order
is defined by the variable vector supplied as a second argument; thus,
to obtain equations for ca, this variable has to be placed last in the
vector.

Preliminary experiments suggested that the following variable order
might produce a comparatively compact basis,

sys:=[-e^2+d^2-2*ca*b*d+b^2,-t50^2*e^2-e^2-2*t50^2*d*e-2*d*e-t50~
^2*d^2-d^2+t50^2*c^2+c^2-rr*t50^2*c-2*t50*c+rr*c+t50^2+1,-t50^2*~
f^2-f^2+t50^2*e^2+e^2-4*t50*e+t50^2+1,e^2-d*e+d^2-b^2,f^2+d*f+d^~
2-c^2,f^2-e*f+e^2-1,rr^2-3,t50^6-33*t50^4+27*t50^2-3]

GROEBNER_BASIS(sys,[rr,f,e,d,c,b,t50,ca])

but I lost patience and stopped the calculation when the intermediate
result approached 50 MBytes. Instead, I removed the one equation that
depends on t50 alone, t50^6 - 33*t50^4 + 27*t50^2 - 3, and fixed t50 at
small integer values. (I suppose that a solution for the original
irrational roots could be obtained by systematically substituting
nearby rational numbers and interpolating.) On a modern computer, the
calculations for fixed t50 = -1, 0, 1 are just a matter of minutes:

GROEBNER_BASIS(DELETE(sys,8),[rr,f,e,d,c,b,ca])

t50:=-1

[(b+1)^2*(b-1)^2*(2*ca+1)*(2*ca-1),(b+1)^2*(b-1)^2*(b-2*ca),-9*b~
^4-16*b^2*ca^4+20*b^2*ca^2+14*b^2+16*c*ca^4-20*c*ca^2+4*c+16*ca^~
4-20*ca^2-5,3*b^4*ca-4*b^3*ca^2+4*b^3+8*b^2*ca^3-14*b^2*ca+4*b*c~
*ca^2-4*b*c+4*b*ca^2-4*b-8*c*ca^3+8*c*ca-8*ca^3+11*ca,(b+1)*(b-1~
)*(b^2+c-1),3*b^4-4*b^2*ca^2-5*b^2+3*c^2+4*c*ca^2-c+4*ca^2+2,57*~
b^4-36*b^3*ca-8*b^2*ca^2-106*b^2+36*b*c*ca+36*b*ca+8*c*ca^2-8*c+~
8*ca^2+36*d+49,12*b^4-20*b^2*ca^2-13*b^2+20*c*ca^2-2*c+20*ca^2+1~
8*e+19,-87*b^4+36*b^3*ca+40*b^2*ca^2+170*b^2-36*b*c*ca-36*b*ca-4~
0*c*ca^2+40*c-40*ca^2+36*f-83,rr^2-3]

t50:=0

[(ca+1)*(ca-1)*(28*ca^2-25)*(3*b^2-1),(ca+1)*(ca-1)*(3*b^2-1)*(3~
*b^2-7),(3*b^2-1)*(108*b^4-135*b^2+2800*ca^2-2773),108*b^4+924*b~
^2*ca^2-1113*b^2+18*c^2-308*ca^2+335,-1620*b^5*ca-21084*b^3*ca^3~
+23109*b^3*ca+7028*b*ca^3-7523*b*ca+90*d,(-56*b*ca^3+56*b*ca+15*~
e)*(3*b^2-1),108*b^4+1428*b^2*ca^2-1563*b^2-476*ca^2+18*e^2+503,~
540*b^5*ca+6468*b^3*ca^3-7215*b^3*ca-2156*b*ca^3+2345*b*ca-36*e+~
18*f,756*b^4*c+8652*b^2*c*ca^2-9741*b^2*c-2884*c*ca^2+3325*c+108~
*rr]

t50:=1

[(b+1)^2*(b-1)^2*(2*ca+1)*(2*ca-1),(b+1)^2*(b-1)^2*(b+2*ca),9*b^~
4+16*b^2*ca^4-20*b^2*ca^2-14*b^2+16*c*ca^4-20*c*ca^2+4*c-16*ca^4~
+20*ca^2+5,3*b^4*ca+4*b^3*ca^2-4*b^3+8*b^2*ca^3-14*b^2*ca+4*b*c*~
ca^2-4*b*c-4*b*ca^2+4*b+8*c*ca^3-8*c*ca-8*ca^3+11*ca,(b+1)*(1-b)~
*(b^2-c-1),3*b^4-4*b^2*ca^2-5*b^2+3*c^2-4*c*ca^2+c+4*ca^2+2,-57*~
b^4-36*b^3*ca+8*b^2*ca^2+106*b^2-36*b*c*ca+36*b*ca+8*c*ca^2-8*c-~
8*ca^2+36*d-49,-12*b^4+20*b^2*ca^2+13*b^2+20*c*ca^2-2*c-20*ca^2+~
18*e-19,87*b^4+36*b^3*ca-40*b^2*ca^2-170*b^2+36*b*c*ca-36*b*ca-4~
0*c*ca^2+40*c+40*ca^2+36*f+83,rr^2-3]

where the Groebner-basis elements have subsequently been factored.
Although no first element does here depend on ca alone, solutions for
the variable pair [ca,b] are easily obtained from the corresponding
subset of two or three elements:

[b=-1,b=1]

[b=-SQRT(3)/3,b=SQRT(3)/3,ca=1 AND b=1,ca=1 AND b=-1,ca=1 AND b=~
1/2,ca=1 AND b=-1/2,ca=-1 AND b=1,ca=-1 AND b=-1,ca=-1 AND b=1/2~
,ca=-1 AND b=-1/2,ca=5*SQRT(7)/14 AND b=SQRT(21)/3,ca=5*SQRT(7)/~
14 AND b=-SQRT(21)/3,ca=-5*SQRT(7)/14 AND b=SQRT(21)/3,ca=-5*SQR~
T(7)/14 AND b=-SQRT(21)/3]

[b=-1,b=1]

for t50 = -1, 0, 1 respectively. Thus all three cases admit solutions
where ca is arbitrary. For other values like t50 = 2, however, Derive's
algorithm again requires much more memory, and takes longer than I cared
too wait.

Martin.