División de polinomios Algoritmos para la división Dados un polinomio F y una familia de polinomios G1 , ..., Gt , para hacer la división de F por esta familia basta ejecutar la siguiente orden. In[30]:= Out[30]= F = X^3 Y^3 Z^3 + X^2 Y^2 Z^2 + X Y Z + 1 G1 = X ^ 3 Y + Y ^ 2 Z ^ 2 + X Y Z ^ 2 + 1 G2 = X Z + Y ^ 3 - Y Z ^ 2 - 1 Aux = PolynomialReduce@F, 8G1, G2<, 8X, Y, Z<D 1 + X Y Z + X2 Y2 Z2 + X3 Y3 Z3 Out[31]= 1 + X3 Y + X Y Z2 + Y2 Z2 Out[32]= - 1 + Y3 + X Z - Y Z2 Out[33]= 99Y2 Z3 , Y + Y2 - Y5 + X Y2 Z + Y3 Z2 - Y3 Z4 =, 1 + Y + Y2 - Y4 - 2 Y5 + Y8 + Y2 Z2 + 2 Y3 Z2 - 2 Y6 Z2 - Y2 Z3 - Y3 Z4 + Y4 Z4 + Y6 Z4 - Y4 Z5 - Y4 Z6 = La salida tiene dos componentes, la primera contiene los cocientes, y la segunda el resto. Podemos comporbar el resutlado: In[26]:= Out[26]= Expand@Aux@@1, 1DD * G1 + Aux@@1, 2DD * G2 + Aux@@2DDD F True Como consecuencia no es necesario desarrollar una función que nos realice esta tarea. También es una orden de Mathematica el cálculo de la base de Groebner 2 Polinomios-03.nb In[34]:= Out[34]= Out[35]= Out[36]= GroebnerBasis@8G1, G2<, 8X, Y, Z<D GroebnerBasis@8G1, G2<, 8X, Y, Z<, DegreeLexicographicD GroebnerBasis@8G1, G2<, 8X, Y, Z<, DegreeReverseLexicographicD 9- Y + 3 Y4 - 3 Y7 + Y10 - 3 Y2 Z2 + 6 Y5 Z2 - 3 Y8 Z2 - Z3 - Y Z4 - 3 Y3 Z4 + Y4 Z4 + 3 Y6 Z4 - Y2 Z5 - Y2 Z6 - Y4 Z6 , - 1 + Y3 + X Z - Y Z2 , X Y - 2 X Y4 + X Y7 + 2 Y2 Z - 4 Y5 Z + 2 Y8 Z + Z2 + Y Z3 + 3 Y3 Z3 - Y4 Z3 - 3 Y6 Z3 + Y2 Z4 + Y2 Z5 + Y4 Z5 , - X2 Y - Y2 + X2 Y4 + 2 Y5 - Y8 - Z - Y Z2 - 2 Y3 Z2 + Y4 Z2 + 2 Y6 Z2 - Y2 Z3 - Y2 Z4 - Y4 Z4 , 1 + X3 Y + Y Z - Y4 Z + Y2 Z2 + Y2 Z3 = 9- Y + 3 Y4 - 3 Y7 + Y10 - 3 Y2 Z2 + 6 Y5 Z2 - 3 Y8 Z2 - Z3 - Y Z4 - 3 Y3 Z4 + Y4 Z4 + 3 Y6 Z4 - Y2 Z5 - Y2 Z6 - Y4 Z6 , - 1 + Y3 + X Z - Y Z2 , X Y - 2 X Y4 + X Y7 + 2 Y2 Z - 4 Y5 Z + 2 Y8 Z + Z2 + Y Z3 + 3 Y3 Z3 - Y4 Z3 - 3 Y6 Z3 + Y2 Z4 + Y2 Z5 + Y4 Z5 , - X2 Y - Y2 + X2 Y4 + 2 Y5 - Y8 - Z - Y Z2 - 2 Y3 Z2 + Y4 Z2 + 2 Y6 Z2 - Y2 Z3 - Y2 Z4 - Y4 Z4 , 1 + X3 Y + Y Z - Y4 Z + Y2 Z2 + Y2 Z3 = 9- Y + 3 Y4 - 3 Y7 + Y10 - 3 Y2 Z2 + 6 Y5 Z2 - 3 Y8 Z2 - Z3 - Y Z4 - 3 Y3 Z4 + Y4 Z4 + 3 Y6 Z4 - Y2 Z5 - Y2 Z6 - Y4 Z6 , - 1 + Y3 + X Z - Y Z2 , X Y - 2 X Y4 + X Y7 + 2 Y2 Z - 4 Y5 Z + 2 Y8 Z + Z2 + Y Z3 + 3 Y3 Z3 - Y4 Z3 - 3 Y6 Z3 + Y2 Z4 + Y2 Z5 + Y4 Z5 , - X2 Y - Y2 + X2 Y4 + 2 Y5 - Y8 - Z - Y Z2 - 2 Y3 Z2 + Y4 Z2 + 2 Y6 Z2 - Y2 Z3 - Y2 Z4 - Y4 Z4 , 1 + X3 Y + Y Z - Y4 Z + Y2 Z2 + Y2 Z3 = Observa la complejidad que alcanzan las bases de Groebner aún al tratar con polinomios tan simples. In[45]:= Out[45]= Out[46]= Out[47]= GroebnerBasis@8X ^ 2 Y ^ 2 + X ^ 2 Y Z - X Y ^ 2 Z ^ 2 + 1, X Z + Y Z + Z ^ 2 - 1<, 8X, Y, Z<D GroebnerBasis@8X ^ 2 Y ^ 2 + X ^ 2 Y Z - X Y ^ 2 Z + 1, X Z + Y Z + Z ^ 2 - 1<, 8X, Y, Z<, DegreeLexicographicD GroebnerBasis@8X ^ 2 Y ^ 2 + X ^ 2 Y Z - X Y ^ 2 Z + 1, X Z ^ 2 + Y Z ^ 2 + Z ^ 3 - 1<, 8X, Y, Z<, DegreeReverseLexicographicD 9Y2 + Y Z - 2 Y3 Z + Z2 - 4 Y2 Z2 + Y4 Z2 - 2 Y Z3 - Y2 Z3 + 3 Y3 Z3 + 3 Y2 Z4 + Y3 Z4 + Y Z5 + Y2 Z5 , - 1 + X Z + Y Z + Z2 , Y + X Y2 - Y3 + Z - 3 Y2 Z + Y4 Z - 2 Y Z2 - Y2 Z2 + 3 Y3 Z2 + 3 Y2 Z3 + Y3 Z3 + Y Z4 + Y2 Z4 = 9Y2 + Y Z - 2 Y3 Z + Z2 - 5 Y2 Z2 + Y4 Z2 - 2 Y Z3 + 4 Y3 Z3 + 4 Y2 Z4 + Y Z5 , - 1 + X Z + Y Z + Z2 , Y + X Y2 - Y3 + Z - 4 Y2 Z + Y4 Z - 2 Y Z2 + 4 Y3 Z2 + 4 Y2 Z3 + Y Z4 = 9Y2 + Y Z - 2 Y3 Z2 - 5 Y2 Z3 + Z4 - 2 Y Z4 + Y4 Z4 + 4 Y3 Z5 + 4 Y2 Z6 + Y Z7 , - 1 + X Z2 + Y Z2 + Z3 , X Y2 - Y3 + X Y Z - 3 Y2 Z + Z2 - Y Z2 + Y4 Z2 + 4 Y3 Z3 + 4 Y2 Z4 + Y Z5 = FIN