En los capítulos anteriores, estudiamos la Transformada de Teoría de Números (NTT), que evalúa un polinomio en sus k-ésimas raíces de la unidad. Puede entenderse como la transformación de un polinomio de su forma de coeficientes a su forma de punto-valor.
La NTT se puede realizar multiplicando el vector de coeficientes de un polinomio de grado (k−1) por una matriz de Vandermonde, con una complejidad temporal de O(k2). También es posible, y más interesante, usar una versión rápida y recursiva de la transformación, que reduce la complejidad temporal a O(klogk).
En este capítulo, comenzamos el estudio de la transformación inversa de la NTT, llamada Transformada Inversa de Teoría de Números, o INTT. Se puede usar para convertir un polinomio de su forma de punto-valor de vuelta a su forma de coeficientes. Este proceso se llama interpolación.
En nuestro artículo sobre interpolación de Lagrange, ya hemos visto un método para realizar la interpolación. La diferencia entre usar la interpolación de Lagrange y la Transformada Inversa de Teoría de Números es doble: la interpolación de Lagrange se puede realizar a partir de cualquier conjunto de puntos, mientras que la INTT solo se puede realizar en el conjunto de las k-ésimas raíces de la unidad. Por el contrario, la interpolación de Lagrange siempre tiene una complejidad temporal de O(k2), mientras que la INTT se puede realizar en una complejidad temporal de O(klogk).
En este capítulo, vamos a:
Recordar cómo se puede realizar la evaluación utilizando una matriz de Vandermonde;
Proponer una transformación inversa que también se realiza utilizando una matriz de Vandermonde;
Demostrar que esta transformación inversa deshace la transformación original. En otras palabras, mostraremos que la evaluación a través de NTT, seguida de la interpolación a través de INTT, devuelve el polinomio a su forma de coeficientes original.
Por ahora, trabajaremos con la INTT para un polinomio de grado 3 de modo que el lector pueda seguir más fácilmente los cálculos.
En un capítulo posterior, demostraremos que la transformación inversa propuesta se aplica a polinomios de cualquier grado.
Resumen: De la forma de coeficientes a la forma de puntos
Consideremos el polinomio
f(x)=a0+a1x+a2x2+a3x3
Para convertir este polinomio de la forma de coeficientes a la forma de punto-valor, es necesario evaluarlo en al menos 4 puntos.
Por ejemplo, si el conjunto S={1,ω,ω2,ω3} representa los puntos de evaluación, donde ω es una 4ta raíz primitiva de la unidad, las evaluaciones en estos puntos están dadas por:
donde V(ω) se llama matriz de Vandermonde, y a es el vector columna que representa los coeficientes. Puedes consultar el artículo sobre matrices de Vandermonde para aprender sobre ellas en detalle. Una matriz de Vandermonde tiene la propiedad de que cada una de sus filas forma una progresión geométrica, que es una secuencia de números en la que cada término se obtiene multiplicando el anterior por una razón constante.
En la matriz V(ω) anterior, podemos notar que:
1ra fila: [1111]→ primer término: 1, razón común: 1
2da fila: [1ωω2ω3]→ primer término: 1, razón común: ω
3ra fila: [1ω2ω4ω6]→ primer término: 1, razón común: ω2
4ta fila: [1ω3ω6ω9]→ primer término: 1, razón común: ω3
Recordemos cómo la multiplicación y=V(ω)⋅a nos da las evaluaciones de f(x):
Por lo tanto, si nos dan la forma de coeficientes de un polinomio, representada por el vector a, podemos obtener su forma de punto-valor, representada por el vector y, multiplicando a por la izquierda por la matriz de Vandermonde V(ω).
Pero, ¿qué pasa si en su lugar nos dan las evaluaciones, es decir, el vector y, y se nos pide calcular los coeficientes, es decir, el vector a?
Esto se puede hacer utilizando la inversa de la matriz de Vandermonde V(ω), denotada por V−1(ω), a través de la siguiente operación:
a=V(ω)−1⋅y
Nuestra afirmación es que la matriz V(ω)−1 está dada por
Observa que V(ω)−1 también tiene la propiedad de que cada una de sus filas forma una progresión geométrica:
1ra fila: [1111]→ primer término: 1, razón común: 1
2da fila: [1ω−1ω−2ω−3]→ primer término: 1, razón común: ω−1
3ra fila: [1ω−2ω−4ω−6]→ primer término: 1, razón común: ω−2
4ta fila: [1ω−3ω−6ω−9]→ primer término: 1, razón común: ω−3
Por lo tanto, la inversa de la matriz de Vandermonde en este caso es en sí misma otra matriz de Vandermonde.
En las siguientes secciones, demostraremos que nuestra afirmación es cierta en este ejemplo utilizando las 4-tas raíces de la unidad. En el capítulo posterior, lo demostraremos en general.
Demostraremos que, en el caso de las k-ésimas raíces de la unidad, cuando la NTT se realiza utilizando la siguiente matriz de Vandermonde,
La matriz inversa de Vandermonde, cuando se multiplica por el vector de evaluaciones de un polinomio dado en las raíces de la unidad, devuelve el vector de coeficientes de ese polinomio.
Evaluando V(ω)−1⋅y
Para demostrar que la multiplicación de la matriz entre V(ω)−1 e y nos devuelve el vector de coeficientes a, usemos nuestro ejemplo anterior, donde f(x)=a0+a1x+a2x2+a3x3, S={1,ω,ω2,ω3} y k=4.
Recordemos que y, el vector de evaluaciones de f(x) en los puntos en S, está dado por:
Ahora demostramos que los vectores a~ y a son iguales. En otras palabras, queremos mostrar que
a0~a1~a2~a3~=a0,=a1,=a2,=a3.
Calculando los coeficientes a0~,a1~,a2~ y a3~
Llevemos a cabo la multiplicación de matrices fila por fila en el lado derecho (RHS) para ver cómo se obtienen los coeficientes correspondientes en el lado izquierdo (LHS). Para el coeficiente a0~, tomamos el producto punto de la primera fila de V(ω)−1 con el vector y:
a0~ Producto punto de la primera fila de V(ω)−1 con y=41(1⋅f(1)+1⋅f(ω)+1⋅f(ω2)+1⋅f(ω3))=41(1⋅f(1)(a0+a1+a2+a3)+1⋅f(ω)(a0+a1ω+a2ω2+a3ω3)+1⋅f(ω2)(a0+a1ω2+a2ω4+a3ω6)+1⋅f(ω3)(a0+a1ω3+a2ω6+a3ω9))=41(4a0+a1(1+ω+ω2+ω3)+a2(1+ω2+ω4+ω6)+a3(1+ω3+ω6+ω9))
Recordemos del capítulo anterior que, dado que ω es una 4-ta raíz primitiva de la unidad, la suma
k=0∑3ωmk
es igual a cero siempre que m no sea un múltiplo de 4. Explícitamente,
k=0∑3ωmk=ωm⋅0+ωm⋅1+ωm⋅2+ωm⋅3=1+ωm+ω2m+ω3m=0
Para un análisis detallado de este concepto, por favor consulta el artículo sobre Ortogonalidad de las Raíces de la Unidad.
Al sustituir valores de m que no son múltiplos de 4, obtenemos las siguientes identidades:
para mpara mpara mpara mpara mpara m=1=2=3=−1=−2=−3→→→→→→1+ω+ω2+ω3=0,1+ω2+ω4+ω6=0,1+ω3+ω6+ω9=0,1+ω−1+ω−2+ω−3=0,1+ω−2+ω−4+ω−6=0,1+ω−3+ω−6+ω−9=0,
Por lo tanto, todos los términos que multiplican a a1, a2 y a3 se anulan, dejando
Nuevamente, los términos dentro de los paréntesis asociados con los factores de a0,a2,a3 se anulan, dejando
a1~=41⋅4a1=a1
Intenta expandir la multiplicación para a2~ y a3~ por tu cuenta y observa cómo se simplifican de acuerdo con la misma lógica que hemos usado anteriormente. Encontrarás que a2~=a2 y a3~=a3, como se esperaba.
Esto completa la demostración de que V(ω)−1⋅y=a. Con esto, hemos demostrado que la inversa de la matriz de Vandermonde para el caso k=4 es también una matriz de Vandermonde. El caso para un valor general de k se demostrará en el capítulo posterior.
Este artículo es parte de una serie sobre la Transformada de Teoría de Números en nuestro ZK Book