数学建模——插值算法

这篇具有很好参考价值的文章主要介绍了数学建模——插值算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一维插值问题:

通过已有的点和对应的值,构造函数将其要插入的横坐标但如得到插入点(纵坐标)

数学建模——插值算法,数学建模,算法,数学建模,Matlab

插值法的定义:数学建模——插值算法,数学建模,算法,数学建模,Matlab

插值法的分类:数学建模——插值算法,数学建模,算法,数学建模,Matlab

插值法原理:数学建模——插值算法,数学建模,算法,数学建模,Matlab

拉格朗日插值法与牛顿插值法:

(这两种方法只做了解,为的是引出龙格现象和后续我们mtalab中真正常用到两种方法,所以下面只放一些相关的ppt)

数学建模——插值算法,数学建模,算法,数学建模,Matlab

 数学建模——插值算法,数学建模,算法,数学建模,Matlab

 数学建模——插值算法,数学建模,算法,数学建模,Matlab

 数学建模——插值算法,数学建模,算法,数学建模,Matlab

龙格现象:

(直白点就是插入的次数越多不已经数据就越精确,反而会产生龙格现象:即放插入值多是图像更加偏离)

数学建模——插值算法,数学建模,算法,数学建模,Matlab

数学建模——插值算法,数学建模,算法,数学建模,Matlab

 数学建模——插值算法,数学建模,算法,数学建模,Matlab

(所以我们在不熟悉曲线运动的趋势时少用多次插值)

如何解决龙格现象

分段插值即:在要插入点x(横坐标)左右各找一点,将其对应的值连接成一个线段,x在线段上对应的值y即是我们要插入的点。这样故好的那束次数过多,导致数据不精确数学建模——插值算法,数学建模,算法,数学建模,Matlab

如何使得插值法更加精确呢?

A.埃尔米特(Hermite)插值

数学建模——插值算法,数学建模,算法,数学建模,Matlab

数学建模——插值算法,数学建模,算法,数学建模,Matlab

在matlab中用pchip函数来表示分段三次埃尔米特插值法,pchip(x,y,new_x)中x和y可以是一个n列一行的矩阵,new_x的长度是插入后的长度。

Plot是绘图函数,plot(x,y,‘线段或点的形状’),数学建模——插值算法,数学建模,算法,数学建模,Matlab

Eg

数学建模——插值算法,数学建模,算法,数学建模,Matlab三次样条插值:

 数学建模——插值算法,数学建模,算法,数学建模,Matlab

Matlab中三次样条插值和分段三次埃尔比特插值法相只是函数名字不同,传参和返回值都是一样的

数学建模——插值算法,数学建模,算法,数学建模,Matlab

 分段三次埃尔米特插值法和三次样条插值法绘图后的比较(我么用的是用这两个插值函数购构建sinx函数图像):

不难看出三次样条插值法更光滑数学建模——插值算法,数学建模,算法,数学建模,Matlab

插值法解决生活实例的例题Mtalab代码的实现与讲解:

本题是给出我们1 3 5 7 9 11 13 15周的数据让我们利用插值法将1-15周的数据补全,且用matlab构建每个指标的图像。(只需要补全一号池的数据即可)数学建模——插值算法,数学建模,算法,数学建模,Matlab

其中所用到的函数的讲解:

figure(num)函数:在同一个脚本文件里面,需要给每个图像编号,否则只会显示最后一个图像。(如果我们每个图像在单独的一个面板且展示的时候需要都展示出来,因此我们需要使用到figure函数。)

eg:数学建模——插值算法,数学建模,算法,数学建模,Matlab

legend函数:标注图像中的线段/点对应的插值方法和显示的位置等。

Legend(‘名字’,‘location(坐标一般写位置是需要先写这个)’,‘方向(eg:SouthEast东南)’)

Eg:

数学建模——插值算法,数学建模,算法,数学建模,Matlab

 代码实现及其注释讲解:

clear;clc
load data.mat;
x=Z(1,:);
[n,m]=size(Z)%求出x的行(数据个数)和列(周数)
data_name={'周数','轮虫','溶氧','COD','水温','PH值','盐度','透明度','总碱度','氯离子','透明度','生物量'};
disp(['共有' num2str(n-1) '个指标进行插值']);
disp('正在进行一号池三次样条插值,请等待:');
%设置一个矩阵P,保存插入好的数据
%1.开辟一个矩阵(大小为n-1行和15列)
P=zeros(n-1,15);
for i=2:n
new_x=1:15;%插入后的总列数
y=Z(i,:);
%将每次插入好的数据保存下来
pi=spline(x,y,new_x);
%绘图
%a.设置图形的大小
%subpolt(x,y,i)的作用:
%我们一共要绘制11个图,为了方面观看需要将这11个图放在同一个面板上观察,而subpolt的作用就是绘制这样一个面板的函数
%前两个参数x,y表示这个面版最多能方4*3个图,一共四行,每行最多方3个,i则代表了位置,从左->右,上->下依次排序1-x*y
subplot(4,3,i-1);
%b.传入数据构建图形
plot(x,y,'ro',new_x,pi,'-');
%c.设置横坐标的长度(1-15),纵坐标不进行改变
%axis函数设置图形的横纵坐标范围
axis([0 15 -inf inf])
%d.设置图形的名称(每个图形标记好相对应的指标名称)
%ylable为图像设置名称
ylabel(data_name{i})
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%将每次保存的插入好的输入依次保存到一个大的矩阵当中
P(i-1,:)=pi;
end
%为每组图中的线段和点标记好所用的插入方法:
legend('原始数据','三次样条插值数据','Location','SouthEast')
%周数插入到P矩阵的上方
P=[1:15;P];


最后的插值数据完整后的结果和利用matlab构建的图像:

数学建模——插值算法,数学建模,算法,数学建模,Matlab

 

 博主主要跟着清风数学建模的课程学习,其中里面的一些图片都来源于上课视频的截图。文章来源地址https://www.toymoban.com/news/detail-570159.html

到了这里,关于数学建模——插值算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模——插值算法

    概念:数模比赛中,常常需要根据有已知的函数点进行数、模型处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“模拟产生“一些新的但又比较靠谱的值来满足需求,这就是插值的作用。 一维插值问题: 通过已有的点

    2024年02月16日
    浏览(38)
  • 【数学建模】清风数模正课3 插值算法

    在数模比赛中,很多类型的题目都需要根据已知的函数点进行数据分析和模型处理; 当此时题目所给的数据较少时,我们就无法进行准确科学的分析,所以需要更多的数据,也就是函数点; 这就需要使用数学方法, 模拟生成一些新的、较靠谱的值来满足需求,这就是插值的

    2024年02月11日
    浏览(42)
  • 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践

    温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就 需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足

    2024年02月05日
    浏览(47)
  • 【数学建模】 MATLAB 蚁群算法

    MATLAB–基于蚁群算法的机器人最短路径规划 * https://blog.csdn.net/woai210shiyanshi/article/details/104712540?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168853912916800215023827%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_id=168853912916800215023827biz_id=0utm_medium=distribute.pc_search_result.

    2024年02月15日
    浏览(49)
  • 【数学建模】《实战数学建模:例题与讲解》第十四讲-模拟退火、遗传算法(含Matlab代码)

    本系列侧重于例题实战与讲解,希望能够在例题中理解相应技巧。文章开头相关基础知识只是进行简单回顾,读者可以搭配课本或其他博客了解相应章节,然后进入本文正文例题实战,效果更佳。 如果这篇文章对你有帮助,欢迎点赞与收藏~ 现代优化算法,自20世纪80年代初开

    2024年02月04日
    浏览(55)
  • 数学建模——插值(下)

    本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!! 目录 一、2维插值原理及公式 1、二维插值问题 2、最邻近插值 3、分片线性插值 4、双线性插值 5、二维样条插值 二、二维插值及其Matlab工具箱 1、已知网格节点(xi,yj,zij)(i=1,2,…,m,j=1,2,…,n),且满足

    2024年02月12日
    浏览(60)
  • 数学建模——插值(上)

    本文是面向数学建模准备的,是介绍性文章,没有过多关于原理的说明!!! 已知区间[a,b]上有系列观测值(xi,yi),i=0,1,2,…,n,求一条曲线把这些点依次连接起来,称为插值,这条曲线的表达式f(x)称为插值函数。一般f(x)解析式也是未知的。  最简单、最直观的做法就是把两个

    2024年02月13日
    浏览(87)
  • 数学建模——插值与拟合

    插值与拟合在建模过程中是一种十分重要的方法,由于赛题中给出的数据可能出现缺失,此时就需要用到插值的方式来对数据进行补全,又或者是给出一部分数据,需要你对未来一部分数据进行预测,这个时候就需要用到拟合的相关知识。 在实际中,常常要处理由实验或测量

    2024年02月01日
    浏览(71)
  • 数学建模 -- 插值与拟合

    灰色预测要等时距 已知函数在某区间内若干点处的值,求函数在该区间内其他点处的值。这种问题适合用插值的方法解决。 拉格朗日插值法:用的不多,在边缘处容易出现Runge现象。 高次插值的Runge现象:当插值多项式的次数超过7时,插值多项式会出现严重的震荡现象。 避

    2024年02月13日
    浏览(40)
  • Matlab数学建模算法之模拟退火算法(SA)详解

    🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥  推荐专栏:《算法研究》 🔐####  防伪水印——左手の明天 #### 🔐 💗 大家好🤗🤗🤗,我是 左手の明天 !好久不见💗 💗今天分享 matlab数学建模算法 —— 模拟退火算法 💗

    2024年01月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包