Articulo de referencia

Máximo común divisor de un polinomio

En álgebra, el máximo común divisor ( a menudo abreviado como MCD ) de dos polinomios es un polinomio del mayor grado posible que es factor de ambos polinomios originales. Este ...

En álgebra, el máximo común divisor ( a menudo abreviado como MCD ) de dos polinomios es un polinomio del mayor grado posible que es factor de ambos polinomios originales. Este concepto es análogo al máximo común divisor de dos números enteros.

En el caso importante de polinomios univariados sobre un cuerpo , el MCD polinomial se puede calcular como el MCD entero, utilizando el algoritmo euclidiano con división larga . El MCD polinomial está definido solo hasta la multiplicación por una constante invertible.

La similitud entre el MCD entero y el MCD polinomial permite extender a los polinomios univariados todas las propiedades que se pueden deducir del algoritmo euclidiano y la división euclidiana . Además, el MCD polinomial posee propiedades específicas que lo convierten en un concepto fundamental en diversas áreas del álgebra. Generalmente, las raíces del MCD de dos polinomios son las raíces comunes de ambos, lo que proporciona información sobre las raíces sin necesidad de calcularlas. Por ejemplo, las raíces múltiples de un polinomio son las raíces del MCD del polinomio y su derivada, y cálculos posteriores del MCD permiten calcular la factorización libre de cuadrados del polinomio, lo que proporciona polinomios cuyas raíces son las raíces de una multiplicidad dada del polinomio original.

El máximo común divisor (MCD) puede definirse y, de forma más general, existe para polinomios multivariables sobre un cuerpo, sobre el anillo de los enteros y sobre cualquier dominio de factorización única . Existen algoritmos para calcularlo una vez que se dispone de un algoritmo de MCD en el anillo de coeficientes. Estos algoritmos proceden mediante una recursión sobre el número de variables para reducir el problema a una variante del algoritmo euclidiano. Son una herramienta fundamental en álgebra computacional , ya que los sistemas de álgebra computacional los utilizan sistemáticamente para simplificar fracciones: esta fue la motivación de gran parte de la teoría moderna del MCD de polinomios.

Definición general

Sean p y q polinomios con coeficientes en un dominio de integridad F , típicamente un cuerpo de los números enteros. El máximo común divisor de p y q es un polinomio d que divide a p y q , y tal que todo divisor común de p y q también divide a d . Todo par de polinomios (no ambos cero) tiene un MCD si y solo si F es un dominio de factorización único .

Si F es un cuerpo y p y q no son ambos cero, un polinomio d es el máximo común divisor si y solo si divide a p y q , y tiene el mayor grado entre los polinomios que poseen esta propiedad. Si p = q = 0 , el MCD es 0; sin embargo, algunos autores consideran que no está definido en este caso.

El máximo común divisor de p y q se suele denotar como mcd( p , q ) .

El máximo común divisor es único salvo por la multiplicación por una constante invertible. Es decir, si d es un MCD de p y q , entonces el polinomio c es otro MCD si y solo si existe un elemento invertible u de F tal que do=d y d=1do.{\displaystyle c=ud\quad {\text{ y }}\quad d=u^{-1}c.}En el caso de los enteros, esta ambigüedad puede eliminarse eligiendo el único MCD positivo, en lugar del negativo. Para polinomios univariados sobre un cuerpo, se puede elegir el MCD estándar como la única opción mónica (con coeficiente principal 1), pero sobre anillos de coeficientes más generales no hay una opción estándar. Por lo tanto, igualdades como d = mcd( p , q ) o mcd( p , q ) = mcd( r , s ) deben entenderse como " d es un MCD de p y q " y " p y q tienen el mismo conjunto de MCD que r y s ". En particular, mcd( p , q ) = 1 significa que las constantes invertibles son los únicos divisores comunes: en este caso, por analogía con el anillo de enteros, se dice que p y q sonpolinomios coprimos .

Propiedades

  • Como se indicó anteriormente, el MCD de dos polinomios existe si los coeficientes pertenecen a un cuerpo, al anillo de los enteros o, más generalmente, a un dominio de factorización único .
  • Si c es cualquier divisor común de p y q , entonces c divide a su MCD.
  • mcd(pag,q)=mcd(q,pag).{\displaystyle \gcd(p,q)=\gcd(q,p).}
  • mcd(pag,q)=mcd(q,pag+rq){\displaystyle \gcd(p,q)=\gcd(q,p+rq)}para cualquier polinomio r . Esta propiedad es la base de la demostración del algoritmo euclidiano.
  • Para cualquier elemento invertible k del anillo de los coeficientes,mcd(pag,q)=mcd(pag,kq){\displaystyle \gcd(p,q)=\gcd(p,kq)}.
  • Por esomcd(pag,q)=mcd(a1pag+b1q,a2pag+b2q){\displaystyle \gcd(p,q)=\gcd(a_{1}p+b_{1}q,a_{2}p+b_{2}q)}para cualquier escalara1,b1,a2,b2{\displaystyle a_{1},b_{1},a_{2},b_{2}}de tal manera quea1b2a2b1{\displaystyle a_{1}b_{2}-a_{2}b_{1}}es invertible.
  • Simcd(pag,r)=1{\displaystyle \gcd(p,r)=1}, entoncesmcd(pag,q)=mcd(pag,qr){\displaystyle \gcd(p,q)=\gcd(p,qr)}.
  • Simcd(q,r)=1{\displaystyle \gcd(q,r)=1}, entoncesmcd(pag,qr)=mcd(pag,q)mcd(pag,r){\displaystyle \gcd(p,qr)=\gcd(p,q)\,\gcd(p,r)}.
  • Para dos polinomios univariados p y q sobre un cuerpo, existen polinomios a y b tales quemcd(pag,q)=apag+bq{\displaystyle \gcd(p,q)=ap+bq}ymcd(pag,q){\displaystyle \gcd(p,q)}divide toda combinación lineal de p y q ( identidad de Bézout ).
  • El máximo común divisor de tres o más polinomios se puede definir de forma similar a como se define para dos polinomios. Se puede calcular recursivamente a partir de los MCD de dos polinomios mediante las siguientes identidades:mcd(pag,q,r)=mcd(pag,mcd(q,r)),{\displaystyle \gcd(p,q,r)=\gcd(p,\gcd(q,r)),}ymcd(pag1,pag2,,pagnorte)=mcd(pag1,mcd(pag2,,pagnorte)).{\displaystyle \gcd(p_{1},p_{2},\dots ,p_{n})=\gcd(p_{1},\gcd(p_{2},\dots ,p_{n})).}

MCD calculado manualmente

Existen varias maneras de hallar el máximo común divisor de dos polinomios. Dos de ellas son:

  1. La factorización de polinomios consiste en hallar los factores de cada expresión y, a continuación, seleccionar el conjunto de factores comunes a todos ellos dentro de cada conjunto. Este método puede resultar útil solo en casos sencillos, ya que factorizar suele ser más difícil que calcular el máximo común divisor.
  2. El algoritmo euclidiano , que se puede utilizar para encontrar el MCD de dos polinomios de la misma manera que para dos números.

Factorización

Para hallar el máximo común divisor (MCD) de dos polinomios mediante factorización, simplemente factoriza ambos polinomios por completo. Luego, multiplica todos los factores comunes. En este punto, no necesariamente obtendremos un polinomio mónico, así que finalmente multiplícalo por una constante para convertirlo en un polinomio mónico. Este será el MCD de los dos polinomios, ya que incluye todos los divisores comunes y es mónico.

Ejemplo uno : Encuentra el MCD de + 7x + 6 y 5x 6 .

+ 7x + 6 = ( x + 1)( x + 6 )
5x − 6 = ( x + 1)( x − 6)

Por lo tanto, su MCD es x + 1 .

algoritmo euclidiano

Factorizar polinomios puede ser difícil, especialmente si tienen un grado elevado. El algoritmo euclidiano es un método que funciona para cualquier par de polinomios. Utiliza repetidamente la división euclidiana . Al aplicar este algoritmo a dos números, el tamaño de estos disminuye en cada paso. En el caso de los polinomios, el grado disminuye en cada paso. El último resto distinto de cero, convertido a mónico si es necesario, es el máximo común divisor (MCD) de los dos polinomios.

Más específicamente, para hallar el mcd de dos polinomios a ( x ) y b ( x ) , se puede suponer que b ≠ 0 (de lo contrario, el mcd es a ( x ) ), y grados(b(incógnita))grados(a(incógnita)).{\displaystyle \deg(b(x))\leq \deg(a(x))\,.}

La división euclidiana proporciona dos polinomios q ( x ) , el cociente y r ( x ) , el resto , tales que a(incógnita)=q0(incógnita)b(incógnita)+r0(incógnita)ygrados(r0(incógnita))<grados(b(incógnita)){\displaystyle a(x)=q_{0}(x)b(x)+r_{0}(x)\quad {\text{y}}\quad \deg(r_{0}(x))<\deg(b(x))}

Un polinomio g ( x ) divide tanto a ( x ) como a b ( x ) si y solo si divide tanto a b ( x ) como a r₀ ( x ) . Por lo tanto, mcd(a(incógnita),b(incógnita))=mcd(b(incógnita),r0(incógnita)).{\displaystyle \gcd(a(x),b(x))=\gcd(b(x),r_{0}(x)).} Configuración a1(incógnita)=b(incógnita),b1(incógnita)=r0(incógnita),{\displaystyle a_{1}(x)=b(x),b_{1}(x)=r_{0}(x),} Se puede repetir la división euclidiana para obtener nuevos polinomios q 1 ( x ), r 1 ( x ), a 2 ( x ), b 2 ( x ) y así sucesivamente. En cada etapa tenemos grados(ak+1)+grados(bk+1)<grados(ak)+grados(bk),{\displaystyle \deg(a_{k+1})+\deg(b_{k+1})<\deg(a_{k})+\deg(b_{k}),} por lo que la secuencia eventualmente llegará a un punto en el que bnorte(incógnita)=0{\displaystyle b_{N}(x)=0} y uno tiene el MCD: mcd(a,b)=mcd(a1,b1)==mcd(anorte,0)=anorte.{\displaystyle \gcd(a,b)=\gcd(a_{1},b_{1})=\cdots =\gcd(a_{N},0)=a_{N}.}

Ejemplo: hallar el MCD de + 7x + 6 y 5x6 :

+ 7x + 6 = 1 ⋅ ( 5x 6) + (12x + 12)
5x − 6 = ( 12x + 12 ) ( 1 / 12x 1/2 ) + 0

Dado que 12 x + 12 es el último resto distinto de cero, es un MCD de los polinomios originales, y el MCD mónico es x + 1 .

En este ejemplo, no es difícil evitar la introducción de denominadores factorizando el 12 antes del segundo paso. Esto siempre se puede lograr utilizando secuencias de pseudoresto , pero, sin cuidado, esto puede introducir números enteros muy grandes durante el cálculo. Por lo tanto, para el cálculo computacional se utilizan otros algoritmos, que se describen a continuación.

Este método solo funciona si se puede comprobar la igualdad a cero de los coeficientes que aparecen durante el cálculo. Por lo tanto, en la práctica, los coeficientes deben ser enteros , números racionales , elementos de un cuerpo finito o pertenecer a alguna extensión de cuerpo finitamente generada de uno de los cuerpos anteriores. Si los coeficientes son números de coma flotante que representan números reales conocidos solo de forma aproximada, entonces se debe conocer el grado del MCD para obtener un resultado numéricamente estable ; en este caso, se pueden utilizar otras técnicas, generalmente basadas en la descomposición en valores singulares .

Polinomios univariados con coeficientes en un campo

El caso básico de polinomios univariados sobre un cuerpo es especialmente importante. Es el ejemplo más simple más allá del anillo de los enteros, y esta analogía es la fuente de la noción de dominio euclidiano . La teoría y los algoritmos para el caso multivariado y para los coeficientes en un dominio de factorización única dependen en gran medida del caso básico. Los algoritmos para el máximo común divisor (MCD) de polinomios y los algoritmos derivados permiten obtener información útil sobre las raíces de un polinomio sin necesidad de calcularlas.

división euclidiana

La división euclidiana de polinomios, que se utiliza en el algoritmo de Euclides para calcular el MCD, es muy similar a la división euclidiana de enteros. Su existencia se basa en el siguiente teorema: Dados dos polinomios univariadosa{\textstyle a}yb0{\displaystyle b\neq 0}definidos sobre un cuerpo , existen dos polinomiosq{\displaystyle q}(el cociente ) yr{\displaystyle r}(el resto ) que satisfacen a=bq+r{\displaystyle a=bq+r} y grados(r)<grados(b),{\displaystyle \deg(r)<\deg(b),} donde " deg(...) " denota el grado y el grado del polinomio cero se define como negativo. Además, q y r están definidos unívocamente por estas relaciones.

La diferencia con la división euclidiana de los enteros radica en que, para los enteros, el grado se reemplaza por el valor absoluto, y para que exista unicidad hay que suponer que r es no negativo. Los anillos para los que existe tal teorema se denominan dominios euclidianos .

Al igual que con los números enteros, la división euclidiana de los polinomios se puede calcular mediante el algoritmo de división larga . Este algoritmo se suele presentar para cálculos manuales, pero funciona bien en ordenadores cuando se formaliza de la siguiente manera (nótese que los nombres de las variables corresponden exactamente a las regiones de la hoja de papel en un cálculo manual de división larga). En el siguiente cálculo, "deg" representa el grado de su argumento (con la convención deg(0) < 0 ), y "lc" representa el coeficiente principal, el coeficiente del grado más alto de la variable.

división euclidiana

Entrada: a y b ≠ 0 dos polinomios en la variable x ; Salida: q , el cociente, y r , el resto;

comenzar

q := 0 r := a d := deg( b ) c := lc( b ) mientras deg( r ) ≥ d hacer s := (lc( r )/ c ) x deg( r )− d q := q + s r := rsb fin hacer devolver ( q , r )

fin

La prueba de la validez de este algoritmo se basa en el hecho de que, durante todo el bucle "while", tenemos a = bq + r y deg( r ) es un entero no negativo que disminuye en cada iteración. Por lo tanto, la prueba de la validez de este algoritmo también prueba la validez de la división euclidiana.

El algoritmo de Euclides

En cuanto a los números enteros, la división euclidiana nos permite definir el algoritmo de Euclides para calcular el máximo común divisor (MCD).

Partiendo de dos polinomios a y b , el algoritmo de Euclides consiste en reemplazar recursivamente el par ( a , b ) por ( b , rem( a , b )) (donde " rem( a , b ) " denota el resto de la división euclidiana, calculado mediante el algoritmo de la sección anterior), hasta que b = 0. El MCD es el último resto distinto de cero.

El algoritmo de Euclides puede formalizarse en el estilo de programación recursiva de la siguiente manera: mcd(a,b):={asi b=0mcd(b,movimiento rápido del ojo(a,b))de lo contrario.{\displaystyle \gcd(a,b):={\begin{cases}a&{\text{if }}b=0\\\gcd(b,\operatorname {rem} (a,b))&{\text{otherwise}}.\end{cases}}}

En el estilo de programación imperativo , el mismo algoritmo se convierte en, dando un nombre a cada resto intermedio:

r 0  := a r 1  := b

para ( i  := 1; r i ≤ 0; i  := i + 1) hacer

r i +1 := rem( r i −1 , r i )

fin hacer

devolver r i -1 .

La secuencia de los grados de r i es estrictamente decreciente. Por lo tanto, después de, como máximo, deg( b ) pasos, se obtiene un resto nulo, digamos r k . Como ( a , b ) y ( b , rem( a , b )) tienen los mismos divisores, el conjunto de divisores comunes no se modifica por el algoritmo de Euclides y, por lo tanto, todos los pares ( r i , r i +1 ) tienen el mismo conjunto de divisores comunes. Los divisores comunes de a y b son, por lo tanto, los divisores comunes de r k −1 y 0. Así, r k −1 es un MCD de a y b . Esto no solo prueba que el algoritmo de Euclides calcula MCD, sino que también prueba que los MCD existen.

Identidad de Bézout y algoritmo extendido del MCD

La identidad de Bézout es un teorema relacionado con el MCD, demostrado inicialmente para los enteros, que es válido para todo dominio ideal principal . En el caso de los polinomios univariados sobre un cuerpo, se puede enunciar de la siguiente manera.

Si g es el máximo común divisor de dos polinomios a y b (no ambos cero), entonces existen dos polinomios u y v tales que
a+bv=gramo{\displaystyle au+bv=g} (Identidad de Bézout)

y o bien u = 1, v = 0 , o bien u = 0, v = 1 , o bien

grados()<grados(b)grados(gramo),grados(v)<grados(a)grados(gramo).{\displaystyle \deg(u)<\deg(b)-\deg(g),\quad \deg(v)<\deg(a)-\deg(g).}

El interés de este resultado en el caso de los polinomios radica en que existe un algoritmo eficiente para calcular los polinomios u y v . Este algoritmo difiere del algoritmo de Euclides por realizar algunos cálculos adicionales en cada iteración del bucle. Por lo tanto, se le denomina algoritmo MCD extendido . Otra diferencia con el algoritmo de Euclides es que también utiliza el cociente, denotado "quo", de la división euclidiana en lugar de solo el resto. Este algoritmo funciona de la siguiente manera.

Algoritmo extendido de MCD

Entrada: a , b , polinomios univariados

Producción:

g , el MCD de a y b u , v , como en la afirmación anterior a 1 , b 1 , de tal manera que a = g a 1 b = g b 1

Comenzar

 ( r 0 , r 1 ) := ( a , b ) ( s 0 , s 1 ) := (1, 0) ( t 0 , t 1 ) := (0, 1) para ( i := 1; r i ≠ 0; i := i +1) hacer q := quo( r i −1 , r i ) r i +1 := r i −1 qr i s i +1 := s i −1 qs i t i +1 := t i −1 qt i fin hacer g := r i −1 u := s i −1 v := t i −1 a 1 := (−1) i −1 t i b 1 := (−1) i s i

Fin

La prueba de que el algoritmo satisface su especificación de salida se basa en el hecho de que, para cada i tenemos ri=asi+bti{\displaystyle r_{i}=as_{i}+bt_{i}}siti+1tisi+1=siti1tisi1,{\displaystyle s_{i}t_{i+1}-t_{i}s_{i+1}=s_{i}t_{i-1}-t_{i}s_{i-1},} la última igualdad implica siti+1tisi+1=(1)i.{\displaystyle s_{i}t_{i+1}-t_{i}s_{i+1}=(-1)^{i}.} La afirmación sobre los grados se deriva del hecho de que, en cada iteración, los grados de s i y t i aumentan como máximo a medida que disminuye el grado de r i .

Una característica interesante de este algoritmo es que, cuando se necesitan los coeficientes de la identidad de Bezout, se obtiene gratuitamente el cociente de los polinomios de entrada por su máximo común divisor (MCD).

Aritmética de extensiones algebraicas

Una aplicación importante del algoritmo MCD extendido es que permite calcular la división en extensiones de cuerpos algebraicos .

Sea L una extensión algebraica de un cuerpo K , generada por un elemento cuyo polinomio mínimo f tiene grado n . Los elementos de L se representan usualmente mediante polinomios univariados sobre K de grado menor que n .

La suma en L es simplemente la suma de polinomios: a+Lb=a+K[incógnita]b.{\displaystyle a+_{L}b=a+_{K[X]}b.}

La multiplicación en L es la multiplicación de polinomios seguida de la división por f : aLb=movimiento rápido del ojo(a.K[incógnita]b,F).{\displaystyle a\cdot _{L}b=\operatorname {rem} (a._{K[X]}b,f).}

El inverso de un elemento no nulo a de L es el coeficiente u en la identidad de Bézout au + fv = 1 , que puede calcularse mediante el algoritmo MCD extendido. (El MCD es 1 porque el polinomio mínimo f es irreducible). La desigualdad de grado en la especificación del algoritmo MCD extendido muestra que no es necesaria una división adicional por f para obtener deg( u ) < deg( f ).

Subresultantes

En el caso de polinomios univariados, existe una fuerte relación entre el máximo común divisor y el resultante . Más precisamente, el resultante de dos polinomios P ​​y Q es una función polinómica de los coeficientes de P y Q que tiene valor cero si y solo si el MCD de P y Q no es constante.

La teoría de subresultantes es una generalización de esta propiedad que permite caracterizar genéricamente el MCD de dos polinomios, y el resultante es el polinomio subresultante 0. [ 1 ]

El i -ésimo polinomio subresultante S i ( P , Q ) de dos polinomios P ​​y Q es un polinomio de grado como máximo i cuyos coeficientes son funciones polinómicas de los coeficientes de P y Q , y el i -ésimo coeficiente subresultante principal s i ( P , Q ) es el coeficiente de grado i de S i ( P , Q ) . Tienen la propiedad de que el MCD de P y Q tiene grado d si y solo si s0(PAG,Q)==sd1(PAG,Q)=0, sd(PAG,Q)0.{\displaystyle s_{0}(P,Q)=\cdots =s_{d-1}(P,Q)=0,\ s_{d}(P,Q)\neq 0.}

En este caso, S d ( P , Q ) es un MCD de P y Q y S0(PAG,Q)==Sd1(PAG,Q)=0.{\displaystyle S_{0}(P,Q)=\cdots =S_{d-1}(P,Q)=0.}

Cada coeficiente de los polinomios subresultantes se define como el determinante de una submatriz de la matriz de Sylvester de P y Q. Esto implica que los subresultantes se "especializan" bien. Más precisamente, los subresultantes se definen para polinomios sobre cualquier anillo conmutativo R y tienen la siguiente propiedad.

Sea φ un homomorfismo de anillos de R en otro anillo conmutativo S. Se extiende a otro homomorfismo, también denotado φ, entre los anillos de polinomios sobre R y S. Entonces, si P y Q son polinomios univariados con coeficientes en R tales que grados(PAG)=grados(φ(PAG)){\displaystyle \deg(P)=\deg(\varphi (P))} y grados(Q)=grados(φ(Q)),{\displaystyle \deg(Q)=\deg(\varphi (Q)),} entonces los polinomios subresultantes y los coeficientes subresultantes principales de φ ( P ) y φ ( Q ) son la imagen por φ de los de P y Q .

Los subresultantes poseen dos propiedades importantes que los hacen fundamentales para el cálculo computacional del máximo común divisor (MCD) de dos polinomios con coeficientes enteros. En primer lugar, su definición mediante determinantes permite acotar, a través de la desigualdad de Hadamard , el tamaño de los coeficientes del MCD. En segundo lugar, esta cota y la propiedad de buena especialización permiten calcular el MCD de dos polinomios con coeficientes enteros mediante computación modular y el teorema chino del resto (véase más adelante ).

Definición técnica

Dejar PAG=pag0+pag1incógnita++pagmetroincógnitametro,Q=q0+q1incógnita++qnorteincógnitanorte.{\displaystyle P=p_{0}+p_{1}X+\cdots +p_{m}X^{m},\quad Q=q_{0}+q_{1}X+\cdots +q_{n}X^{n}.} Sean dos polinomios univariados con coeficientes en un cuerpo K. Denotemos porPAGi{\displaystyle {\mathcal {P}}_{i}}el espacio vectorial K de dimensión i de polinomios de grado menor que i . Para un entero no negativo i tal que im e in , sea φi:PAGnortei×PAGmetroiPAGmetro+nortei{\displaystyle \varphi _{i}:{\mathcal {P}}_{n-i}\times {\mathcal {P}}_{m-i}\rightarrow {\mathcal {P}}_{m+n-i}} Sea la aplicación lineal tal que φi(A,B)=APAG+BQ.{\displaystyle \varphi _{i}(A,B)=AP+BQ.}

La resultante de P y Q es el determinante de la matriz de Sylvester , que es la matriz (cuadrada) deφ0{\displaystyle \varphi _{0}}sobre la base de las potencias de X. De manera similar, el polinomio i -subresultante se define en términos de determinantes de submatrices de la matriz deφi.{\displaystyle \varphi _{i}.}

Describamos estas matrices con mayor precisión;

Sea p i = 0 para i < 0 o i > m , y q i = 0 para i < 0 o i > n . La matriz de Sylvester es la matriz ( m + n ) × ( m + n ) tal que el coeficiente de la i -ésima fila y la j -ésima columna es p m + ji para jn y q ji para j > n : [ nota 1 ]S=(pagmetro00qnorte00pagmetro1pagmetro0qnorte1qnorte0pagmetro2pagmetro10qnorte2qnorte10pagmetroqnortepagmetro1qnorte1pag0pag1q0q10pag00q0pag1q100pag000q0).{\displaystyle S={\begin{pmatrix}p_{m}&0&\cdots &0&q_{n}&0&\cdots &0\\p_{m-1}&p_{m}&\cdots &0&q_{n-1}&q_{n}&\cdots &0\\p_{m-2}&p_{m-1}&\ddots &0&q_{n-2}&q_{n-1}&\ddots &0\\\vdots &\vdots &\ddots &p_{m}&\vdots &\vdots &\ddots &q_{n}\\\vdots &\vdots &\cdots &p_{m-1}&\vdots &\vdots &\cdots &q_{n-1}\\p_{0}&p_{1}&\cdots &\vdots &q_{0}&q_{1}&\cdots &\vdots \\0&p_{0}&\ddots &\vdots &0&q_{0}&\ddots &\vdots \\\vdots &\vdots &\ddots &p_{1}&\vdots &\vdots &\ddots &q_{1}\\0&0&\cdots &p_{0}&0&0&\cdots &q_{0}\end{pmatrix}}.}

La matriz T i deφi{\displaystyle \varphi _{i}}es la submatriz ( m + ni ) × ( m + n − 2 i ) de S que se obtiene eliminando las últimas i filas de ceros en la submatriz de las columnas 1 a ni y n + 1 a m + ni de S (es decir, eliminando i columnas en cada bloque y las i últimas filas de ceros). El coeficiente subresultante principal s i es el determinante de las m + n − 2 i primeras filas de T i .

Sea V i la matriz ( m + n − 2 i ) × ( m + ni ) definida de la siguiente manera. Primero agregamos ( i + 1) columnas de ceros a la derecha de la matriz identidad ( m + n − 2 i − 1) × ( m + n − 2 i − 1) . Luego bordeamos la parte inferior de la matriz resultante con una fila que consiste en ( m + ni − 1) ceros seguidos de X i , X i −1 , ..., X , 1 : Vi=(1000000100000001000000incógnitaiincógnitai11).{\displaystyle V_{i}={\begin{pmatrix}1&0&\cdots &0&0&0&\cdots &0\\0&1&\cdots &0&0&0&\cdots &0\\\vdots &\vdots &\ddots &\vdots &\vdots &\ddots &\vdots &0\\0&0&\cdots &1&0&0&\cdots &0\\0&0&\cdots &0&X^{i}&X^{i-1}&\cdots &1\end{pmatrix}}.}

Con esta notación, el polinomio subresultante i - ésimo es el determinante del producto matricial V i T i . Su coeficiente de grado j es el determinante de la submatriz cuadrada de T i que consta de sus m + n − 2 i − 1 primeras filas y la ( m + nij ) -ésima fila.

Bosquejo de la prueba

No es obvio que, tal como se definen, los subresultantes tengan las propiedades deseadas. Sin embargo, la demostración es bastante sencilla si se combinan las propiedades del álgebra lineal con las de los polinomios.

Como se define, las columnas de la matriz T i son los vectores de los coeficientes de algunos polinomios pertenecientes a la imagen deφi{\displaystyle \varphi _{i}}. La definición del polinomio subresultante i -ésimo S i muestra que el vector de sus coeficientes es una combinación lineal de estos vectores columna, y por lo tanto que S i pertenece a la imagen deφi.{\displaystyle \varphi _{i}.}

Si el grado del MCD es mayor que i , entonces la identidad de Bézout muestra que todo polinomio no nulo en la imagen deφi{\displaystyle \varphi _{i}}tiene un grado mayor que i . Esto implica que S i = 0 .

Si, por otro lado, el grado del MCD es i , entonces la identidad de Bézout permite nuevamente demostrar que los múltiplos del MCD que tienen un grado menor que m + ni están en la imagen deφi{\displaystyle \varphi _{i}}El espacio vectorial de estos múltiplos tiene dimensión m + n − 2 i y tiene una base de polinomios de grados distintos entre sí, no menores que i . Esto implica que la submatriz de las m + n − 2 i primeras filas de la forma escalonada de columnas de T i es la matriz identidad y, por lo tanto, que s i no es 0. Por lo tanto, S i es un polinomio en la imagen deφi{\displaystyle \varphi _{i}}, que es un múltiplo del MCD y tiene el mismo grado. Por lo tanto, es un máximo común divisor.

GCD y búsqueda de raíces

factorización sin cuadrados

La mayoría de los algoritmos de búsqueda de raíces se comportan mal con polinomios que tienen raíces múltiples . Por lo tanto, es útil detectarlas y eliminarlas antes de llamar a un algoritmo de búsqueda de raíces. El cálculo del máximo común divisor (MCD) permite detectar la existencia de raíces múltiples, ya que las raíces múltiples de un polinomio son las raíces del MCD del polinomio y su derivada .

Después de calcular el MCD del polinomio y su derivada, cálculos adicionales del MCD proporcionan la factorización completa sin cuadrados del polinomio, que es una factorización F=i=1grados(F)Fii{\displaystyle f=\prod _{i=1}^{\deg(f)}f_{i}^{i}} donde, para cada i , el polinomio f i es 1 si f no tiene ninguna raíz de multiplicidad i o es un polinomio libre de cuadrados (es decir, un polinomio sin raíces múltiples) cuyas raíces son exactamente las raíces de multiplicidad i de f (véase el algoritmo de Yun ).

De este modo, la factorización sin cuadrados reduce la búsqueda de raíces de un polinomio con múltiples raíces a la búsqueda de raíces de varios polinomios sin cuadrados de menor grado. La factorización sin cuadrados es también el primer paso en la mayoría de los algoritmos de factorización de polinomios .

secuencia de Sturm

La sucesión de Sturm de un polinomio con coeficientes reales es la sucesión de los restos proporcionada por una variante del algoritmo de Euclides aplicada al polinomio y su derivada. Para obtener la sucesión de Sturm, basta con reemplazar la instrucción ri+1:=movimiento rápido del ojo(ri1,ri){\displaystyle r_{i+1}:=\operatorname {rem} (r_{i-1},r_{i})} del algoritmo de Euclides por ri+1:=movimiento rápido del ojo(ri1,ri).{\displaystyle r_{i+1}:=-\operatorname {rem} (r_{i-1},r_{i}).}

Sea V ( a ) el número de cambios de signo en la sucesión, evaluada en un punto a . El teorema de Sturm afirma que V ( a ) − V ( b ) es el número de raíces reales del polinomio en el intervalo [ a , b ] . Por lo tanto, la sucesión de Sturm permite calcular el número de raíces reales en un intervalo dado. Al subdividir el intervalo hasta que cada subintervalo contenga como máximo una raíz, se obtiene un algoritmo que localiza las raíces reales en intervalos de longitud arbitrariamente pequeña.

MCD sobre un anillo y su campo de fracciones

En esta sección, consideramos polinomios sobre un dominio de factorización única R , típicamente el anillo de los enteros, y sobre su campo de fracciones F , típicamente el campo de los números racionales, y denotamos R [ X ] y F [ X ] los anillos de polinomios en un conjunto de variables sobre estos anillos.

Factorización de contenido de partes primitivas

El contenido de un polinomio pR [ X ] , denotado " cont( p ) ", es el MCD de sus coeficientes. Un polinomio qF [ X ] puede escribirse q=pagdo{\displaystyle q={\frac {p}{c}}} donde pR [ X ] y cR : basta con tomar para c un múltiplo de todos los denominadores de los coeficientes de q (por ejemplo, su producto) y p = cq . El contenido de q se define como: continuación(q)=continuación(pag)do.{\displaystyle \operatorname {cont} (q)={\frac {\operatorname {cont} (p)}{c}}.}En ambos casos, el contenido se define hasta la multiplicación por una unidad de R.

La parte primitiva de un polinomio en R [ X ] o F [ X ] se define por primat(pag)=pagcontinuación(pag).{\displaystyle \operatorname {primpart} (p)={\frac {p}{\operatorname {cont} (p)}}.}

En ambos casos, se trata de un polinomio en R [ X ] que es primitivo , lo que significa que 1 es el MCD de sus coeficientes.

Por lo tanto, todo polinomio en R [ X ] o F [ X ] puede factorizarse como pag=continuación(pag)primat(pag),{\displaystyle p=\operatorname {cont} (p)\,\operatorname {primpart} (p),} y esta factorización es única salvo la multiplicación del contenido por una unidad de R y de la parte primitiva por el inverso de esta unidad.

El lema de Gauss implica que el producto de dos polinomios primitivos es primitivo. De ello se deduce que primat(pagq)=primat(pag)primat(q){\displaystyle \operatorname {primpart} (pq)=\operatorname {primpart} (p)\operatorname {primpart} (q)} y continuación(pagq)=continuación(pag)continuación(q).{\displaystyle \operatorname {cont} (pq)=\operatorname {cont} (p)\operatorname {cont} (q).}

Relación entre el MCD sobre R y sobre F

Las relaciones de la sección anterior implican una fuerte relación entre los MCD en R [ X ] y en F [ X ] . Para evitar ambigüedades, la notación " mcd " se indexará, en lo sucesivo, por el anillo en el que se calcula el MCD.

Si q 1 y q 2 pertenecen a F [ X ] , entonces primat(mcdF[incógnita](q1,q2))=mcdR[incógnita](primat(q1),primat(q2)).{\displaystyle \operatorname {primpart} (\gcd _{F[X]}(q_{1},q_{2}))=\gcd _{R[X]}(\operatorname {primpart} (q_{1}),\operatorname {primpart} (q_{2})).}

Si p 1 y p 2 pertenecen a R [ X ] , entonces mcdR[incógnita](pag1,pag2)=mcdR(continuación(pag1),continuación(pag2))mcdR[incógnita](primat(pag1),primat(pag2)),{\displaystyle \gcd _{R[X]}(p_{1},p_{2})=\gcd _{R}(\operatorname {cont} (p_{1}),\operatorname {cont} (p_{2}))\gcd _{R[X]}(\operatorname {primpart} (p_{1}),\operatorname {primpart} (p_{2})),} y mcdR[incógnita](primat(pag1),primat(pag2))=primat(mcdF[incógnita](pag1,pag2)).{\displaystyle \gcd _{R[X]}(\operatorname {primpart} (p_{1}),\operatorname {primpart} (p_{2}))=\operatorname {primpart} (\gcd _{F[X]}(p_{1},p_{2})).}

Por lo tanto, el cálculo de los MCD de polinomios es esencialmente el mismo problema sobre F [ X ] y sobre R [ X ] .

Para polinomios univariados sobre los números racionales, podría pensarse que el algoritmo de Euclides es un método conveniente para calcular el MCD. Sin embargo, implica simplificar una gran cantidad de fracciones de enteros, y el algoritmo resultante no es eficiente. Por esta razón, se han diseñado métodos para modificar el algoritmo de Euclides y que funcionen únicamente con polinomios sobre los enteros. Estos métodos consisten en reemplazar la división euclidiana, que introduce fracciones, por una denominada pseudodivisión , y reemplazar la secuencia de restos del algoritmo de Euclides por secuencias de pseudorestos (véase más adelante ).

Demostración de que el máximo común divisor existe para polinomios multivariables.

En la sección anterior vimos que el MCD de polinomios en R [ X ] se puede deducir a partir de los MCD en R y en F [ X ] . Un análisis más detallado de la demostración muestra que esto nos permite probar la existencia de MCD en R [ X ] , si existen en R y en F [ X ] . En particular, si existen MCD en R y si X se reduce a una variable, esto prueba que existen MCD en R [ X ] (el algoritmo de Euclides prueba la existencia de MCD en F [ X ] ).

Un polinomio en n variables puede considerarse como un polinomio univariado sobre el anillo de polinomios en ( n − 1 ) variables. Así, una recursión sobre el número de variables muestra que si existen MCD y pueden calcularse en R , entonces existen y pueden calcularse en todo anillo de polinomios multivariados sobre R . En particular, si R es el anillo de los enteros o un cuerpo, entonces existen MCD en R [ x 1 , ..., x n ] , y lo anterior proporciona un algoritmo para calcularlos.

La demostración de que un anillo de polinomios sobre un dominio de factorización única también es un dominio de factorización única es similar, pero no proporciona un algoritmo, porque no existe un algoritmo general para factorizar polinomios univariados sobre un cuerpo (hay ejemplos de cuerpos para los que no existe ningún algoritmo de factorización para los polinomios univariados).

Secuencias pseudoresto

En esta sección, consideramos un dominio de integridad Z (típicamente el anillo Z de los enteros) y su cuerpo de fracciones Q (típicamente el cuerpo Q de los números racionales). Dados dos polinomios A y B en el anillo de polinomios univariados Z [ X ] , la división euclidiana (sobre Q ) de A por B proporciona un cociente y un resto que pueden no pertenecer a Z [ X ] .

Porque, si se aplica el algoritmo de Euclides a los siguientes polinomios [ 2 ]incógnita8+incógnita63incógnita43incógnita3+8incógnita2+2incógnita5{\displaystyle X^{8}+X^{6}-3X^{4}-3X^{3}+8X^{2}+2X-5} y 3incógnita6+5incógnita44incógnita29incógnita+21,{\displaystyle 3X^{6}+5X^{4}-4X^{2}-9X+21,} Los restos sucesivos del algoritmo de Euclides son 59incógnita4+19incógnita213,11725incógnita29incógnita+44125,23315019773incógnita1025006591,1288744821543589225.{\displaystyle {\begin{aligned}&-{\tfrac {5}{9}}X^{4}+{\tfrac {1}{9}}X^{2}-{\tfrac {1}{3}},\\&-{\tfrac {117}{25}}X^{2}-9X+{\tfrac {441}{25}},\\&{\tfrac {233150}{19773}}X-{\tfrac {102500}{6591}},\\&-{\tfrac {1288744821}{543589225}}.\end{aligned}}} Se observa que, a pesar del bajo grado y el pequeño tamaño de los coeficientes de los polinomios de entrada, es necesario manipular y simplificar fracciones enteras de tamaño bastante grande.

ElSe ha introducido la pseudodivisión para permitir una variante del algoritmo de Euclides en la que todos los restos pertenecen a Z [ X ].

Sigrados(A)=a{\displaystyle \deg(A)=a}ygrados(B)=b{\displaystyle \deg(B)=b}y ab , el pseudoresto de la pseudodivisión de A por B , denotado por prem( A , B ) es prem(A,B)=movimiento rápido del ojo(lc(B)ab+1A,B),{\displaystyle \operatorname {prem} (A,B)=\operatorname {rem} (\operatorname {lc} (B)^{a-b+1}A,B),} donde lc( B ) es el coeficiente principal de B (el coeficiente de X b ).

El pseudoresto de la pseudodivisión de dos polinomios en Z [ X ] pertenece siempre a Z [ X ] .

Una secuencia de pseudorestos es la secuencia de los (pseudo)restos r i obtenidos al reemplazar la instrucción ri+1:=movimiento rápido del ojo(ri1,ri){\displaystyle r_{i+1}:=\operatorname {rem} (r_{i-1},r_{i})} del algoritmo de Euclides por ri+1:=prem(ri1,ri)α,{\displaystyle r_{i+1}:={\frac {\operatorname {prem} (r_{i-1},r_{i})}{\alpha }},} donde α es un elemento de Z que divide exactamente a cada coeficiente del numerador. Diferentes elecciones de α dan lugar a diferentes secuencias de pseudorestos, que se describen en las siguientes subsecciones.

Como los divisores comunes de dos polinomios no cambian si los polinomios se multiplican por constantes invertibles (en Q ), el último término no nulo en una secuencia de pseudorestos es un MCD (en Q [ X ] ) de los polinomios de entrada. Por lo tanto, las secuencias de pseudorestos permiten calcular MCD en Q [ X ] sin introducir fracciones en Q.

En algunos contextos, es esencial controlar el signo del coeficiente principal del pseudoresto. Esto suele ocurrir al calcular resultantes y subresultantes , o al utilizar el teorema de Sturm . Este control puede realizarse sustituyendo lc( B ) por su valor absoluto en la definición del pseudoresto, o controlando el signo de α (si α divide a todos los coeficientes de un resto, lo mismo ocurre con −α ) . [ 1 ]

Secuencia de pseudoresto trivial

La secuencia de restos más simple (de definir) consiste en tomar siempre α = 1. En la práctica, no es interesante, ya que el tamaño de los coeficientes crece exponencialmente con el grado de los polinomios de entrada. Esto aparece claramente en el ejemplo de la sección anterior, para el cual los pseudorestos sucesivos son 15incógnita4+3incógnita29,{\displaystyle -15\,X^{4}+3\,X^{2}-9,}15795incógnita2+30375incógnita59535,{\displaystyle 15795\,X^{2}+30375\,X-59535,}1254542875143750incógnita1654608338437500,{\displaystyle 1254542875143750\,X-1654608338437500,}12593338795500743100931141992187500.{\displaystyle 12593338795500743100931141992187500.} El número de dígitos de los coeficientes de los restos sucesivos se duplica con creces en cada iteración del algoritmo. Este es un comportamiento típico de las secuencias de pseudorestos triviales.

Secuencia pseudo-resto primitiva

La secuencia pseudo-resto primitiva consiste en tomar por α el contenido del numerador. Por lo tanto, todos los r i son polinomios primitivos.

La secuencia de pseudorestos primitiva es aquella que genera los coeficientes más pequeños. Sin embargo, requiere calcular varios MCD en Z , por lo que no es suficientemente eficiente para su uso práctico, especialmente cuando Z es un anillo de polinomios.

Con la misma entrada que en las secciones anteriores, los restos sucesivos, después de la división por su contenido, son: 5incógnita4+incógnita23,{\displaystyle -5\,X^{4}+X^{2}-3,}13incógnita2+25incógnita49,{\displaystyle 13\,X^{2}+25\,X-49,}4663incógnita6150,{\displaystyle 4663\,X-6150,}1.{\displaystyle 1.} El pequeño tamaño de los coeficientes oculta el hecho de que se han calculado varios máximos comunes divisores (MCD) y divisiones por el MCD.

Secuencia de pseudoresto subresultante

También se puede calcular una secuencia subresultante con pseudorestos. El proceso consiste en elegir α de tal manera que cada r i sea un polinomio subresultante. Sorprendentemente, el cálculo de α es muy sencillo (véase más adelante). Por otro lado, la demostración de la corrección del algoritmo es compleja, ya que debe tener en cuenta todas las posibilidades de diferencia de grados entre dos restos consecutivos.

Los coeficientes en la secuencia subresultante rara vez son mucho mayores que los de la secuencia primitiva de pseudorestos. Dado que no se requieren cálculos de MCD en Z , la secuencia subresultante con pseudorestos proporciona el cálculo más eficiente.

Con la misma entrada que en las secciones anteriores, los restos sucesivos son 15incógnita43incógnita2+9,{\displaystyle 15\,X^{4}-3\,X^{2}+9,}65incógnita2+125incógnita245,{\displaystyle 65\,X^{2}+125\,X-245,}9326incógnita12300,{\displaystyle 9326\,X-12300,}260708.{\displaystyle 260708.} Los coeficientes tienen un tamaño razonable. Se obtienen sin necesidad de calcular el máximo común divisor, solo mediante divisiones exactas. Esto hace que este algoritmo sea más eficiente que el de las secuencias de pseudoresto primitivas.

El algoritmo que calcula la secuencia subresultante con pseudorestos se presenta a continuación. En este algoritmo, la entrada ( a , b ) es un par de polinomios en Z [ X ] . Los rᵢ son los pseudorestos sucesivos en Z [ X ] , las variables i y dᵢ son enteros no negativos, y las letras griegas denotan elementos en Z. Las funciones y denotan el grado de un polinomiodeg() y el resto de la división euclidiana. En el algoritmo, este resto siempre está en Z [ X ] . Finalmente , las divisiones denotadas / son siempre exactas y tienen su resultado en Z [ X ] o en Z.rem()

r 0  := a r 1  := b para ( i  := 1; r i ≠ 0; i  := i +1) hacer

d i := deg( r i −1 ) − deg ( r i ) γ i := lc ( r i ) si i = 1 entonces β 1 := (−1) d 1 +1 ψ 1 := −1 sino ψ i := (− γ i −1 ) d i −1 / ψ i −1 d i −1 −1 β i := − γ i −1 ψ i d i fin si r i +1 := rem( γ i d i +1 r i −1 , r i ) / β i

fin para

Nota: "lc" significa coeficiente principal, el coeficiente del grado más alto de la variable.

Este algoritmo calcula no solo el máximo común divisor (el último r i distinto de cero ), sino también todos los polinomios subresultantes: El resto r i es el polinomio subresultante (deg( r i −1 ) − 1) -ésimo. Si deg( r i ) < deg( r i −1 ) − 1 , el polinomio subresultante deg( r i ) -ésimo es lc( r i ) deg( r i −1 )−deg( r i )−1 r i . Todos los demás polinomios subresultantes son cero.

Secuencia de Sturm con pseudorestos

Se pueden usar pseudorestos para construir secuencias con las mismas propiedades que las secuencias de Sturm . Esto requiere controlar los signos de los pseudorestos sucesivos, para que tengan los mismos signos que en la secuencia de Sturm. Esto se puede hacer definiendo un pseudoresto modificado de la siguiente manera.

Sigrados(A)=a{\displaystyle \deg(A)=a}ygrados(B)=b{\displaystyle \deg(B)=b}y ab , el pseudoresto modificado prem2( A , B ) de la pseudodivisión de A por B es prem2(A,B)=movimiento rápido del ojo(|lc(B)|ab+1A,B),{\displaystyle \operatorname {prem2} (A,B)=-\operatorname {rem} (\left|\operatorname {lc} (B)\right|^{a-b+1}A,B),} donde | lc( B ) | es el valor absoluto del coeficiente principal de B (el coeficiente de X b ).

Para polinomios de entrada con coeficientes enteros, esto permite recuperar secuencias de Sturm formadas por polinomios con coeficientes enteros. La secuencia de pseudorestos resultante puede modificarse de forma similar, en cuyo caso los signos de los restos coinciden con los calculados sobre los números racionales.

Tenga en cuenta que el algoritmo para calcular la secuencia de pseudoresto subresultante dada anteriormente calculará polinomios subresultantes incorrectos si se utilizapagrmimetro2(A,B){\displaystyle -\mathrm {prem2} (A,B)}en lugar deprem(A,B){\displaystyle \operatorname {prem} (A,B)}.

Algoritmo modular de MCD

Si f y g son polinomios en F [ x ] para algún cuerpo finitamente generado F , el algoritmo euclidiano es la forma más natural de calcular su MCD. Sin embargo, los sistemas modernos de álgebra computacional solo lo utilizan si F es finito debido a un fenómeno llamado expansión de expresiones intermedias . Aunque los grados siguen disminuyendo durante el algoritmo euclidiano, si F no es finito , el tamaño en bits de los polinomios puede aumentar (a veces drásticamente) durante los cálculos porque las operaciones aritméticas repetidas en F tienden a generar expresiones más grandes. Por ejemplo, la suma de dos números racionales cuyos denominadores están acotados por b conduce a un número racional cuyo denominador está acotado por b² , por lo que , en el peor de los casos, el tamaño en bits podría casi duplicarse con una sola operación.

Para agilizar el cálculo, tomemos un anillo D tal que f y g pertenezcan a D [ x ] , y un ideal I tal que D / I sea un anillo finito. Luego, calculemos el MCD sobre este anillo finito con el algoritmo euclidiano. Mediante técnicas de reconstrucción ( teorema chino del resto , reconstrucción racional , etc.), se puede recuperar el MCD de f y g a partir de su imagen módulo una serie de ideales I. Se puede demostrar [ 3 ] que esto funciona siempre que se descarten las imágenes modulares con grados no mínimos y se eviten los ideales I módulo cuyo coeficiente principal se anule.

SuponerF=Q(3){\displaystyle F=\mathbb {Q} ({\sqrt {3}})},D=Z[3]{\displaystyle D=\mathbb {Z} [{\sqrt {3}}]},F=3incógnita35incógnita2+4incógnita+9{\displaystyle f={\sqrt {3}}x^{3}-5x^{2}+4x+9}ygramo=incógnita4+4incógnita2+33incógnita6{\displaystyle g=x^{4}+4x^{2}+3{\sqrt {3}}x-6}Si tomamosI=(2){\displaystyle I=(2)}entoncesD/I{\displaystyle D/I}es un anillo finito (no un cuerpo ya queI{\displaystyle I}no es máximo enD{\displaystyle D}). El algoritmo euclidiano aplicado a las imágenes deF,gramo{\displaystyle f,g}en(D/I)[incógnita]{\displaystyle (D/I)[x]}tiene éxito y devuelve 1. Esto implica que el MCD deF,gramo{\displaystyle f,g}enF[incógnita]{\displaystyle F[x]}También debe ser 1. Tenga en cuenta que este ejemplo podría manejarse fácilmente con cualquier método porque los grados eran demasiado pequeños para que ocurriera la expansión de la expresión, pero ilustra que si dos polinomios tienen MCD 1, entonces es probable que el algoritmo modular termine después de un solo ideal.I{\displaystyle I}.

Véase también

Notas

  1. Muchos autores definen la matriz de Sylvester como la transpuesta de S. Esto rompe la convención habitual para escribir la matriz de una aplicación lineal.

Referencias

Citas

Bibliografía

  • Basu, Saugata; Pollack, Richard; Roy, Marie-Françoise (2006). Algoritmos en geometría algebraica real, capítulo 4.2 . Springer-Verlag .
  • Davenport, James H.; Siret, Yvon; Tournier, Évelyne (1988). Álgebra computacional: sistemas y algoritmos para la computación algebraica . Traducido del francés por A. Davenport y JH Davenport. Academic Press. ISBN 978-0-12-204230-0.
  • van Hoeij, M.; Monagan, MB (2004). Algoritmos para el cálculo del MCD polinomial sobre campos de funciones algebraicas . ISSAC 2004. pp. 297–304 . 
  • Javadi, SMM; Monagan, MB (2007). Un algoritmo MCD modular disperso para polinomios sobre cuerpos de funciones algebraicas . ISSAC 2007. pp. 187–194 . 
  • Knuth, Donald E. (1969). El arte de la programación de computadoras II . Addison-Wesley. págs. 370–371 . 
  • Knuth, Donald E. (1997). Algoritmos seminuméricos . El arte de la programación informática. Vol.  2 (Tercera  ed.). Reading, Massachusetts: Addison-Wesley. pp. 439–461 , 678–691 . ISBN  0-201-89684-2.
  • Loos, Rudiger (1982), "Secuencias de restos polinomiales generalizadas", en B. Buchberger; R. Loos; G. Collins (eds.), Álgebra computacional , Springer Verlag
  • Paola Boito: Métodos basados ​​en matrices estructuradas para el MCD polinomial aproximado , Scuola Normale Superiore Pisa, ISBN 978-88-7642-380-2 (2011).