首页 > 编程语言 >常用算法 插值算法

常用算法 插值算法

时间:2024-07-12 09:12:44浏览次数:14  
标签:常用 分段 埃尔米 插值 算法 三次 new pi

零、写在前面

本文主要讲述三次Hermite插值和三次样条插值。

对于一维插值算法没有详细介绍,只是说明了彼此之间的区别和特点,并作出选择。

随后拓展了n维插值算法,只作为了解。

最后,由于插值算法本身的特性,其也可以用来预测。

一、作用

插值算法,预测模型。

在建模过程中,需要一定量的数据作为分析的支撑,但有时数据较少,此时便需要使用一些数学手段,模拟产生一些可靠的新数据来满足需求。

二、算法

2.1介绍

设函数在上有定义,且定义域内存在n+1个点。

若恰好穿过n+1个点,则称其为插值函数,不难发现,插值函数不唯一。

为插值节点,包含插值节点的称作插值区间,即。

求出的过程称之为插值法。

2.2详细讲述一维插值法

2.2.1runge现象(一切问题的本源)

runge现象,是指高次插值函数在边界部分会出现震荡现象,其原因是次数太高会放大误差。

2.2.2插值法的分类

拉格朗日插值,牛顿插值,分段插值,埃尔米特插值(Hermite),分段三次埃尔米特插值,三次样条插值。

2.2.3插值法的选择

其中建模过程中常用的是分段三次埃尔米特插值和三次样条插值。

Q:这时候就有人要问了,作者作者,为什么是这样啊?

A:首先,所有的高次插值函数都会发生runge现象,这样大规模的震荡是我们不希望看到的。

Q:哪些插值法会发生runge现象?

A:拉格朗日,牛顿,埃尔米特都会发生runge现象,因为他们本质是多项式插值函数,都是高次的,这三个插值法的表达式和原理我这里不展开讲,因为用不上。

Q:那么怎么避免发生runge现象?

A:runge现象发生在边界,边界越宽,震荡幅度越大,那么我们把边界变小,那就是分段插值了,与其说分段插值是插值法,更不如说是一种思想,就是把插值区间切成很多小段,大幅度缓解runge现象,然后在这些小段上放上合适的函数。所以分段插值是解决runge现象的一个好办法。

Q:为什么只有分段的埃尔米特插值(即分段三次埃尔米特插值),没有分段拉格朗日插值和分段牛顿插值?

A:事实上也有分段拉格朗日插值和分段牛顿插值,但是为什么不说,本质上是这俩插值是不够完美的。因为拉格朗日插值和牛顿插值是源于函数值的,就是零阶导数,这两个插值法只关注零阶导数,但对变化趋势,即一阶导数是欠缺考虑的。而埃尔米特插值法受到了零阶导数和一阶导数的约束,如此得到的插值函数是保留被插值函数的性态(可以肤浅的理解为一阶导数)的,更接近完美,当然不是完美本身。所以我们在建模过程中会使用分段三次埃尔米特插值。

Q:什么是三次样条插值?

A:是分段三次埃尔米特插值+在插值区间上二阶连续可微,其本质是三次多项式。由于多加了一个二阶连续可微的条件,所以三次样条插值是比分段三次埃尔米特插值更接近完美的存在。

S:总结

客观出现runge现象,为了缓解runge现象,我们提出使用分段插值,分段插值具体要和哪个插值法结合,为了保留被插值函数的性态,我们使用埃尔米特插值,因为它保留了被插值函数的一阶导数。

三、代码

3.1分段三次埃尔米特插值

%MATLAB内置函数
%分段三次Hermite插值多项式PCHIP

p = pchip(x,y,new_x)
%x已知样本点的横坐标  y已知样本点的纵坐标 new_x要插入处对应的横坐标

%eg:
x = -pi:pi;%不写步长默认1为步长,所以,-pi:pi=-pi:1:pi
y =  sin(x);
new_x = -pi:0.1:pi;  %0.1是步长
p = pchip(x,y,new_x);
plot(x,y,'o',new_x,p,'r-')

3.2三次样条插值

%MATLAB内置函数
%三次样条插值spline
p = spline(x,y,new_x)
%x已知样本点的横坐标  y已知样本点的纵坐标 new_x要插入处对应的横坐标

%eg:
x = -pi:pi;%不写步长默认1为步长,所以,-pi:pi=-pi:1:pi
y =  sin(x);
new_x = -pi:0.1:pi;  %0.1是步长
p = spline(x,y,new_x);
plot(x,y,'o',new_x,p,'r-')

四、拓展:n维插值算法(了解)

4.1代码

p =  interpn(x1,x2,...,xn,y,new_x1,new_x2,...,new_xn,'methond')
%x1,x2,...,xn是已知样本点的横坐标
%y是已知的样本点的纵坐标
%new_x1,new_x2,...,new_xn是要插入点的横坐标
%method是待选择的插值方法
%linear线性插值,默认选项
%cubic三次插值
%spline三次样条插值(最优选)
%nearest最邻近插值

五、用于预测(创新)

前面在“一、作用”处提到过插值算法是用来模拟产生一些可靠的新数据来满足需求的,其实也就是预测嘛。
事实上,三次样条插值算法比灰色预测在理论上更完美。

% 人口预测
population=[133126,133770,134413,135069,135738,136427,137122,137866,138639, 139538];
year = 2009:2018;
p1 = pchip(year, population, 2019:2021)  %分段三次埃尔米特插值预测
p2 = spline(year, population, 2019:2021) %三次样条插值预测
figure;
plot(year, population,'o',2019:2021,p1,'r*-',2019:2021,p2,'bx-')
legend('样本点','三次埃尔米特插值预测','三次样条插值预测','Location','SouthEast')

标签:常用,分段,埃尔米,插值,算法,三次,new,pi
From: https://www.cnblogs.com/coyy/p/18297490

相关文章

  • 改进的多目标差分进化算法在电力系统环境经济调度中的应用(Python代码实现)【电气期刊论
     目录 1电力系统环境经济调度数学模型电力系统环境经济调度问题概述多目标差分进化算法的应用应用研究的意义2  改进的多目标差分进化算法3Python代码实现3.1结果3.2Python代码 4完整Python代码、数据下载   改进的多目标差分进化算法不仅可以应用......
  • 基于粒子群算法的参数辨识研究(Matlab代码实现)
     ......
  • STM32常用函数整理
    STM32常用函数整理标准库使用的API用的都是**char***数据类型1./清空缓冲区/memset((char*)uart2RxBuff,0,UART2RXBUFF_SIZE);把uart2RxBuff中长度为UART2RXBUFF_SIZE的字符都写为02.拷贝memcpy(数组1,数组2,len);把数组2的len长度的数据拷贝到数组1中数组1......
  • 快速入门算法竞赛必修课(cpp)--stl库的使用
    stl目录向量vector常用方法构造动态二维数组尾接&尾删获取长度清空改变长度获取下标.erase(pos).begin().end().front().back()适用情形注意事项提前指定长度当心size_t溢出栈stack常用方法适用情形注意事项不可访问内部元素!下面都是错误用......
  • 算法金 | 来了,pandas 2.0
    大侠幸会,在下全网同名「算法金」0基础转AI上岸,多个算法赛Top「日更万日,让更多人享受智能乐趣」今日210+/10000,内含Pandas是一个强大的数据分析库,广泛应用于科学研究、金融分析、商业智能等领域。它提供了高效的数据结构和数据分析工具,使得处理和分析数据变得更加简......
  • MySQL数据库常用命令
    目录前言:1.创建数据库2.删除数据库3.选择数据库4.创建数据表5.删除数据表6.查询数据7.修改数据8.ORDER BY 语句9.LIKE子句1.百分号通配符%:2.下划线通配符_:10.GROUPBY语句11.MySQL连接1.INNERJOIN(内连接):获取两个表中字段匹配关系的记录。2.LEFTJOIN(左......
  • GRE详解:概念、架构、原理、搭建过程、常用命令与实战案例
       我们将深入探讨如何在Linux上设置GRE(GenericRoutingEncapsulation,通用路由封装)。本文将涵盖GRE的定义、架构、原理、应用场景、常见命令体系,并通过详细的实战模拟展示如何在Linux系统上实际操作。希望通过这篇文章,您能深入理解GRE技术,并能在实际中应用。......
  • 8、matlab彩色图和灰度图的二值化算法汇总
    1、彩色图和灰度图的二值化算法汇总原理及流程彩色图和灰度图的二值化算法的原理都是将图像中的像素值转化为二值(0或1),以便对图像进行简化或者特定的图像处理操作。下面分别介绍彩色图和灰度图的二值化算法的原理及流程:1)彩色图的二值化算法原理及流程(1)原理:彩色图的二值化算法......
  • 多目标螳螂搜索算法MOMSA求解无人机三维路径规划,可以自行修改障碍物位置(MATLAB代码)
    无人机路径规划多目标优化求解是一个复杂的过程,涉及到多个目标的考量和优化算法的应用。以下是一些关键点和相关算法的概述:1.**多目标优化策略**:在无人机路径规划中,需要同时考虑多个目标,如路径长度、安全性、飞行时间和动力学约束等。优化这些目标可以帮助无人机在复杂环境中......
  • (4-5)Floyd-Warshall算法:高速公路路线查询系统
    4.5 高速公路路线查询系统本项目基于阿鲁巴岛的实际公路数据,实现了Floyd-Warshall算法来计算所有高速公路节点之间的最短路径。通过解析包含路线和节点地理位置信息的文本文件,程序构建了一个加权邻接矩阵,并利用哈佛赛因距离计算路径权重。最终,项目输出展示了阿鲁巴岛上各......