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. 深入理解JVM读书笔记--内存管理
  2. 重构是提高可测试性的主要手段 《设计模式》《代码重构》《从重构到模式》 《反模式》 重构时机 编写测试时候 修改BUG时候
  3. 控制div的大小自适应_可以漂移的电动轮椅,采用“自适应重心控制系统”,根本不怕翻车...
  4. 微信支付条码支付上线啦
  5. 从今天开始研究Flex的相关项目开发
  6. linux top 看硬盘读写,linux iotop 安装使用教程(显示硬盘IO读写情况)
  7. 【整体二分】区间第k小(金牌导航 整体二分-1)
  8. java vm_Java VM –提防YoungGen空间
  9. C 常用新特性(下)
  10. 使用阿里云极速型NAS构建高可用的GitLab
  11. css3 实现水晶按钮
  12. airflow 部署
  13. Bootstrap Paginator 分页插件参数介绍及使用
  14. Android开发UI之补间动画-布局添加动画
  15. 我的Java开发学习之旅------Java经典排序算法之冒泡排序
  16. java学习:jdbc连接示例
  17. 阿里又起社交心,天天动听做音乐轻社交?
  18. C#微信开发---用户关注微信号后公众号发送欢迎关注
  19. 用Python下载学习通课程首页的资料
  20. 装了xmapp还需要装mysql吗_安装xamp之后,appach、mysql等问题的总结

热门文章

  1. (附源码)ssm天天超市购物网站 毕业设计 022101
  2. 仿迅雷播放器教程 -- 媒体播放器对比 (2)
  3. linux网络对时命令
  4. 任意数的matlab中阶乘,数组表示
  5. css引入矢量图标_一张矢量图使用css来调用矢量图里的N个图标
  6. 【GPU精粹与Shader编程】(一) 开篇 全系列11本书核心知识点总览
  7. MD5加密——使用Java自带的MessageDigest工具类实现
  8. 宏基4750网卡驱动linux,宏碁4750g无线网卡驱动下载
  9. 继电保护原理4-自动重合闸
  10. python自动化交易通达信_通达信实现自动交易系统