> read `groebner.mpl`; > toinenesimf:=[z^2-x^2-y^2+2*a*x+2*a*z-a^2, y*z-a*y-a*x+a^2, -2*a+x+y]; toinenesimf := 2 2 2 2 2 [z - x - y + 2 a x + 2 a z - a , y z - a y - a x + a , - 2 a + x + y] > joo:=generalsolve(toinenesimf, {x,y,z}); joo := [ 2 2 2 2 2 2 {z = - RootOf(_Z + a ), x = 2 a - RootOf(_Z + a ), y = RootOf(_Z + a )}, 2 2 2 2 {y = RootOf(2 _Z - 2 a _Z - a ), x = 2 a - RootOf(2 _Z - 2 a _Z - a ), 2 2 z = - 2 a + 2 RootOf(2 _Z - 2 a _Z - a )} ] > map(x->evala(subs(x,toinenesimf)),joo); {[0, 0, 0]}
> generalsolve(toinenesimf); [{x = 0, y = 0, a = 0, z = 0}, 2 2 {a = a, y = a + 1/2 RootOf(_Z + 2 a _Z - 2 a ), 2 2 2 2 x = a - 1/2 RootOf(_Z + 2 a _Z - 2 a ), z = RootOf(_Z + 2 a _Z - 2 a )}, {x = 0, y = 0, a = 0, z = 0}, {z = I a, a = a, y = - I a, x = 2 a + I a}, {a = a, x = 2 a - I a, y = I a, z = - I a}]
Tuntemattomat voidaan myös antaa listana, kuten seuraavassa. Tällöin tuntemattomien järjestys kiinnittää leksikografisella järjestyksellä lasketun Groebnerin kannan. Tämän vaikutuksista lisää tuonnempana.
Jos neljänneksi argumentiksi annetaan sana verbose, näkyviin saadaan enemmän informaatiota, polynomiyhtälöiden tapauksessa lasketut Groebner-kannat.
Polynomiyhtälöitä ratkottaessa saadaan Groebnerin kantoja käyttämällä kaikki ratkaisut, joten alkuarvausta ei tässä tapauksessa tarvita. Kolmas argumentti on kuitenkin varattu alkuarvausta varten.
> generalsolve(toinenesimf, [x,y,z], [], `verbose`); The Groebner bases are: [[-2*a+x+y, y+z, y^2+a^2], [-2*a+x+y, 2*a-2*y+z, 2*y^2-2*a*y-a^2]] 2 2 2 2 2 2 [{z = - RootOf(_Z + a ), x = 2 a - RootOf(_Z + a ), y = RootOf(_Z + a )}, 2 2 2 2 {y = RootOf(2 _Z - 2 a _Z - a ), x = 2 a - RootOf(2 _Z - 2 a _Z - a ), 2 2 z = - 2 a + 2 RootOf(2 _Z - 2 a _Z - a )} ]
> a:=1; a := 1 > joo:=generalsolve(toinenesimf, {x,y,z}); 2 2 2 joo := [{y = RootOf(_Z + 1), x = 2 - RootOf(_Z + 1), z = - RootOf(_Z + 1)}, 2 2 {x = 2 - RootOf(2 _Z - 2 _Z - 1), z = 2 RootOf(2 _Z - 2 _Z - 1) - 2, 2 y = RootOf(2 _Z - 2 _Z - 1)} ] > num:=evalf(joo); num := [{x = 2. + 1. I, z = 1. I, y = - 1. I}, {z = -2.732050808, y = -.3660254038, x = 2.366025404}] > map(x->subs(x,toinenesimf),num); -8 -9 [[0, 0, 0], [.1*10 , 0, .2*10 ]]
> fsolve(convert(map(x->x=0,toinenesimf),set), {x,y,z}); {z = -2.732050808, y = -.3660254038, x = 2.366025404} > fsolve(convert(map(x->x=0,toinenesimf),set), {x,y,z}, complex); {z = -1.*I, x = 2.-1.000000000*I, y = 1.000000000*I}