1.10:1.10-interpolación besseliana
( \newcommand{\kernel}{\mathrm{null}\,}\)
En los días previos al uso generalizado de computadoras de alta velocidad, se hacía un uso extensivo de tablas impresas de las funciones matemáticas comunes. Por ejemplo, una tabla de la función BesselJ0(x) indicaría
J0(1.7)=0.397 984 859
J0(1.8)=0.339 986 411
Si uno quisiera la función Bessel parax=1.762, uno tendría que interpolar entre los valores tabulados.
Hoy sería más fácil simplemente calcular la función Bessel para cualquier valor particular deseado del argumentox, y hoy en día hay menos necesidad de tablas impresas o de saber interpolar. De hecho, la mayoría de los sistemas informáticos de hoy en día tienen rutinas internas que permitirán calcular las funciones más comunes como las funciones de Bessel incluso si uno solo tiene una noción nebulosa de lo que es una función de Bessel.
La necesidad no ha pasado del todo, sin embargo. Por ejemplo, en los cálculos orbitales, muchas veces necesitamos las coordenadas geocéntricas del Sol. Estos no son triviales para que el no especialista los calcule, y puede ser más fácil buscarlos en El Almanaque Astronómico, donde se tabula para todos los días del año, como, por ejemplo, el 14 de julio y el 15 de julio. Pero, si uno necesitay para el 14.395 de julio, ¿cómo se interpola?
En un mundo ideal, una función tabulada sería tabulada a intervalos suficientemente finos para que la interpolación lineal entre dos valores tabulados fuera adecuada para devolver la función al mismo número de cifras significativas que los puntos tabulados. El mundo no es perfecto, sin embargo, y para lograr tal perfección, el intervalo de tabulación tendría que cambiar a medida que la función cambiara más o menos rápidamente. Necesitamos saber, por tanto, cómo hacer interpolación no lineal.
Supongamos que una funcióny(x) está tabulada enx=x1 yx=x2,x2−x1 siendo el intervaloδx. Si se desea encontrar el valor dey atx+θδx, la interpolación lineal da
y(x1+θΔx)=y1+θ(y2−y1)=θy2+(1−θ)y1,
dóndey1=y(x1) yy2=y(x2). Aquí se supone que es una fracción entre0 y1; siθ está fuera de este rango (eso es negativo, o mayor que1) estamos extrapolando, no interpolando, y eso siempre es algo peligroso de hacer.
Veamos ahora la situación en la que la interpolación lineal no es lo suficientemente buena. Supongamos que una funcióny(x) se tabula para cuatro puntosx1, x2, x3, x4 del argumentox, siendo los valores correspondientes de la funcióny1, y2, y3, y4. Deseamos evaluary parax=x2+θδx, dondeδx esta el intervalox2−x1 ox3−x2 ox4−x3. La situación se ilustra en la figuraI.6A.
Un posible enfoque sería ajustar un polinomio a los cuatro puntos adyacentes:
y=a+bx+cx2+dx3.
Escribimos esta Ecuación para los cuatro puntos tabulados adyacentes y resolvemos para los coeficientes, y de ahí podemos evaluar la función para cualquier valor dex que nos guste en el intervalo entrex1 yx4. Desafortunadamente, esto bien podría implicar más esfuerzo computacional que evaluar la función original en sí.
FIGURE I.6A
El problema se ha resuelto de manera conveniente en términos de cálculo de diferencias finitas, cuyo desarrollo lógico implicaría un capítulo sustancial adicional más allá del alcance pretendido de este libro. Por lo tanto solo proporciono el método solamente, sin pruebas.
La esencia del método es establecer una tabla de diferencias como se ilustra a continuación. Las dos primeras columnas sonx yy. Las entradas en las columnas restantes son las diferencias entre las dos entradas en la columna inmediatamente a la izquierda. Así, por ejemploδ4.5=y5−y4,δ24=δ4.5−δ3.5,, etc.
Supongamos que queremos encontrary por un valor dex eso es una fracciónθ del camino dex4 ax5. La fórmula de interpolación de Bessel es entonces
y(x)=12(y4+y5)+B1δ4.5+B2(δ24+δ25)+B3δ34.5+B4(δ44+δ45)+...
AquíBn están los coeficientes de interpolación besseliana, y los términos sucesivos entre paréntesis en la expansión son las sumas de los números en las casillas de la tabla.
Los coeficientes besselianos son
Bn(θ)=12(θ+12n−1n)if n is even,
yBn(θ)=θ−12n(θ+12n−32n−1)if n is odd.
La notación(mn) significa el coeficiente de x m en la expansión binomial de(1+x)n.
De manera explícita,
B1=θ−12
B2=12θ(θ−1)/2!=θ(θ−1)/4
B3=(θ−12)θ(θ−1)/3!=θ(0.5+θ(−1.5+θ))/6
B4=12(θ+1)θ(θ−1)(θ−2)/4!=θ(2+θ(−1+θ(−2+θ)))/48
B5=(θ−12)(θ+1)θ(θ−1)(θ−2)/5!=θ(−1+θ(2.5+θ2(−2.5+θ)))/120
El lector debería convencerlo de que la fórmula de interpolación tomada hasta dondeB1 es meramente interpolación lineal. La adición de términos sucesivamente más altos efectivamente ajusta una curva a más y más puntos alrededor del valor deseado y refleja cada vez más exactamente el cambio real dey conx.
El cuadro anterior está tomado de El Almanaque Astronómico para 1997, y muestra lay coordenada del Sol durante ocho días consecutivos en julio. Las tres primeras columnas de diferencia están tabuladas, y es claro que otras columnas de diferencia son injustificadas.
Si queremos encontrar el valor dey, por ejemplo, para el 4.746 de julio, tenemosθ=0.746 y los tres primeros coeficientes de Bessel son
\ begin {array} {c c l}
B_1 & = & +0.246\\
B_2 & = & -0.047\ 371\\
B_3 & = & -0.007\ 768\ 844\
\ nonumber
\ end {array}
El lector puede verificar los siguientes cálculos paray a partir de la suma de los primeros 2, 3 y 4 términos de la fórmula de la serie de interpolación besseliana. La suma de los dos primeros términos es el resultado de la interpolación lineal.
Suma de los primeros 2 términos,y=0.909 580 299
Suma de los primeros 3 términos,y=0.909 604 723
Suma de los primeros 4 términos,y=0.909 604 715
Siempre que la tabla no esté tabulada a intervalos inapropiadamente gruesos, rara vez es necesario pasar el tercer coeficiente de Bessel. En ese caso una fórmula de interpolación alternativa y equivalente (fort=t4+θΔt), que evita tener que construir una tabla de diferencias, es
\ begin {array} {c c l}
y (t_4 +\ theta\ Delta t) & = & -\ frac {1} {6}\ theta [(2 -\ theta (3-\ theta)) y_3 + (1 -\ theta) y_6]\\
& & +\ frac {1} {2} [(2 +\ theta (-1 +\ theta (-2 +\ theta))) y_4 +\ theta (2 +\ theta (1 -\ theta)) y_5].
\ end {matriz}
Los lectores deben comprobar que esto da la misma respuesta, al mismo tiempo que señalan que los paréntesis anidados hacen que el cálculo sea muy rápido y sean fáciles de programar ya sea en una calculadora o en una computadora.
Ejercicio1.10.1: Bessel Coefficients
A partir de la siguiente tabla, construya una tabla de diferencias hasta la cuarta diferencia. Calcular los primeros cuatro coeficientes de Bessel paraθ=0.73. De ahí calcular el valor dey forx=0.273.
\ begin {array} {c c}
x & y\\
0.0 & + 0.381300\\
0.1 & + 0.285603\\
0.2 & + 0.190 092\\
0.3 & + 0.096327\\
0.4 & + 0.008 268\\
0.5 & - 0.067 725\\
\ end {array}
RESPUESTAS
- B1=+0.23
- B2−−0.049275
- B3=−7.5555×10−3
- B4=+9.021841875×10−3
- y=0.121289738
Nota: la tabla se calculó a partir de una fórmula, y la respuesta interpolada es correcta a nueve cifras significativas.
Ejercicio1.10.2: Linear Interpolation vs. Besselian Interpolation
De la siguiente tabla desinx, utilice la interpolación lineal y la interpolación besseliana para estimarsin51∘ a tres cifras significativas.
\ begin {array} {c c}
x^\ circ &\ sin x\
\\
0 & 0.0\\
30 & 0.5\\
60 &\ sqrt {3} /2 - 0.86603\\
90 & 1.0\
\ end {array}
RESPUESTAS
- Por interpolación lineal,sin51∘=0.634.
- Por interpolación besseliana,sin51∘=0.776.
El valor correcto es 0.777. Debería quedar impresionado —pero hay más sobre interpolación por venir, en la Sección 1.11.