Todavía no logro entender esto, así que estoy buscando algo de ayuda, se agradece la ayuda.
En este blog https://blog.timodenk.com/cubic-spline-interpolation/index.html, se implementa la interpolación de spline cúbico por partes, y el valor interpolado es el esperado, no hay problema.
El problema es que necesito calcular las derivadas parciales con respecto a los dos valores de $z$ más cercanos, por ejemplo, el punto interpolado es $(t, z)$, y el punto izquierdo es $(t_1, z_1)$ y el punto derecho es $(t_2, z_2)$, necesito calcular $\frac{\partial z}{\partial z_1}$ y $\frac{\partial z}{\partial z_2}$, y aquí están mis pasos:
Hay $n+1$ puntos de datos $(t_i, z_i), for \ i = 1, 2, ..., n+1$.
Hay $n$ ecuaciones polinómicas cúbicas para cada intervalo $[t_i, t_{i+1}], for \ i = 1, 2, ..., n$.
$z_i = a_i * t_i^3 + b_i * t_i^2 + c_i * t_i + d_i, for \ i = 1, 2, ..., n$
$z_{i+1} = a_i * t_{i+1}^3 + b_i * t_{i+1}^2 + c_i * t_{i+1} + d_i, for \ i = 1, 2, ..., n$
también, $z = a_i * t^3 + b_i * t^2 + c_i * t + d_i, t \in [t_i, t_{i+1}], for \ i = 1, 2, ..., n$
Por la regla de la cadena,
$\frac{\partial z}{\partial z_i} = \frac{\partial z}{\partial a_i} * \frac{\partial a_i}{\partial z_i} + \frac{\partial z}{\partial b_i} * \frac{\partial b_i}{\partial z_i} + \frac{\partial z}{\partial c_i} * \frac{\partial c_i}{\partial z_i} + \frac{\partial z}{\partial d_i} * \frac{\partial d_i}{\partial z_i} = t^3 / t_i^3 + t^2 / t_i^2 + t / t_i + 1$
$\frac{\partial z}{\partial z_{i+1}} = \frac{\partial z}{\partial a_i} * \frac{\partial a_i}{\partial z_{i+1}} + \frac{\partial z}{\partial b_i} * \frac{\partial b_i}{\partial z_{i+1}} + \frac{\partial z}{\partial c_i} * \frac{\partial c_i}{\partial z_{i+1}} + \frac{\partial z}{\partial d_i} * \frac{\partial d_i}{\partial z_{i+1}} = t^3 / t_{i+1}^3 + t^2 / t_{i+1}^2 + t / t_{i+1} + 1$
Pero el resultado está muy lejos de ser correcto, en comparación con la interpolación lineal en cero, así que aún estoy tratando de averiguar dónde está el error...
En cuanto a por qué calcular estas derivadas parciales, es porque la sensibilidad se puede usar para calcular DV01 más tarde, así que primero se supone que se deben calcular estas derivadas parciales.