Piecewise Hermite Cubic Interpolation
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 (2024). Piecewise Hermite Cubic Interpolation (https://www.mathworks.com/matlabcentral/fileexchange/30763-piecewise-hermite-cubic-interpolation), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Mathematics > Interpolation >
Tags
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!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.