Máximo común divisor de polinomios
En álgebra, el máximo común divisor (abreviado frecuentemente como MCD) de dos polinomios es un polinomio, del grado más alto posible, que es un 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 polinómico puede calcularse, como en el caso del MCD entero, mediante el algoritmo euclidiano utilizando la división larga. El MCD polinómico se define sólo hasta la multiplicación por una constante invertible.
La similitud entre el MCD de enteros y el MCD de polinomios permite extender a polinomios univariados todas las propiedades que se pueden deducir del algoritmo de Euclides y de la división de Euclides. Además, el MCD de polinomios tiene propiedades específicas que lo convierten en una noción fundamental en varias áreas del álgebra. Normalmente, las raíces del MCD de dos polinomios son las raíces comunes de los dos polinomios, y esto proporciona información sobre las raíces sin 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 puede definirse y existe, de manera más general, para polinomios multivariados sobre un cuerpo o el anillo de números enteros, y también sobre un dominio de factorización único. Existen algoritmos para calcularlos tan pronto como se tiene un algoritmo MCD en el anillo de coeficientes. Estos algoritmos proceden por una recursión sobre el número de variables para reducir el problema a una variante del algoritmo euclidiano. Son una herramienta fundamental en el álgebra computacional, porque los sistemas de álgebra computacional los utilizan sistemáticamente para simplificar fracciones. Por el contrario, la mayor parte de la teoría moderna del MCD polinomial se ha desarrollado para satisfacer la necesidad de eficiencia de los sistemas de álgebra computacional.
Definición general
Sean p y q polinomios con coeficientes en un dominio integral F, típicamente un cuerpo o los números enteros. Un 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. Cada 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 máximo común divisor si y sólo si divide tanto a p como a q, y tiene el mayor grado entre los polinomios que tienen 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 divisor común más grande no es único: si d es un GCD de p y q, entonces el polinomio f es otro GCD si y sólo si hay un elemento invertible u de F tales que y En otras palabras, el GCD es único hasta la multiplicación por una constante invertible.
En el caso de los números enteros, esta indeterminación se ha resuelto eligiendo como MCD el único que es positivo (existe otro, que es su opuesto). Con esta convención, el MCD de dos números enteros es también el máximo común divisor (para el ordenamiento habitual). Sin embargo, como no existe un orden total natural para los polinomios sobre un dominio entero, no se puede proceder de la misma manera en este caso. Para polinomios univariados sobre un cuerpo, se puede exigir además que el MCD sea mónico (es decir, que tenga 1 como su coeficiente de grado más alto), pero en casos más generales no existe una convención general. Por lo tanto, igualdades como d = mcd(p, q) o mcd(p, q) = mcd(r, s) son abusos comunes de notación que deben leerse "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 caso entero, se dice que p y q son polinomios coprimos.
Propiedades
- Como se indicó anteriormente, el GCD de dos polinomios existe si los coeficientes pertenecen a un campo, el anillo de los enteros, o más generalmente a un dominio de factorización único.
- Si c es cualquier divisor común p y qEntonces c divide su GCD.
- para cualquier polinomio r. Esta propiedad se basa en la prueba del algoritmo de Euclidean.
- Para cualquier elemento invertible k del anillo de los coeficientes, .
- Por lo tanto para cualquier escalar tales que es invertible.
- Si Entonces .
- Si Entonces .
- Para dos polinomios univarios p y q sobre un campo, existen polinomios a y b, tal que y divide cada combinación lineal de p y q (Identidad de Bézout).
- El mayor divisor común de tres o más polinomios puede definirse de forma similar a dos polinomios. Puede ser computado recursivamente de GCD de dos polinomios por las identidades: y
GCD por computación manual
Existen varias formas de hallar el máximo común divisor de dos polinomios. Dos de ellas son:
- Factorización de los polinomios, en el que se encuentran los factores de cada expresión, entonces se selecciona el conjunto de factores comunes mantenidos por todos dentro de cada conjunto de factores. Este método puede ser útil sólo en casos simples, ya que el factoring suele ser más difícil que calcular el mayor divisor común.
- El algoritmo de Euclide, que se puede utilizar para encontrar el GCD de dos polinomios de la misma manera que para dos números.
Factorización
Para hallar el MCD de dos polinomios mediante factorización, simplemente factorizamos los dos polinomios por completo. Luego, tomamos el producto de todos los factores comunes. En esta etapa, no necesariamente tenemos un polinomio mónico, por lo que finalmente multiplicamos esto 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: Halla el MCD de x2 + 7x + 6 y x2 − 5x − 6.
Por lo tanto, su MCD es x + 1.
algoritmo de Euclide
La factorización de polinomios puede ser difícil, especialmente si los polinomios tienen un grado grande. El algoritmo de Euclides es un método que funciona para cualquier par de polinomios. Hace uso repetido de la división euclidiana. Cuando se utiliza este algoritmo en dos números, el tamaño de los números disminuye en cada etapa. Con los polinomios, el grado de los polinomios disminuye en cada etapa. El último resto distinto de cero, convertido en mónico si es necesario, es el MCD de los dos polinomios.
Más específicamente, para encontrar el gcd de dos polinomios a()x) y b()x), uno puede suponer b ل 0 (Otra vez, el GCD es a()x)), y
La división Euclideana proporciona dos polinomios q()x), el quot;ient y r()x), el resto tales que
Un polinomio g()x) divide ambos a()x) y b()x) si y sólo si divide ambos b()x) y r0()x). Así Ajuste uno puede repetir la división Euclidea para conseguir nuevos polinomios q1()x), r1()x), a2()x), b2()x) y así sucesivamente. En cada etapa tenemos así que la secuencia eventualmente alcanzará un punto en el que y uno tiene el GCD:
Ejemplo: hallar el MCD de x2 + 7x + 6 y x2 − 5x − 6:
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 12 antes del segundo paso. Esto siempre se puede hacer utilizando secuencias de pseudorestos, pero, sin cuidado, esto puede introducir números enteros muy grandes durante el cálculo. Por lo tanto, para el cálculo informático, se utilizan otros algoritmos, que se describen a continuación.
Este método funciona únicamente 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 números enteros, números racionales, elementos de un cuerpo finito o deben pertenecer a alguna extensión de un cuerpo finito generado de uno de los cuerpos anteriores. Si los coeficientes son números de punto flotante que representan números reales que se conocen sólo de forma aproximada, entonces se debe conocer el grado del MCD para tener un resultado de cálculo bien definido (es decir, un resultado numéricamente estable; en estos casos se pueden utilizar otras técnicas, generalmente basadas en la descomposición en valores singulares).
Polinomios unitarios con coeficientes en un campo
El caso de polinomios univariados sobre un cuerpo es especialmente importante por varias razones. En primer lugar, es el caso más elemental y, por lo tanto, aparece en la mayoría de los primeros cursos de álgebra. En segundo lugar, es muy similar al caso de los números enteros, y esta analogía es la fuente de la noción de dominio euclidiano. Una tercera razón es que la teoría y los algoritmos para el caso multivariado y para los coeficientes en un dominio de factorización único se basan fuertemente en este caso particular. Por último, pero no por ello menos importante, los algoritmos de MCD polinómico y los algoritmos derivados permiten obtener información útil sobre las raíces de un polinomio, sin calcularlas.
División Euclidea
La división euclidiana de polinomios, que se utiliza en el algoritmo de Euclides para la computación de GCDs, es muy similar a la división euclidiana de enteros. Su existencia se basa en el siguiente teorema: Dados dos polinomios univarios a y b √ 0 definido sobre un campo, existen dos polinomios q ( quot;ient) y r ( resto) que satisface y Dondedeg(...)" denota el grado y el grado del polinomio cero se define como negativo. Además, q y r se definen singularmente por estas relaciones.
La diferencia con la división euclidiana de los números enteros es que, para los números enteros, el grado se reemplaza por el valor absoluto y que para tener unicidad hay que suponer que r no es negativo. Los anillos para los que existe tal teorema se denominan dominios euclidianos.
Al igual que en el caso de los números enteros, la división euclidiana de los polinomios se puede calcular mediante el algoritmo de división larga. Este algoritmo se presenta habitualmente para el cálculo con lápiz y papel, pero funciona bien en las computadoras 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 con lápiz y papel 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 EuclideaEntrada: a y b √ 0 dos polinomios en la variable x; Producto: q, el cociente, y r, el resto; Comienzo q:= 0 r:= a d:= deg(b) c:= lcb) mientras deg(r) ≥ d do s:=r)/c) ⋅ xdeg(r) -d q:= q + s r:= r − sb fin do Regreso ()q, r) final
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 decrece 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 Euclid
En cuanto a los números enteros, la división euclidiana nos permite definir el algoritmo de Euclides para calcular los MCD.
A partir de dos polinomios a y b, el algoritmo de Euclides consiste en sustituir recursivamente el par (a, b) por (b, rem(a, b)) (donde "rem(a, b)" denota el resto de la división euclidiana, calculada por el algoritmo de la sección precedente), hasta que b = 0. El MCD es el último resto distinto de cero.
El algoritmo de Euclid puede ser formalizado en el estilo de programación recurrente como:
En el estilo de programación imperativo, el mismo algoritmo se convierte en, dando un nombre a cada resto intermedio:
r0:= ar1:= bpara ()i:= 1; ri ≤ 0; i:= i + 1) do ri+ 1:= remri−1, ri)fin doRegreso ri-1.
La secuencia de los grados de ri es estrictamente decreciente. Por lo tanto, después de, como máximo, deg(b) pasos, se obtiene un resto nulo, digamos rk. Como (a, b) y (b, rem(a,b)) tienen los mismos divisores, el conjunto de divisores comunes no se modifica mediante el algoritmo de Euclides y, por lo tanto, todos los pares (ri, ri+1) tienen el mismo conjunto de divisores comunes. Los divisores comunes de a y b son, por lo tanto, los divisores comunes de rk−1 y 0. Por lo tanto, rk−1 es un MCD de a y b. Esto no solo demuestra que el algoritmo de Euclides calcula los MCD, sino que también demuestra que los MCD existen.
Identidad de Bézout y algoritmo de GCD extendido
La identidad de Bézout es un teorema relacionado con el MCD, demostrado inicialmente para los números enteros, que es válido para todo dominio de ideales principales. En el caso de los polinomios univariados sobre un cuerpo, puede enunciarse de la siguiente manera.
y bien u = 1, v = 0o u = 0, v = 1o
El interés de este resultado en el caso de los polinomios es que existe un algoritmo eficiente para calcular los polinomios u y v. Este algoritmo difiere del algoritmo de Euclides en que se realizan unos pocos cálculos más en cada iteración del bucle. Por lo tanto, se 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.
GCD ampliado algoritmo Entrada: a, b, polinomios univarios Producto: g, el GCD a y b u, v, como se indica anteriormente a1, b1, tal que a = g a1 b = g b1Comienzo()r0, r1):=a, b) ()s0, s1):= (1, 0) ()t0, t1):= (0, 1) para ()i:= 1; ri ل 0; i:= i+1) do q:= quori−1, ri) ri+ 1:= ri−1 − qri si+ 1:= si−1 − qsi ti+ 1:= ti−1 − qti fin do g:= ri−1 u:= si−1 v:= ti−1 a1:= (−1)i−1 ti b1:= (−1)i tiFinal
La prueba de que el algoritmo satisface su especificación de salida depende del hecho de que, por cada i tenemos la última igualdad que implica La afirmación en los grados se deriva del hecho de que, en cada iteración, los grados si y ti aumento en la mayoría como el grado ri disminuciones.
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 MCD.
Aritmética de extensiones algebraicas
Una aplicación importante del algoritmo MCD extendido es que permite calcular la división en extensiones de campos algebraicos.
Sea L una extensión algebraica de un cuerpo K, generado por un elemento cuyo polinomio mínimo f tiene grado n. Los elementos de L se representan habitualmente por polinomios univariados sobre K de grado menor que n.
La adición L es simplemente la adición de polinomios:
La multiplicación en L es la multiplicación de polinomios seguidos por la división por f:
La inversa de un elemento distinto de cero 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 grados 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).
Subresultants
En el caso de polinomios univariados, existe una fuerte relación entre los máximos comunes divisores y las resultantes. Más precisamente, la resultante de dos polinomios P, Q es una función polinómica de los coeficientes de P y Q que tiene el 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 de forma genérica el MCD de dos polinomios, siendo el resultante el polinomio subresultante 0-ésimo.
El i- subresultant polynomial Si()PQ) de dos polinomios P y Q es un polinomio de grado en la mayoría i cuyos coeficientes son funciones polinómicas de los coeficientes P y Q, y i- principal subresultant coefficient si()PQ) es el coeficiente de grado i de Si()P, Q). Tienen la propiedad que el GCD de P y Q tiene un título d si
En este caso, Sd()PQ) es un GCD de P y Q y
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.
Vamos. φ ser un homomorfismo de anillo R en otro anillo conmutativo S. Se extiende a otro homomorfismo, denotado también φ entre los anillos de polinomios R y S. Entonces, si P y Q son polinomios univariados con coeficientes en R tales que y entonces los polinomios subresultantes y los principales coeficientes de subresultantes φ()P) y φ()Q) son la imagen por φ de los P y Q.
Las subresultantes tienen dos propiedades importantes que las hacen fundamentales para el cálculo en computadoras del MCD de dos polinomios con coeficientes enteros. En primer lugar, su definición a través de determinantes permite acotar, mediante la desigualdad de Hadamard, el tamaño de los coeficientes del MCD. En segundo lugar, esta acotación y la propiedad de buena especialización permiten calcular el MCD de dos polinomios con coeficientes enteros mediante el cálculo modular y el teorema chino del resto (ver más abajo).
Definición técnica
Vamos. ser dos polinomios univariados con coeficientes en un campo K. Denotamos el K espacio vectorial de dimensión i de polinomios de grado menos que i. Para entero no negativo i tales que i ≤ m y i ≤ n, vamos ser el mapa lineal tal que
El resultado de P y Q es el determinante de la matriz de Sylvester, que es la matriz (cuare) sobre las bases de los poderes X. Del mismo modo, el i- polinomio subresultante se define en el término de determinantes de submatrices de la matriz
Describamos estas matrices con más precisión;
Vamos. pi = 0 para i 0 o i ■ m, y qi = 0 para i 0 o i ■ n. La matriz de Sylvester es ()m + n) ×m + n)-Matrix tal que el coeficiente del i- la fila y la j- la columna es pm+j−i para j ≤ n y qj−i para j ■ n:
La matriz Ti de es ()m + n − i) ×m + n − 2i)- Sumatrix S que se obtiene eliminando el último i filas de ceros en la submatrix de las columnas 1 a n − i y n + 1 a m + n − i de S (eso es quitar i columnas en cada bloque y la i últimas filas de ceros). El principal subresultant coefficient si es el determinante del m + n − 2i primeras filas de Ti.
Vamos. Vi ser el ()m + n − 2i) ×m + n − i) matriz definida como sigue. Primero agregamos ()i + 1) columnas de ceros a la derecha del ()m + n − 2i − 1) ×m + n − 2i −1) matriz de identidad. Luego bordeamos el fondo de la matriz resultante por una fila consistente en ()m + n − i −1) ceros seguidos Xi, Xi−1,... X, 1:
Con esta notación, el i-ésimo polinomio subresultante es el determinante del producto matricial ViTi. Su coeficiente de grado j es el determinante de la submatriz cuadrada de Ti que consiste en sus primeras filas m + n − 2i − 1 y la fila (m + n − i − j)-ésima.
Sketch of the proof
No es obvio que, tal como se define, las subresultantes tengan las propiedades deseadas. Sin embargo, la demostración es bastante simple si se juntan las propiedades del álgebra lineal y las de los polinomios.
Como se define, las columnas de la matriz Ti son los vectores de los coeficientes de algunos polinomios pertenecientes a la imagen de . La definición de la i-th subresultant polynomial Si muestra que el vector de sus coeficientes es una combinación lineal de estos vectores de columna, y por lo tanto que Si pertenece a la imagen de
Si el grado de GCD es mayor que i, entonces la identidad de Bézout muestra que cada polinomio no cero en la imagen de tiene un grado mayor que i. Esto implica que Si = 0.
Si, por otro lado, el grado del GCD es i, entonces la identidad de Bézout de nuevo permite probar que los múltiples del GCD que tienen un grado inferior a m + n − i están en la imagen de . El espacio vectorial de estos múltiples tiene la dimensión m + n − 2i y tiene una base de polinomios de dos grados diferentes, no menor que i. Esto implica que la submatrix de la m + n − 2i primera filas de la forma de echelon columna de Ti es la matriz de identidad y así si no es 0. Así Si es un polinomio en la imagen de , que es un múltiple del GCD y tiene el mismo grado. Es por lo tanto un divisor más común.
GCD and root finding
Factorización libre de plazas
La mayoría de los algoritmos de búsqueda de raíces no funcionan bien con polinomios que tienen múltiples raíces. Por lo tanto, es útil detectarlos y eliminarlos antes de llamar a un algoritmo de búsqueda de raíces. Un cálculo de MCD permite detectar la existencia de múltiples raíces, ya que las múltiples raíces de un polinomio son las raíces del MCD del polinomio y su derivada.
Después de computar el GCD del polinomio y su derivado, otras computaciones GCD proporcionan el completo factorización sin plazas del polinomio, que es una factorización donde, para cada i, el polinomio fi o es 1 si f no tiene ninguna raíz de la multiplicidad i o es un polinomio libre de cuadrado (que es un polinomio sin múltiples raíces) cuyas raíces son exactamente las raíces de la multiplicidad i de f (ver el algoritmo de Yun).
Por lo tanto, 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 grado inferior. La factorización sin cuadrados también es el primer paso en la mayoría de los algoritmos de factorización de polinomios.
Secuencia robusta
El Secuencia robusta de un polinomio con coeficientes reales es la secuencia de los restos proporcionados por una variante del algoritmo de Euclides aplicado al polinomio y su derivado. Para obtener la secuencia Sturm, uno simplemente reemplaza la instrucción del algoritmo de Euclid por
Sea V(a) el número de cambios de signo en la secuencia, cuando se evalúa 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 secuencia 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 ubica las raíces reales en intervalos de longitud arbitrariamente pequeña.
GCD sobre un anillo y su campo de fracciones
En esta sección, consideramos polinomios sobre un dominio de factorización único R, típicamente el anillo de los números enteros, y sobre su campo de fracciones F, típicamente el campo de los números racionales, y denotamos R[X] y F[X] como los anillos de polinomios en un conjunto de variables sobre estos anillos.
Factorización de contenido de parte primitiva
El contenido de un polinomio p ▪ R[X], denotado "cont(p)", es el GCD de sus coeficientes. Un polinomio q ▪ F[X] puede ser escrito Donde p ▪ R[X] y c ▪ R: basta tomar para c a múltiples de todos los denominadores de los coeficientes de q (por ejemplo su producto) y p = cq. El contenido de q se define como: En ambos casos, el contenido se define hasta la multiplicación por una unidad de R.
El parte primitiva de un polinomio en R[X] o F[X] se define por
En ambos casos, se trata de un polinomio en R[X] que es primitivo, lo que significa que 1 es un MCD de sus coeficientes.
Así cada polinomio en R[X] o F[X] se puede tener en cuenta y esta factorización es única hasta la multiplicación del contenido por una unidad de R y de la parte primitiva por el inverso de esta unidad.
La lema de Gauss implica que el producto de dos polinomios primitivos es primitivo. De ello se desprende que y
Relación entre el GCD sobre R y más F
Las relaciones de la sección precedente 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 q1 y q2 pertenecer a F[X]Entonces
Si p1 y p2 pertenecer a R[X]Entonces y
Por lo tanto, el cálculo de MCD polinómicos es esencialmente el mismo problema sobre F[X] y sobre R[X].
Para polinomios univariados sobre números racionales, se puede pensar que el algoritmo de Euclides es un método conveniente para calcular el MCD. Sin embargo, implica simplificar una gran cantidad de fracciones de números enteros y el algoritmo resultante no es eficiente. Por esta razón, se han diseñado métodos para modificar el algoritmo de Euclides para que funcione solo con polinomios sobre números enteros. Estos métodos consisten en reemplazar la división euclidiana, que introduce fracciones, por una denominada pseudodivisión, y reemplazar la secuencia de residuos del algoritmo de Euclides por las denominadas secuencias de pseudoresiduos (ver más abajo).
Prueba de que existe GCD para polinomios multivariados
En la sección anterior hemos visto que el MCD de polinomios en R[X] puede deducirse 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 demostrar 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 demuestra que existen MCD en R[X] (el algoritmo de Euclides demuestra 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. Por lo tanto, una recursión sobre el número de variables muestra que si los MCD existen y pueden calcularse en R, entonces existen y pueden calcularse en cada anillo de polinomios multivariado sobre R. En particular, si R es el anillo de los números enteros o un cuerpo, entonces existen MCD en R[x1,..., xn], y lo que precede proporciona un algoritmo para calcularlos.
La prueba de que un anillo de polinomios sobre un dominio de factorización único es también un dominio de factorización único 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 Pseudo-remainder
En esta sección, consideramos un dominio integral Z (normalmente el anillo Z de los números enteros) y su campo de fracciones Q (normalmente el campo Q de los números racionales). Dados dos polinomios A y B en el anillo polinomial univariado 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].
Para, si uno aplica el algoritmo de Euclid a los siguientes polinomios y los sucesivos restos del algoritmo de Euclid son Se ve que, a pesar del pequeño grado y del pequeño tamaño de los coeficientes de los polinomios de entrada, uno tiene que manipular y simplificar las fracciones enteros de tamaño bastante grande.
Se ha introducido la pseudo-división para permitir una variante del algoritmo de Euclides en la que todos los residuos pertenecen a Z[X].
Si y y a ≥ b, el pseudo-remanente de la pseudo-división de A por B, denotado por prem(A,B) es Donde lc(B) es el coeficiente líder de B (el coeficiente de Xb).
El pseudoresto de la pseudodivisión de dos polinomios en Z[X] pertenece siempre a Z[X].
A secuencia pseudo-remanente es la secuencia de los (pseudo) restos ri obtenido reemplazando la instrucción del algoritmo de Euclid por Donde α es un elemento Z que divide exactamente cada coeficiente del numerador. Diferentes opciones de α dar diferentes secuencias pseudo-remanente, que se describen en las subsecciones siguientes.
Como los divisores comunes de dos polinomios no se modifican si los polinomios se multiplican por constantes invertibles (en Q), el último término distinto de cero 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. Este suele ser el caso cuando se calculan resultantes y subresultantes, o para utilizar el teorema de Sturm. Este control se puede realizar reemplazando lc(B) por su valor absoluto en la definición del pseudoresto, o controlando el signo de α (si α divide todos los coeficientes de un resto, lo mismo es cierto para −α).
Secuencia trivial pseudo-remanente
La secuencia más simple (definir) sigue siendo consistente 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 la cual los sucesivos pseudo-remanentes son El número de dígitos de los coeficientes de los restos sucesivos es más que duplicado en cada iteración del algoritmo. Este es el comportamiento típico de las secuencias triviales pseudo-remanente.
Secuencia primitiva de pseudo-remanente
La secuencia de pseudorestos primitivos consiste en tomar como α el contenido del numerador. Por lo tanto, todos los ri son polinomios primitivos.
La secuencia de pseudorestos primitiva es la secuencia de pseudorestos que genera los coeficientes más pequeños. Sin embargo, requiere calcular una cantidad de MCD en Z y, por lo tanto, no es lo suficientemente eficiente para ser utilizada en la práctica, especialmente cuando Z es en sí misma 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 El pequeño tamaño de los coeficientes oculta el hecho de que una serie de enteros GCD y divisiones por el GCD han sido computados.
Subresultant pseudo-remainder sequence
Una sucesión subresultante también puede calcularse con pseudoresiduos. El proceso consiste en elegir α de tal manera que cada ri sea un polinomio subresultante. Sorprendentemente, el cálculo de α es muy fácil (ver más abajo). Por otra parte, la demostración de la corrección del algoritmo es difícil, porque debe tener en cuenta todas las posibilidades de diferencia de grados de dos residuos consecutivos.
Los coeficientes de la secuencia subresultante rara vez son mucho mayores que los de la secuencia primitiva de pseudorestos. Como no se necesitan los cálculos de MCD en Z, la secuencia subresultante con pseudorestos ofrece el cálculo más eficiente.
Con la misma entrada que en las secciones anteriores, los restos sucesivos son Los coeficientes tienen un tamaño razonable. Se obtienen sin ningún cálculo GCD, sólo divisiones exactas. Esto hace que este algoritmo sea más eficiente que el de las secuencias pseudo-remanentes primitivas.
A continuación se muestra el algoritmo que calcula la secuencia subresultante con pseudoresiduos. En este algoritmo, la entrada (a, b) es un par de polinomios en Z[X]. Las ri son los pseudoresiduos sucesivos en Z[X], las variables i y di son números enteros no negativos y las letras griegas denotan elementos en Z. Las funciones deg()
y rem()
denotan el grado de un polinomio 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 ya sea en Z[X] o en Z.
r0:= ar1:= bpara ()i:= 1; ri ل 0; i:= i+1) do di:= deg(ri−1) − Deg(ri) γi:= lcri) si i = 1 entonces β1:= (−1)d1+ 1 ↑1:=-1 más ↑i:=γi−1)di−1 / ↑i−1di−1−1 βi:= −γi−1↑idi terminar si ri+ 1:= remγidi+ 1 ri−1, ri) βifinal for
Nota: "lc" representa el 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 polinomio ri distinto de cero), sino también todos los polinomios subresultantes: El resto ri es el polinomio subresultante (deg(ri−1) − 1)-ésimo. Si deg(ri) < deg(ri−1) − 1, el polinomio subresultante deg(ri)-ésimo es lc(ri)deg(ri−1)−deg(ri)−1ri. Todos los demás polinomios subresultantes son cero.
Secuencia robusta con pseudo-remanentes
Se pueden utilizar pseudoresiduos para construir secuencias que tengan las mismas propiedades que las secuencias de Sturm. Esto requiere controlar los signos de los pseudoresiduos sucesivos, para que tengan los mismos signos que en la secuencia de Sturm. Esto se puede hacer definiendo un pseudoresiduo modificado de la siguiente manera.
Si y y a ≥ b, el pseudo-remanente modificado prem2(A, B) de la pseudo-división de A por B es Donde Silenciolc(B)Silencio es el valor absoluto del coeficiente líder B (el coeficiente de Xb).
Para polinomios de entrada con coeficientes enteros, esto permite la recuperación de secuencias de Sturm que consisten en polinomios con coeficientes enteros. La secuencia de pseudoresiduos subresultante puede modificarse de manera similar, en cuyo caso los signos de los residuos coinciden con los calculados sobre los racionales.
Tenga en cuenta que el algoritmo para computar la secuencia pseudo-remanente del subresultante dada arriba calculará polinomios subresultantes incorrectos si se utiliza en lugar de .
algoritmo GCD modular
Si f y g son polinomios en F[x] para algún cuerpo finito F, el algoritmo euclidiano es la forma más natural de calcular su MCD. Sin embargo, los sistemas de álgebra computacional modernos solo lo utilizan si F es finito debido a un fenómeno llamado aumento de expresión intermedia. Aunque los grados siguen disminuyendo durante el algoritmo euclidiano, si F no es finito, entonces el tamaño de bits de los polinomios puede aumentar (a veces drásticamente) durante los cálculos porque las operaciones aritméticas repetidas en F tienden a conducir a 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 b2, por lo que en el peor de los casos, el tamaño de bits podría casi duplicarse con una sola operación.
Para acelerar el cálculo, tomemos un anillo D para el cual f y g están en D[x], y tomemos un ideal I tal que D/I sea un anillo finito. Luego, calculemos el MCD sobre este anillo finito con el algoritmo euclidiano. Utilizando técnicas de reconstrucción (teorema del resto chino, reconstrucción racional, etc.) se puede recuperar el MCD de f y g a partir de su imagen módulo un número de ideales I. Se puede demostrar que esto funciona siempre que se descarten imágenes modulares con grados no mínimos y se eviten ideales I módulo en los que se anule un coeficiente principal.
Suppose , , y . Si tomamos entonces es un anillo finito (no un campo desde no es maximal en ). El algoritmo de Euclidean aplicado a las imágenes de dentro éxitos y retornos 1. Esto implica que el GCD dentro Debe ser 1 también. Tenga en cuenta que este ejemplo podría ser manejado fácilmente por cualquier método porque los grados eran demasiado pequeños para que la expresión se hiciese bien, pero ilustra que si dos polinomios tienen GCD 1, entonces es probable que el algoritmo modular termine después de un solo ideal .
Véase también
- Lista de temas polinomios
- algoritmo de división multivariable
Notas
- ^ Muchos autores definen la matriz de Sylvester como la transposición de S. Esto rompe la convención habitual para escribir la matriz de un mapa lineal.
Referencias
Citaciones
- ^ a b Basu, Pollack " Roy 2006
- ^ Knuth 1969
- ^ van Hoeij " Monagan 2004
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 informática: sistemas y algoritmos para la computación algebraica. Traducido del francés por A. Davenport y J.H. Davenport. Prensa Académica. ISBN 978-0-12-204230-0.
- van Hoeij, M.; Monagan, M.B. (2004). Algoritmos para la computación polinomio GCD sobre campos de función algebraica. ISSAC 2004. pp. 297 –304.
- Javadi, S.M.M.; Monagan, M.B. (2007). Un algoritmo modular de GCD escaso para polinomios sobre campos de función algebraica. ISSAC 2007. pp. 187 –194.
- Knuth, Donald E. (1969). El arte de la programación informática II. Addison-Wesley. pp. 370 –371.
- Knuth, Donald E. (1997). Algoritmos semejante. El arte de la programación informática. Vol. 2 (Tercera edición). Reading, Massachusetts: Addison-Wesley. pp. 439 –461, 678 –691. ISBN 0-201-89684-2.
- Loos, Rudiger (1982), "Secuencias generalizadas de restos de polinomio", en B. Buchberger; R. Loos; G. Collins (eds.), Álgebra de computación, Springer Verlag
- Paola Boito: Métodos basados en matriz estructurada para GCD polinomio aproximado, Scuola Normale Superiore Pisa, ISBN 978-88-7642-380-2 (2011).