performance – Implementación de código abierto de aproximación racional a una función

Pregunta:

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 razón es la aproximación en el intervalo dado y el error está oscilando con la misma amplitud y es una aproximación óptima, o cercana a ella.

Esto es 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 economizado la aproximación racional y la aproximación MiniMax

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 robusta, rápida y precisa, que se está llamando en el ciclo más interno del cálculo de dos elementos de la matriz de partículas en los cálculos de Hartree Fock. Pongo un ejemplo simple de una función que me funciona en [2]. Como puede ver, está usando una fórmula directa o una serie alrededor de x = 0, que calculé usando SymPy. En cierto modo funciona, pero la precisión no es excelente, alrededor de x = 1 aproximadamente la mitad de los dígitos significativos se pierden (pero para x = 0.1 y x = 1e5 es preciso para casi todos los dígitos significativos). Busco una mejor aproximación.

[1] Deun, J. y Trefethen, LN (2011). Una implementación robusta del método Carathéodory-Fejér para la aproximación racional. BIT Numerical Mathematics, 51 (4), 1039–1050. doi: 10.1007 / s10543-011-0331-7 ( impresión electrónica de junio de 2010 )

[2] https://gist.github.com/3831580

(*) Ni al sitio web de chebfun, que me da 404, pero Pedro sugirió que debe ser mi problema de proveedor.

Respuesta:

¿Podría ser de alguna ayuda esto? http://www.alglib.net/interpolation/rational.php

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım