Sto cercando un'implementazione open source (qualsiasi di Python, C, C ++, Fortran va bene) di approssimazione razionale a una funzione. Qualcosa lungo l'articolo [1]. Gli do una funzione e mi restituisce due polinomi, il cui rapporto è l'approssimazione sull'intervallo dato e l'errore oscilla con la stessa ampiezza ed è un'approssimazione ottimale, o vicino ad esso.
Ecco cosa ho trovato:
Sembra che Chebfun possa farlo, ma non ho accesso a Matlab *.
Esiste un semplice programma nella sezione 5-13 "Approssimazione di Chebyshev razionale" in Ricette numeriche (NR).
Mathematica ha EconomizedRationalApproximation e MiniMaxApproximation
Mi chiedevo se c'è qualcosa di più nuovo (forse meglio testato) del codice NR.
La mia applicazione è che ho una serie di funzioni speciali, circa 10, che vengono fornite come serie ipergeometriche o una formula con annullamenti numerici e desidero disporre di una funzione di valutazione solida, rapida e accurata, che viene chiamata in l'anello più interno del calcolo di due elementi della matrice di particelle nei calcoli di Hartree Fock. Ho messo un semplice esempio di una funzione che funziona per me in [2]. Come puoi vedere, ho calcolato con SymPy sia una formula diretta, sia una serie attorno a x = 0. Funziona in qualche modo, ma l'accuratezza non è eccezionale, circa x = 1 si perde circa la metà delle cifre significative (ma per x = 0.1 e x = 1e5 è preciso a quasi tutte le cifre significative). Sto cercando una migliore approssimazione.
[1] Deun, J., & Trefethen, LN (2011). Una solida implementazione del metodo Carathéodory-Fejér per l'approssimazione razionale. Matematica numerica BIT, 51 (4), 1039-1050. doi: 10.1007 / s10543-011-0331-7 ( e-print di giugno 2010 )
[2] https://gist.github.com/3831580
(*) Né sul sito Web di Chebfun, che mi dà 404, ma Pedro ha suggerito che deve essere il problema del mio fornitore.