Estoy investigando la implementación de SLATEC de la función Bessel computación (legible en C en GSL ), es decir, en su parte para argumentos en intervalo . Allí se usa una expansión de Chebyshev, pero la variable de entrada se transforma de manera no obvia. Como he entendido, sus coeficientes se calculan usando esta fórmula:
y este cambio de coordenadas de a está destinado a transformarse del rango de trabajo de los polinomios de Chebyshev a la interesante gama de argumentos de la función de Bessel . Pero este cambio parece algo complicado. Ingenuamente, prefiero empezar con algo como , que también mapea a . Pero cuando lo probé, descubrí que da una precisión mucho peor con términos de la expansión (error absoluto máximo contra en SLATEC).
Entonces, me pregunto ahora, ¿cómo se encontró esa transformación, que en realidad se usa en la implementación? ¿Se puede demostrar que es óptimo para la precisión deseada?
Dejar sea la sustitución, es decir, estamos buscando una aproximación
tomemos tal entonces es un polinomio de grado o menos. Ahora se aproxima por exactamente _ Eso sería
Tomando
uranix
Ruslán
uranix