¿Cómo se elige el cambio de coordenadas óptimo para la expansión de Chebyshev?

Estoy investigando la implementación de SLATEC de la función Bessel j 0 computación (legible en C en GSL ), es decir, en su parte para argumentos en intervalo ( 0 , 4 ) . 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:

C metro = 2 π 1 1 T metro ( X ) j 0 ( 8 ( X + 1 ) ) 1 X 2 d X ,

y este cambio de coordenadas de X a 8 ( X + 1 ) está destinado a transformarse del rango de trabajo de los polinomios de Chebyshev ( 1 , 1 ) a la interesante gama de argumentos de la función de Bessel ( 0 , 4 ) . Pero este cambio parece algo complicado. Ingenuamente, prefiero empezar con algo como 2 ( X + 1 ) , que también mapea ( 1 , 1 ) a ( 0 , 4 ) . Pero cuando lo probé, descubrí que da una precisión mucho peor con 13 términos de la expansión (error absoluto máximo 6 × 10 11 contra 3 × 10 dieciséis 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?

¿Entiendo bien que C metro son coeficientes del ajuste polinomial de Chebyshev de j 0 ( 8 ( X + 1 ) ) ? Es decir
j 0 ( 8 ( X + 1 ) ) metro = 0 12 C metro T metro ( X )
@uranix Correcto, pero para metro = 0 la suma debe tener C 0 2 , no C 0 según la relación de ortogonalidad de los polinomios de Chebyshev.
Solo una idea. Minimizar el valor absoluto de C 13 = 2 π 1 1 T 13 ( X ) j 0 ( s ( X ) ) 1 X 2 d X con respecto a s ( X ) : s ( 1 ) = 0 , s ( 1 ) = 4 .

Respuestas (1)

Dejar s ( X ) sea ​​la sustitución, es decir, estamos buscando una aproximación

j 0 ( s ( X ) ) PAG ( X ) = C 0 2 T 0 ( X ) + metro = 1 METRO C metro T metro ( X ) , s ( 1 ) = 0 , s ( 1 ) = 4.
con
C metro = 2 π 1 1 T metro ( X ) j 0 ( s ( X ) ) 1 X 2 d X .

tomemos tal s ( X ) entonces j 0 ( s ( X ) ) es un polinomio q ( X ) de grado METRO o menos. Ahora j 0 ( s ( X ) ) se aproxima por PAG ( X ) exactamente _ Eso s ( X ) sería

s ( X ) = j 0 1 ( q ( X ) ) .
Ahora el problema no se trata de óptimo s ( X ) (que hay infinitas) pero sobre simples s ( X ) de esa forma. Al menos no debería implicar ninguna función especial.

Tomando

j 0 ( X ) = 1 X 2 4 + O ( X 4 )
y descuidando O ( X 4 ) término que podemos aproximar j 0 1 ( v ) como
j 0 1 ( v ) 2 1 v .
Entonces
s ( X ) = 2 1 q ( X ) s ( 1 ) = 2 1 q ( 1 ) = 0 s ( 1 ) = 2 1 q ( 1 ) = 4 q ( 1 ) = 1 , q ( 1 ) = 3.
un lineal q ( X ) sería
q ( X ) = 1 2 X .
entonces
s ( X ) = 2 1 + 1 + 2 X = 2 2 + 2 X .
Esa es exactamente la sustitución de GSL.