image thumbnail

Piecewise Hermite Cubic Interpolation

version 1.3.0.0 (2.24 KB) by Juan Camilo Medina
Interpolates with a Hermite cubic polynomial using the function values and corresponding derivatives

1.2K Downloads

Updated 11 Apr 2011

View License

Piecewise Hermite cubic interpolation between 2 points knowing derivative values

Syntax: y=p3hermite(x,pointx,pointy,yprime,plt)
Where
pointx = data points of the independent variable
(The points do not have to be equally spaced)
pointy = data points of the dependent variable. pointy is the value of
the function at pointx
yprime = data points of the dependent variable's derivative. yprime is the
derivative of the function at pointx
x = an arbitrary vector that will be interpolated
plt = If plt is a number greater than 0 it will plot the interpolation
employing the number in plt as handle for the figure

-This function returns the piecewise interpolation "y" of a vector "x".
The algorithm employs two adjacent points (from pointx) and interpolates
with a Hermite cubic polynomial using the function values and the corresponding derivatives.
-pointx, pointy, and yprime must be vectors with the same number of elements.
"x" and "y" have the same number of elements.

Written by Juan Camilo Medina 2011

Example:
Suppose you have the values of a function "y(x)" at the points xi={0,4,9},
those are yi={2,-2,sqrt(2)} respectively. You also know the values of the
derivative of y(x) at the same points (pointx) yi'=[0,0,-pi/(2*sqrt(2))] respectively.
You want to interpolate within those values with an arbitrary vector "x"
using piecewise cubic Hermite polynomials
Thus:

pointx=[0,4,9];
pointy=[2,-2,sqrt(2)]; %function values at pointx
yprime=[0,0,-pi/(2*sqrt(2))]; %derivative of the function at pointx
x=0:0.01:pointx(end); % arbitrary vector to be interpolated
y=p3hermite(x,pointx,pointy,yprime,2);
y_ex=2*cos(pi/4*x); % exact value (y corresponds to y=2*cos(pi/4*x))
plot(x,y_ex,'--k'); axis tight; % plots exact solution for comparison
legend('Interpolation Points','Hermite Interpolation','Exact Value','Location','Southeast')

Written by Juan Camilo Medina - The University of Notre Dame

Cite As

Juan Camilo Medina (2022). Piecewise Hermite Cubic Interpolation (https://www.mathworks.com/matlabcentral/fileexchange/30763-piecewise-hermite-cubic-interpolation), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Acknowledgements

Inspired by: Lagrange polynomial interpolation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!