All published worksheets from http://sagenb.org
Image: ubuntu2004
Interpolación de Lagrange
Recordemos el siguiente teorema conocido por el alumno.
Teorema. Sean , puntos distintos del plano donde las primeras coordenadas son todas dintintas. si . Entonces existe un único polinomio de grado a lo sumo tal que , .
Vamos a ver que este teorema no es más que el Teorema Chino de los Restos: la aplicación es un homomorfismo suprayectivo de anillos cuyo núcleo es el ideal y, por tanto,
Dados puntos , el problema de buscar un polinomio tal que , equivale a saber si el punto está en la imagen de la aplicación:
La primera parte del teorema chino de los restos, afirma que, si los ideales son comaximales dos a dos entonces siempre hay solución. Notese que y son comaximales si y solo si , pues, en ese caso,
Por otro lado, la segunda parte del teorema chino de los restos afirma que el núcleo del homomorfismo anterior es el ideal . Así, tenemos el isomorfismo: por lo que hay una única clase módulo del problema. Esta clase tiene un único representante dado por un polinomio de grado a lo más , que se obtiene de dividir cualquier representante de por .
Además, en este caso, la solución dada tipicamente en el teorema de interpolación de Lagrange es la misma que define el teorema Chino de los restos. Sea: estos polinomios cumplen que:
por lo que, la solución buscada es:
Cálculo de determinantes usando el Teorema Chino de los restos
Supongamos que tenemos una matriz cuyas entradas son polinomios .
Si calculamos el determinante de usando el método de Gauss tenemos el problema de que el grado de las funciones racionales que aparecen en la eliminación gausiana crece exponenciamente con el tamaño de la matriz.
El código anterior escalona una matriz dada por filas y también devuelve el número de intercambios que hemos hecho en las filas de la matriz. Apliquémoslo a unos ejemplos
Es crecimiento anterior en el grado de los polinomios es lineal. Este crecimiento es mucho más acusado si incluimos denominadores
Escalonamos la matriz anterior usando eliminación Gaussiana y escribimos una nueva matriz que contenga en sus entradas el máximo de los grados de numerador y denominador
En cualquier caso, el método de Gauss permite calcular el determinante de la matriz
En la matriz anterior, en cada columna hay elementos de grado, a lo más, , luego el determinante solo puede tener grado a lo más .
Si evaluo la matriz en elementos de distintos, hay un único polinomio de grado a lo más 10 tal que . Como el determinante es un polinomio que cumple lo anterior, tenemos que el determinante lo podemos calcular con la interpolación de Lagrange/Teorema Chino de los Restos.
Comparemos los dos algoritmos para calcular determinantes en matrices aleatorias de distintos tamaños
Caso de entradas polinomios
Observamos que, en esta implementación, para matrices hasta tamaño 9-10 y entradas polinomios de grado 2 con coeficientes pequeños es mejor usar el método de Gauss, sin embargo, a partir de tamaño 11, el coste del algoritmo de Gauss se vuelve prohibitivo, mientras que el método de interpolación todavía es usable.
Vamos a hora a dibujar un gráfico que represente el caso peor del tiempo de ejecución en una matriz de polinomios. Compararemos
- El método de Gauss
- El método del Teorema Chino de los restos
- Los algoritmos internos considerada la matriz como matriz de polinomios
- Los algoritmos internos considerada la matriz como matriz de funciones racionales
En azul el tiempo que tarda el método de Gauss
En rojo el tiempo que tarda el método de interpolación
En verde, el tiempo que tarda el comando interno del determinante en Sage, como polinomios
En naranja, el tiempo que tarda el comando interno del determinante en Sage, como funciones racionales
Como conlusión, no es sorprendente ver que el mejor método es el determinante interno cuando las entradas son polinomios. Sin embargo, sorprende lo pésimo que es el método por defecto sobre la misma matriz pero considerada en en lugar de . Esto es debido a que no hay un método específico para y está usando un método libre de divisiones que vale para cualquier cuerpo.
De los dos métodos que hemos programado, para matries de mayor tamaño es mucho mejor la interpolación.
Veamos que ocurre con matrices con entradas funciones racionales.
Aquí se puede apreciar que el método interno para calcular determinantes en debe ser modificado.