División de polinomios

La división de polinomios  es la operación de división con resto en el anillo euclidiano de polinomios en una variable sobre algún campo . El algoritmo ingenuo que implementa esta operación es una forma generalizada de división de columnas , que se implementa fácilmente de forma manual.

Para cualquier polinomio y , , existen polinomios únicos y tales que

,

y tiene un grado menor que .

El propósito de los algoritmos de división de polinomios es encontrar el cociente y el resto de un divisor divisible y distinto de cero [1] .

Planteamiento del problema

El problema de dividir polinomios con resto se puede formular en las siguientes formulaciones equivalentes [2] .

Cociente y resto

Los polinomios de grado y grado están dados por sus coeficientes. Es necesario encontrar el cociente y el resto tal que [2]

(una)

Los polinomios así definidos y son únicos - si suponemos que la ecuación ( 1 ) tiene dos soluciones y , entonces

de donde se sigue que o , lo que también implica , o el grado no es menor que el grado , lo cual es imposible por definición [3] .

Ajuste de matriz

Este problema se puede reescribir en forma matricial, si asumimos que y se dan , y necesitamos calcular tal que [ 2]

(2)

Matriz inversa de Toeplitz

Debido a que , para resolver el problema, basta encontrar por las primeras ecuaciones del sistema . Si consideramos solo estas ecuaciones, el problema se convierte en

(3)

La matriz de este sistema de ecuaciones es triangular inferior y Toeplitz , compuesta por coeficientes principales y ceros, y la solución del sistema equivale a encontrar su inversa [2] .

Módulo del polinomio inverso

Sean y  polinomios obtenidos de y al invertir la secuencia de coeficientes. El sistema de ecuaciones ( 3 ) se puede formular como

donde , y significa que los residuos después de dividir los polinomios y por son iguales. La división de un polinomio por se puede representar como , por lo que el resto es igual al polinomio obtenido de los primeros coeficientes , es decir,

Si se conocen los polinomios y , entonces , ¿dónde  está el polinomio inverso en el anillo de residuos módulo . Por lo tanto, la búsqueda puede reducirse a encontrar , tal que

(cuatro)

Esta formulación también permite encontrar la matriz inversa en el sistema ( 3 ):

Sea la matriz de tamaño de ( 3 ). Entonces es una matriz Toeplitz triangular inferior, cuya primera columna es , donde están los coeficientes de ( 4 ).

Prueba

El sistema ( 3 ) es equivalente a la ecuación . En consecuencia, el sistema

se puede representar como , que en el caso ( 4 ) es equivalente al sistema ( 3 ).

Debido a la arbitrariedad del polinomio que define los elementos , este hecho nos permite encontrar la inversa de una matriz triangular inferior arbitraria de Toeplitz [2] .

Serie de potencia formal

La ecuación se puede ver no sólo en módulo , sino también como una igualdad en el anillo de series formales de potencia . Sean y  series de potencias formales coincidentes con los polinomios y . Si en tales términos encontramos la serie formal

(5)

entonces sus coeficientes a potencias más bajas corresponderán al polinomio requerido . Este enfoque también nos permite considerar el problema ( 2 ) como un sistema con una matriz de Toeplitz infinitamente extendida y una columna infinitamente extendida , en la que se excluye la columna de residuos . Resolver las primeras filas de dicho sistema dará los primeros coeficientes de la serie , a saber . Al mismo tiempo, trabajar con series de potencias en general, en las que solo interesan los primeros coeficientes de la serie (por ejemplo, debido a la memoria disponible limitada), es equivalente a trabajar con polinomios, cuyas operaciones se realizan en el módulo anillo de residuos [4] . En particular, la búsqueda de los primeros coeficientes equivale a resolver la ecuación [2] .

Métodos de solución

División de columnas

En el curso del algoritmo, los coeficientes a potencias más altas se ponen a cero secuencialmente al restar multiplicado por alguna potencia con coeficientes, que luego forman el cociente . Inicialmente, el coeficiente se determina igual a . Si ampliamos , entonces

Reemplazando , esta ecuación toma la forma

similar a la ecuación ( 1 ). En este caso, el coeficiente th , por definición , es igual a , por lo que el grado será menor que el grado . El procedimiento se repite hasta que el grado sea menor que el grado , lo que significará que el siguiente es igual a él [3] .

Ejemplo

Sea y . Para polinomios dados, la división de columnas por se puede escribir como

De este modo,

es decir, el polinomio  es un cociente y a  es el resto.

Algoritmo de tamizado-Kohn

En 1972, Malte Zieveking propuso un algoritmo para encontrar una solución a una ecuación dada y [5] . En 1974 , Kong Xiangzhong mostró que para , el algoritmo es una iteración del método de Newton para [6] . Con este enfoque, la iteración toma la forma

Donde denota la derivada de la función en el punto . Para evaluar la precisión del algoritmo, se puede estimar la diferencia

de donde se sigue que si es divisible por (lo que equivale a que los primeros coeficientes estén bien definidos), entonces será divisible por . Así, dada la condición inicial , cada iteración duplica el número de coeficientes definidos con precisión . Por lo tanto, las iteraciones son suficientes para el cálculo . La aplicación de la transformada rápida de Fourier a la multiplicación de polinomios en la fórmula anterior conduce al tiempo de ejecución final , lo que mejora significativamente la estimación para la multiplicación larga habitual [7] .

Ejemplo

Sea y . Debido a ( 4 ), es necesario encontrar . El polinomio inverso se busca de la siguiente manera:

  1. La aproximación inicial se define como ;
  2. La primera aproximación se define como ;
  3. La segunda aproximación se define como .

Debido a las propiedades del método de Newton, los primeros coeficientes se determinan correctamente. Dado que los cálculos adicionales se realizan en módulo , los coeficientes a potencias más altas pueden descartarse. De aquí

en virtud del cual .

Análisis de algoritmos

Para evaluar la efectividad de varios métodos, se utiliza la complejidad del circuito aritmético  : el número total de operaciones de suma, multiplicación, resta y división sobre el campo de números complejos que deben realizarse durante la operación del algoritmo. También se estima el número de pasos paralelos requeridos para la implementación multiprocesador del algoritmo, asumiendo que cada procesador en cualquier paso no puede realizar más de una operación [7] .

Cada iteración del algoritmo de división consiste en restar el desplazamiento por alguna cantidad de , lo que se puede hacer en . Dado que el grado , inicialmente igual a , disminuye hasta que se vuelve menor que , el tiempo total de ejecución del algoritmo se puede estimar como , donde [2] .

Véase también

Notas

  1. Skanavi M. I. Matemáticas elementales. - 2ª ed., revisada. y adicional - M. : Nauka, 1972. - S. 142-147. — 592 pág.
  2. ↑ 1 2 3 4 5 6 7 Bini, Pan, 1986 , págs. 184-186
  3. ↑ 12 Knuth , 1997 , págs. 420-421
  4. Knuth, 1997 , págs. 525-533
  5. Tamizado, 1972
  6. Kung, 1974
  7. ↑ 1 2 Bini, Pan, 1986 , págs. 186-188

Literatura