分段三次埃尔米特插值

引入:

Hermite插值定义:对于一个n+1个节点的插值问题,要求在给定的节点处,插值多项式的函数值与节点的函数值相等。同时插值多项式的一阶甚至到指定高阶的导数值,也与该节点相应阶导数值相同。这样做能保证插值曲线在节点处有切线(光滑)。

插值多项式应满足:

     n+1个节点以及n+1个导数值,总共2n+2个条件方程,能解出2n+2个待定系数,所以H(x) 可以是最高次数为2n+1次的多项式。

分段三次埃尔米特插值

定义:满足埃尔米特插值多项式的定义同时,在每个子区间[Xi-1,Xi]上,H(x)均是三次多项式,且可分段表示为:H(x)=\left\{\begin{matrix} s1(x) & x\epsilon [x0,x1] \\s2(x) &x\epsilon [x1,x2] \\ ... & \\ ... & \\ s_{k(x)}&x\epsilon [x_{k-1},x_{k}] \\ s_{n}(x) &x\epsilon [x_{n-1},x_{n}] \end{matrix}\right.

其中Sk(x)是关于节点Xk-1,Xk,且满足插值条件(两节点处的函数值以及导数值均与原函数对应相等)的三次代数多项式。

代码:运用matlab内置函数pchip()

% 分段三次埃尔米特插值
x = -pi:pi/2:pi; y = sin(x); % 已知的样本节点的横坐标,纵坐标
new_x = -pi:0.1:pi; % 要插入节点的横坐标
p = pchip(x,y,new_x);
plot(x, y, '*r', new_x, p, '.b-'); % 在同一张图中绘制样本点以及埃尔米特插值函数的图像

运行结果如图:

分段三次埃尔米特插值_第1张图片

 可见,使用分段三次Hermite插值逼近sin(x),没有龙格现象(插值多项式的震荡,即在两段处波动极大,产生明显的震荡),图中 红色'*' 为原样本点,蓝色'.'为要插入的节点。

你可能感兴趣的:(Hermite插值,数学建模,matlab)