Red de conocimiento informático - Aprendizaje de programación - ¿Cómo genera Matlab Cubic Hermite los coeficientes del polinomio de diferencia?

¿Cómo genera Matlab Cubic Hermite los coeficientes del polinomio de diferencia?

Para dar un ejemplo, interpola los valores de la función sin en los 11 números enteros del 0 al 10 y coloca los coeficientes en coefs. La imagen final es la anterior x?=?0:10. ;?

y?=?sin(x);?

pp=interp1(x, y, 'pchip', 'pp');?pp devuelve una estructura que almacena diversa información de interpolación

coefs=pp.coefs;??coefs Este es el coeficiente polinómico de interpolación de cada segmento,

?La primera columna es el coeficiente del término cúbico y el la segunda columna es el término cuadrático. . .

?Pero tenga en cuenta que al calcular con este coeficiente, se calcula basándose en que el número al comienzo de cada segmento pequeño es 0.

?Por ejemplo, para el segmento 3 ~4, interpolación ¿El valor de yi=a4*(xi-3)^3 a3*(xi-3)^2 a2*(xi-3) a1

? coeficientes usted mismo. Puede usar MATLAB directamente. La función incorporada usa el resultado de pp

? Si desea usar directamente la estructura pp para calcular el resultado de la interpolación de cualquier punto en el rango de 0 a 10. ,

? Puedes usar ppval para usar directamente el coeficiente pp, por ejemplo

xi?=?0:.25:10;?

yi =ppval(pp, xi);

figure, plot(x, y, 'o', xi, yi)

Suplemento

'más cercano' más cercano interpolación de términos

Interpolación lineal por partes 'lineal'

Interpolación spline cúbica 'spline' (la spline será más suave que pchip y también tendrá un poco más de oscilación)

'pchip' interpolación emiltiana cúbica por partes (no sé cómo la derivada aquí es la predeterminada, parece ser la pendiente entre dos puntos adyacentes)

'cubic' es lo mismo que pchip