插值算法的介绍及其在数学建模中的应用

article/2025/9/30 5:47:30

目录

插值算法的介绍及其在数学建模中的应用

一、插值的介绍及其作用

二、插值法原理

三、插值法的分类

1、普通多项式插值

2、分段低次插值

3、(三次)样条插值

4、分段三次埃尔米特(Hermite)插值


插值算法的介绍及其在数学建模中的应用

%本文根据清风数学建模课程插值算法及相关资料总结而成,仅供学习使用
%本文参考了(分段插值 - 百度文库),对介绍的顺序及内容进行了改进
%由于本文仅仅是简要介绍插值算法在建模中的应用,因此样条插值的可微性证明等各种复杂繁琐的部分在本文中不再引入
%本文仅介绍一维数据的插值,多维数据的插值方法与一维插值类似

一、插值的介绍及其作用

数模比赛中,常常需要根据已知的样本点进行数据的处理和分析,而有时候现有数据较少或数据不全,不足以支撑分析的进行,这时就需要使用插值法“模拟产生”一些新的但又比较靠谱的值来满足需求,这就是插值的作用。

%在直观上,插值就是找到一个连续函数使其经过每个样本点
%插值法还可用于短期的预测问题

(插值与拟合经常会被弄混,为了区分,这里简要介绍一下拟合:即找到一个函数,使得该函数在最小二乘的意义下与已知样本点的总体差别最小,该函数不一定要经过样本点。通常情况下,拟合要求已知样本点的数据较多,当数据较少时不适用)

二、插值法原理

 

三、插值法的分类

%注:下面的1、2、3、4 并非是并列关系,几个部分之间也有交叉,目的在于逐渐引出数学建模中最常用的两种插值方法:三次样条插值与三次埃尔米特插值。

1、普通多项式插值

多项式插值中,拉格朗日插值与牛顿插值是经典的插值方法,但它们存在明显的龙格现象(下面会解释龙格现象),且不能全面反映插值函数的特性(仅仅保证了插值多项式在插值节点处与被插函数有相等的函数值)。

然而在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在一个或全部节点上插值多项式与被插 函数有相同的低阶甚至高阶的导数值。 对于这些情况,拉格朗日插值和牛顿插值都不能满足。因此,数学建模中一般不使用这两种方法进行插值,这里也不再介绍这两种方法。

龙格现象(Runge phenomenon): 1901年,Carl Runge 在他的关于高次多项式插值风险的研究中,发现高次插值函数可能会在两端处波动极大,产生明显的震荡,这种现象因此被称为龙格现象。所以在不熟悉曲线运动趋势的前提下,我们一般不轻易使用高次插值。

下面是对函数f(x)=\cfrac{1}{1+x^2}不同次数拉格朗日插值多项式的比较图,其中红线为函数本身图像。可以发现,n值越大,在两端的波动越大。

 

2、分段低次插值

为了解决高次多项式插值的龙格现象和提高精度(特别是样本点较多时),可以采用分段低次多项式插值,即:将大区间分为多个子区间,在每一个子区间上进行低次多项式插值,这种分段进行插值的思想在接下来也会派上用场。

虽然分段一次插值和二次插值在节点处连续,但在节点左右两侧的导数不一定相等,因此会出现尖点,不能满足许多情况下对函数光滑性的需要(比如船体、飞机等外形曲线设计的需要),接下来引入样条插值。

3、(三次)样条插值

为了满足对函数光滑性的需要,我们可以使用一种有弹性的长条(称之为样条),强迫它弯曲通过样本点。

弹性力学理论指出,样条的挠度曲线具有连续的二阶导数,并且在相邻定点之间为三次多项式,即为数学上的三次样条插值曲线。

三次样条插值的Matlab实现:(实现过程已经封装,会调用即可)

Matlab有内置的函数: p = spline (x,y, new_x)
其中,x是已知的样本点的横坐标;y是已知的样本点的纵坐标;new_x是要插入处对应的横坐标(下面三次埃尔米特插值函数参数意义与此相同)

4、分段三次埃尔米特(Hermite)插值

%虽然Hermite插值也是多项式插值,但其原理与拉格朗日插值、牛顿插值有根本的不同,并且应用广泛,因此单独介绍

为了满足插值问题的更高要求,即:不但要求在节点上的函数值相等,而且还要求对应的导数值也相等,甚至要求 高阶导数也相等,满足这种要求的插值多项式就是埃尔米特插值多项式。

但直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象, 因此在实际应用中,往往使用分段三次 Hermite 插值。

分段三次埃尔米特插值的Matlab实现:

Matlab有内置的函数: p = pchip(x,y, new_x)

下面使用Matlab比较分段三次埃尔米特插值与三次样条插值的结果,以函数y=sin(x) 的插值为例:

x = ‐pi:pi; 
y = sin(x); 
new_x = ‐pi:0.1:pi; 
p1 = pchip(x,y,new_x); %分段三次埃尔米特插值 
p2 = spline(x,y,new_x);  %三次样条插值
plot(x,y,'o',new_x,p1,'r‐',new_x,p2,'b‐')
legend('样本点','三次埃尔米特插值','三次样条插值',‘Location’,‘SouthEast’) %标注显示在东南方
​

可以看出,在这个例子中,三次样条生成的曲线更加光滑,更符合函数本身图像。在实际建模中, 由于我们不知道数据本身的性质如何,因此这两种插值都可以使用。


http://chatgpt.dhexx.cn/article/WZ4Ok3al.shtml

相关文章

插值方法学习

0.摘要 我感觉上采样阶段要放在特征提取的前期,而不是后期,因为后期的feature map太小了,而且相邻间的像素值会存在突变,会造成增加的噪声概率会比较高。参考图像插值技术综述学习了一下插值方法 1.单线性插值法 已知ac&#xf…

插值查找算法

插值查找算法 插值查找算法又称插值搜索算法,是在二分查找算法的基础上改进得到的一种查找算法。 插值查找算法只适用于有序序列,换句话说,它只能在升序序列或者降序序列中查找目标元素。作为“改进版”的二分查找算法,当有序序…

图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法

图像常用的插值算法 最近邻插值算法双线性插值算法双三次插值(bicubic)算法三种插值算法的优缺点 插值算法是图像缩放中的一项基本且重要的算法;在图像缩放中,输出图像像素点坐标可能对应输入图像上几个像素点之间的位置,这个时候就需要通过灰…

插值拟合算法

一.插值算法 1.插值概念 构造一个函数使得所有已知点在函数图像上 2.一维插值插值方法 (1)一般多项式插值 (2)拉格朗日插值 (3)分段线性插值 采用线性函数 (4)牛顿插值 &#xf…

插值与逼近_数值分析计算方法

传送门: 线性和非线性方程数值解法_数值分析计算方法 👉插值与逼近_数值分析计算方法 ⚠️施工中👷… 1 插值 1.1 多项式插值 1.1.1 Lagrange插值 插值误差的事后估计:用两个结果的差来估计插值误差 使用注意 当插值点x位于…

数学建模-插值算法(Matlab)

注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231 //清风数学建模 一、基础知识 简单来说…

插值算法总结

1、最邻近元法 这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设iu, jv(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求…

插值算法基本原理

插值:数据处理的手段 将缺失数据补全处理 线性内插 拉格朗日插值法 牛顿插值 拟合:预测,寻找规律的手段 是插值的外延 插值算法:使用在现有的数据极少,不足以支撑分析的进行,这时就需要使用一些数学方法…

插值算法——分段线性插值(1)

首先,科普一下插值的含义:在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。 插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 插…

Matlab实现常见的插值算法

本文介绍如何使用 Matlab 实现常见的插值算法:分段三次埃尔米特插值和三次样条插值。 分段三次埃尔米特插值 (1) pchip(x, y, new_x)函数表示分段三次埃尔米特插值,x表示已有的数据 点,y表示数据点代表的纵坐标值&am…

图像插值算法及其实现

sensor、codec、display device都是基于pixel的,高分辨率图像能呈现更多的detail,由于sensor制造和chip的限制,我们需要用到图像插值(scaler/resize)技术,这种方法代价小,使用方便。同时&#x…

插值算法(数学建模学习)

本系列参考清风老师的数学建模课程 插值算法 一、算法介绍 (一)算法引入 对于数据量少到不足以去分析问题,而必须生成一些合理的数据的情况要用到插值算法。 (二)算法详解 (1)定义 设函数 …

MATLAB-插值算法汇总

前言 数模比赛中常常需要对数据进行分析,当数据不足时就需要补充数据,所用到的方法就是插值法。本文汇总了一些常用的插值算法。 Hermite插值 埃尔米特插值(Hermite)会在给定的节点处,要求插值多项式的函数值与原函数值相同,同时…

第三讲 插值算法

数模比赛中,常常需要根据已知的函数点进行数据,模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足需求&#…

opencv中插值算法详解

导读 做图像处理的同学应该经常都会用到图像的缩放,我们都知道图片存储的时候其实就是一个矩阵,所以在对图像进行缩放操作的时候,也就是在对矩阵进行操作,如果想要将图片放大,这里我们就需要用到过采样算法来扩大矩阵…

几种插值算法对比

1.拉格朗日插值 2.牛顿插值 3.分段线性插值 4. 分段三次埃尔米特插值 5.样条插值函数 6.五种样条函数比较 所以, 7. 五种插值方法的实际应用

转载:一文讲解图像插值算法原理

最近在研究插值算法,看到这篇CSDN博主Datawhale学习介绍的博文,觉得介绍得挺不错,转载过来。原文地址:https://blog.csdn.net/Datawhale/article/details/105697264 寄语:本文梳理了最近邻插值法、双线性插值法和三次…

插值算法

插值,通俗来说当在一个离散的事件中,想知道某一个位置确定的值时,就可以利用插值方式计算得到,即利用已知数据估计未知位置数值。插值的方式有很多,下面介绍几种常用的插值方式。 一、最近邻插值(Nearest Neighbour …

几种插值算法对比研究

[研究内容] 目前比较常用的几种插值算法 [正文] 目前比较常用的插值算法有这么几种:最邻近插值,双线性二次插值,三次插值, Lanczos插值等等,今天我们来对比一下这几种插值效果的优劣。 1,最邻近插值 最…

【3.0】 常见的插值算法

插值算法的概念一维插值问题一般插值多项式的原理拉格朗日插值法牛顿插值法埃尔米特插值法分段 三次埃尔米特插值和分段三次样条插值(常用,附代码) 一、插值算法的概念 数学建模比赛中,常常需要根据已知的函数点进行数据、模型的…