Hermite(埃尔米特)插值法

Hermite插值法是解决数学建模中预测类问题的最常用的方法,可以有效的解决“已知数据”数量不够的问题。

但是,直接使用Hermite插值得到的多项式次数较高,也存在着“龙格现象(Runge phenomenon)”。因此,在实际应用中,往往使用分段三次Hermite插值多项式(PCHIP),来提高“模拟数据的准确性”。

这里要说明一下“龙格现象(Runge phenomenon)”,

龙格现象(Runge phenomenon)

简单的解释为:插值多项式的震荡,即在两段处波动极大,产生明显的震荡。

Hermite插值法的含义

保持插值曲线在节点处有切线(光滑),使得插值函数和被插值函数的密合程度更好。
不但要求在节点处上的函数值相等,而且还要求对应的导数值也相等,甚至要求高阶导数也相等,满足这种要求的插值多项式就是“Hermite插值多项式”。

Hermite插值原理

Hermite插值法的代码实现

Matlab中的pchip函数

在Matlab中,内置有Hermite插值多项式(PCHIP)函数

格式:“p=pchip(x,y,new_x)”

其中:x是已知的样本点的横坐标,y是已知的样本点的纵坐标,new_x是要插入处的横坐标。

因此,new_x可以是一个区间。

Matlab中的代码实现:

%插值算法 (常用) %Hermite(埃尔米特)插值法a=0;
a=input('请输入数据矩阵的行数:');b=0;
b=input('请输入数据矩阵的列数:');%初始化目标矩阵
c=zeros(a,b);
c=input('请依次输入数据矩阵:');
disp('数据矩阵:');
disp(c);%确定插值区间
d=0;
d=input('请输入插值区间:');%进行插值
e(1,:)=d;[n,m]=size(c);for i=2:ne(i,:)=pchip(c(1,:),c(i,:),d);
end%目标矩阵
disp('Hermite插值后的矩阵:');
disp(e);

Hermite插值法的例题应用

题目“第六届mathorcup大学生数学建模挑战赛A题目”中的数据:

可以看出,题目中的数据只给出了“奇数周”,缺少“偶数周”的实验数据,因此需要进行“完善数据”。

Matlab代码实现:

%第一种方法:Hermite(埃尔米特)插值法%确定数据矩阵的大小
A=[1:15];
B(1,:)=A;for i=2:12B(i,:)=pchip(h(1,:),h(i,:),B(1,:));
endylab={'周数','轮虫','溶氧','COD','水温','PH值','盐度','透明度','总碱度','氯离子','透明度','生物量'}; for j=2:12subplot(3,4,j-1), plot(B(1,:),B(j,:),'r');   hold on;plot(h(1,:),h(j,:),'o');axis([0 15,-inf,inf])title(ylab{j-1})endlegend('三次埃尔米特插值数据','原始数据','Location','SouthEast')

代码结果:

Hermite(埃尔米特)插值法相关推荐

  1. 数值分析12 - Hermite埃尔米特插值法(要求高阶插值误差足够小)

    定义 存在唯一性 用开关法构建三次Hermiter插值函数 Hermiter插值函数的误差余项

  2. 【NA】埃尔米特插值法

    文章目录 埃尔米特插值法. 唯一性. 插值余项. 在Hermite插值法之前已经完成了<拉格朗日插值法>与<牛顿插值法>,前两种方法在进行插值时只要求原函数 f(x)f(x)f ...

  3. 埃尔米特插值法在MATLAB中的应用

    埃尔米特插值法 为了让插值函数能更好的和原来的函数重合,不但要求二者在节点上函数值相等,而且要求相切,对应导数也相等,甚至要求高阶导数也相等.--这类插值被称为切触插值,或埃尔米特插值,满足这种要求的 ...

  4. 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践

    温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 插值算法 一.插值法的定义 1.插值函数一共有三种: 2.多项式插值法原理 3.分段插值法原理: 4.具体如何求插值函数呢? (1) ...

  5. 两点三次埃尔米特插值法

    怎样用画笔画光滑曲线-两点三次埃尔米特插值法(转自http://blog.sina.com.cn/s/blog_a8192bdd010105rx.html) 求几点(3点以上)之间的光滑曲线是有很多办 ...

  6. 数值计算之 插值法(5)分段插值,埃尔米特插值

    数值计算之 插值法(5)分段插值,埃尔米特插值 前言 分段插值 分段线性插值 分段二次插值 埃尔米特Hermite插值 埃尔米特插值原理 埃尔米特插值公式 分段三次埃尔米特插值 后记 前言 之前记录了 ...

  7. 数学建模之Hermite插值法和三次样条插值法(附上详细的matlab代码)

    插值算法 一般定义 若P(x)为次数不超过n的代数多项式,即 P(x)=a0+a1x+...+anxnP(x)=a_0+a_1x+...+a_nx^n P(x)=a0​+a1​x+...+an​xn ...

  8. 4.4 埃尔米特插值

    为什么有埃尔米特插值法: 埃尔米特插值法是一种常用的数值方法,主要用于在给定的数据点集上构造一个可微的函数来近似描述这些数据点的趋势和特征.埃尔米特插值法有以下几个优点: 精度高:埃尔米特插值法可以通 ...

  9. 埃尔米特插值问题——用Python进行数值计算

    当插值的要求涉及到对插值函数导数的要求时,普通插值问题就变为埃尔米特插值问题.拉格朗日插值和牛顿插值的要求较低,只需要插值函数的函数值在插值点与被插函数的值相等,以此来使得在其它非插值节点插值函数的值 ...

  10. 分段线性插值法实验报告_数值分析-插值法

    我们能得到一个函数f在区间[a,b]上某些点的值或者这些点上的高阶导数 我们就能通过插值法去得到一个函数g,g与f是非常相近的 一般来说g分为三类,一类是n次多项式 an*xn +an-1*xn-1+ ...

最新文章

  1. CSS3(linear-gradient, transition, transform, border-radius)
  2. GLSL实现图像处理
  3. python程序开发模块化_python-17-Python文件两种用途、模块化程序开发
  4. shell文件管理jenkins构建过程---window环境下报错:找不到shell文件
  5. cocos2d-x返回Android游戏黑屏解决办法
  6. P4564 [CTSC2018]假面(期望)
  7. LIS 的 n*log 算法 ———二分维护
  8. C++ primer 第7章 类
  9. 消息框messagebox的使用
  10. python 简介+安装(搬运廖雪峰网站)
  11. wordpress 字符串翻译日期_WordPress强大搜索功能如何实现?安装Ivory Search插件
  12. Centos 7 一键安装openstack
  13. x86已安装该产品 剑灵vcredist_vcredist_x86.exe 每次我一安装都出现这个提示,请问这是怎么回事,该怎么解决?谢谢...
  14. [实时更新]草木瓜BLOG发表的全部文章
  15. TFTLCD显示实验_STM32F1开发指南_第十八章
  16. Java常量池简单认识
  17. G6 3.1 线条的属性
  18. 【附源码】计算机毕业设计java-志愿者管理系统设计与实现
  19. 下载堆糖图片-正则-xpath-BeautifulSoup-selenium-python爬虫
  20. kuma相关istio

热门文章

  1. FreeRTOS可视化追踪软件 —— 破解Tracealyzer 4.2.12
  2. FireMonkey ListView 绑定数据显示多个图片
  3. Javaweb实现简易的留言板项目
  4. 64位系统中32位的打印服务器,windows10-64位系统如何连接window7-32位共享打印机
  5. 天翼云联手平凯星辰共建开源分布式数据库实验室
  6. python网络安全面试题_网络安全经典面试题(二)
  7. 最新版:如何到Redhat官网下载RedHat镜像及申请试用安装序号
  8. redhat官方文档下载方法
  9. 【投稿提醒】2023年数字信号处理前沿国际会议(CFDSP 2023)
  10. 用户手册(User Manual)书写规范