Estoy buscando alguna implementación de código abierto (cualquiera de Python, C, C ++, Fortran está bien) de aproximación racional a una función. Algo a lo largo del artículo [1]. Le doy una función y me devuelve dos polinomios, cuya relación es la aproximación en el intervalo dado y el error oscila con la misma amplitud y es una aproximación óptima, o cercana.
Aquí está lo que encontré:
Parece que chebfun puede hacer eso, pero no tengo acceso a Matlab *.
Hay un programa simple en la sección 5-13 "Aproximación racional de Chebyshev" en Recetas numéricas (NR).
Mathematica ha EconomizedRationalApproximation y MiniMaxApproximation
Me preguntaba si hay algo más nuevo (posiblemente mejor probado) que el código NR.
Mi aplicación es que tengo un conjunto de funciones especiales, alrededor de 10, que se dan como series hipergeométricas o alguna fórmula que tiene cancelaciones numéricas, y quiero tener una función de evaluación sólida, rápida y precisa, que se llama El bucle más interno del cálculo de dos elementos de matriz de partículas en los cálculos de Hartree Fock. Pongo un ejemplo simple de una función que funciona para mí en [2]. Como puede ver, es usando una fórmula directa, o una serie alrededor de x = 0, que calculé usando SymPy. Funciona de alguna manera, pero la precisión no es excelente, alrededor de x = 1 se pierde aproximadamente la mitad de los dígitos significativos (pero para x = 0.1 y x = 1e5 es preciso para casi todos los dígitos significativos). Estoy buscando una mejor aproximación.
[1] Deun, J. y Trefethen, LN (2011). Una implementación robusta del método Carathéodory-Fejér para aproximación racional. BIT Numerical Mathematics, 51 (4), 1039-1050. doi: 10.1007 / s10543-011-0331-7 ( junio de 2010 e-print )
[2] https://gist.github.com/3831580
(*) Ni al sitio web de chebfun, que me da 404, pero Pedro sugirió que ese debe ser mi problema con el proveedor.