分段三次埃尔米特插值

引入:

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

插值多项式应满足:

\left\{\begin{matrix} H(x_{i})=y_{i} & (i=0,1,2,...,n)\\ H'(x_{i})=y'_{i} & \end{matrix}\right.     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-'); % 在同一张图中绘制样本点以及埃尔米特插值函数的图像

运行结果如图:

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

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Curtis7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值