Skip to content

Instantly share code, notes, and snippets.

@Observatorio-de-Matematica
Created January 5, 2024 15:19
Show Gist options
  • Save Observatorio-de-Matematica/71664c74cd31f3aca22367fb5997d4a9 to your computer and use it in GitHub Desktop.
Save Observatorio-de-Matematica/71664c74cd31f3aca22367fb5997d4a9 to your computer and use it in GitHub Desktop.
/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/
/* [ Created with wxMaxima version 0.8.6 ] */
/* [wxMaxima: input start ] */
load(grobner);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Vamos a calcular la intersección de dos ideales.
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
Consideramos los ideales a=(F,G) y b=(H,K), siendo:
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
F:X^2+Y;
G:X+Y^2;
H:X-1;
K:Y^4-1;
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Para calcular la intersección de a y b consideramos una nueva indeterminada, T,
y un orden de forma que los monomios con T sean mayores que el resto. Por ejemplo
el orden lexicográfico con T>X>Y.
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
A continuación consideramos el ideal Ta+(1-T)b y calculamos una base de Groebner:
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_reduced_grobner([T*F,T*G,(1-T)*H,(1-T)*K],[T,X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Ahora hacemos la intersección de este ideal con el anillo K[X,Y], lo que equivale
a considerar los elementos de la base de Groebner que pertenecena a este anillo. Así
pues la intersección es el ideal generado por {Y^6+Y^4-Y^2-X*Y+Y-X,Y^7-Y^6+Y^5-Y^3+Y^2-Y,Y^4-X^2}.
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
No es necesario hacer todo este proceso, ya que hay una función que calcula
directamente el ideal eliminación.
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_elimination_ideal([T*F,T*G,(1-T)*H,(1-T)*K],1,[T,X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
La otra aplicación que hemos visto de la teoría de eliminación es el cálculo del cociente
de dos ideales. En primer lugar el cociente (a:H) de un ideal y un polinomio.
Recordemos el proceso; se tiene (a:H)=(a/\(H))/H
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
Para calcular a/\(H) utilizamos el proceso anterior:
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_elimination_ideal([T*F,T*G,(1-T)*H],1,[T,X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Ahora cada uno de estos polinomios hay que dividirlo por H
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_exact_divide(-X*Y^2+Y^2-X^2+X,H,[X,Y]);
poly_exact_divide(X*Y^4-Y^4+X*Y-Y,H,[X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Por lo tanto tenemos que (a:H) es el ideal generado por {-Y^2-X,Y^4+Y}.
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
Veamos el ejemplo de (a:K)
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_elimination_ideal([T*F,T*G,(1-T)*K],1,[T,X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Necesitamos estos elementos por separado para poder trabajar con ellos.
Para esto damos nombre a la lista anterior:
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
aux:%;
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
ahora podemos extraer los dos elementos
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
aux1:first(aux);
aux2:second(aux);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
y para dividirlos por K aplicamos la orden que vimos anteriormente.
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_exact_divide(aux1,K,[X,Y]);
poly_exact_divide(aux2,K,[X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
Por lo tanto el ideal (a:K) es el generado por los polinomios {-Y^2-X,Y^3-Y^2+Y}
[wxMaxima: comment end ] */
/* [wxMaxima: comment start ]
Observa que {-Y^2-X,Y^3-Y^2+Y} es una base de Groebner.
[wxMaxima: comment end ] */
/* [wxMaxima: input start ] */
poly_reduced_grobner([-Y^2-X,Y^3-Y^2+Y],[X,Y]);
/* [wxMaxima: input end ] */
/* [wxMaxima: comment start ]
EJERCICIO. Hacer una lista de ordenes para calcular la intersección de dos ideales
dados por un pequeño número de generadores.
Para esto tenéis que estudiar la forma en que Maxima utiliza las listas de elementos,
y cómo se pueden manipular estos.
[wxMaxima: comment end ] */
/* Maxima can't load/batch files which end with a comment! */
"Created with wxMaxima"$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment