3 votos

Macaulay2: ¿Cómo calcular el resto al dividir un polinomio por un conjunto de polinomios (en algún orden)?

Estoy escribiendo el Criterio de Buchberger en un programa en Macaulay2 para comprobar si el conjunto de polinomios que tengo forman o no una base de Grobner para el ideal que genera. Sin embargo, no he sido capaz de encontrar un método que me dé el resto cuando un polinomio, digamos $f$ se divide por un conjunto de polinomios $G=\{g_1, g_2, ..., g_t\}$ en algún orden. ¿Sabe alguien si existe este método y, en caso afirmativo, cómo se llama?

Aunque no es lo único que tengo, aquí está la parte del programa en la que intento aplicar el Criterio de Buchberger:

n=0;
for i to #polynomials-2 do
    (
        for j from i+1 to #polynomials-1 do 
    (
Spoly := lcm(leadTerm(polynomials#i),leadTerm(polynomials#j))/leadTerm(polynomials#i)*polynomials#i-lcm(leadTerm(polynomials#i),leadTerm(polynomials#j))/leadTerm(polynomials#j)*polynomials#j;
remainder := Spoly%polynomials;
if remainder == 0 then n=n+1;
  );
    );
    if n == binomial(#polynomials, 2) then print "The polynomials form a Grobner basis for the ideal it generates." else print "The polynomials don't form a Grobner basis for the ideal it generates."

En los códigos de arriba, uso % como el método que estoy buscando - pero no funciona para un polinomio que se divide por una lista de polinomios.

1voto

Ricardo Buring Puntos 521

Parece que esto no está incorporado (al menos, no está expuesto a los usuarios), pero es bastante fácil de conseguir:

Dada una ordenación monomial, dividiendo un polinomio $f$ por un pedido lista de polinomios $f_1,\ldots,f_s$ medios para expresar $$f = q_1f_1 + \ldots + q_sf_s + r,$$ donde $r=0$ o ninguno de los monomios de $r$ son divisibles por cualquiera de $LT(f_1), \ldots, LT(f_s)$ .

Algoritmo. Para empezar, configure $q_1:= 0, \ldots, q_s :=0$ y $r := 0$ e introducir $p := f$ .

Mientras que $p \neq 0$ eliminamos $LT(p)$ (y posiblemente más) de $p$ de la siguiente manera:

  • Intenta encontrar el índice más pequeño $i$ tal que $LT(f_i)$ divide $LT(p)$ .

    • Si $i$ se encuentra (paso de la división): fijar $q_i := q_i + LT(p)/LT(f_i)$ y $p := p - (LT(p)/LT(f_i))f_i$ .
    • Si no hay tal $i$ existe (paso restante), entonces establece $r := r + LT(p)$ y $p := p - LT(p)$ .

Por último, devuelve $(q_1,\ldots,q_s)$ y $r$ .

Ver Ideales, variedades y algoritmos 4ª ed. de Cox, Little y O'Shea, capítulo 2, $\S$ 3, Teorema 3, pp. 64 - 66. Dan un pseudocódigo más imperativo que debería ser fácil de traducir a Macaulay2. Es un buen ejercicio de programación.

-3voto

ANJAN SAMANTA Puntos 46

Si te dan f y g dos polinomios el resto viene dado por f % g. Supongamos ahora que te dan con G ideal y G=(g1,g2,...,gn). entonces el resto cuando f se divide por G debe ser f % G. Espero que esto ayude.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X