数学建模常见的一些方法【03插值算法】

数学建模常见的一些方法

1. 插值算法

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

1.1 插值法的定义

在这里插入图片描述

1.2 插值法的分类

在这里插入图片描述
注:三角插值一般要用到傅里叶变换等复杂的数学工具。

1.3 一般插值多项式原理

在这里插入图片描述
在这里插入图片描述

1.4 拉格朗日插值法

在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫∙路易斯∙拉格朗日命名的一种多项式插值方法。在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.5 龙格现象(Runge phenomenon)

在这里插入图片描述
在这里插入图片描述
高次插值会产生龙格现象,即在两端处波动极大,产生明显的震荡。在不熟悉曲线
运动趋势的前提下,不要轻易使用高次插值。

1.6 分段线性插值

在这里插入图片描述

1.7 分段二次插值

在这里插入图片描述

1.8 牛顿插值法

在这里插入图片描述
在这里插入图片描述

1.9 两种插值法的对比

在这里插入图片描述

1.10 两种插值法的另一个缺点

  上面讲的两种插值仅仅要求插值多项式在插值节点处与被插函数有相等的函数值,而这种插值多项式却不能全面反映被插值函数的性态
  然而在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在一个或全部节点上插值多项式与被插函数有相同的低阶甚至高阶的导数值。
  对于这些情况,拉格朗日插值和牛顿插值都不能满足。

1.11 埃尔米特 (Hermite)插值

在这里插入图片描述
不但要求在节点上的函数值相等,而且还要求对应的导数值也相等,甚至要求
高阶导数也相等,满足这种要求的插值多项式就是埃尔米特插值多项式。

1.12 埃尔米特 (Hermite)插值原理

在这里插入图片描述

1.13 分段三次埃尔米特插值

在这里插入图片描述

1.14 三次样条插值

在这里插入图片描述

1.15 三次样条多项式满足的条件

在这里插入图片描述

1.16 三次样条插值

在这里插入图片描述

Z =

   1.0e+03 *

    0.0010    0.0030    0.0050    0.0070    0.0090    0.0110    0.0130    0.0150
    1.9130    1.9450    1.9200    2.2050    2.2600    2.3020    2.3850    2.4200
    0.0051    0.0032    0.0067    0.0034    0.0024    0.0041    0.0064    0.0046
    0.0219    0.0200    0.0268    0.0277    0.0234    0.0227    0.0254    0.0260
    0.0248    0.0257    0.0268    0.0280    0.0304    0.0300    0.0276    0.0308
    0.0093    0.0091    0.0091    0.0093    0.0092    0.0093    0.0092    0.0093
    0.0018    0.0023    0.0019    0.0021    0.0021    0.0011    0.0015    0.0015
    0.0280    0.0240    0.0260    0.0220    0.0220    0.0200    0.0190    0.0230
    0.4251    0.4580    0.4925    0.4921    0.5019    0.5985    0.6044    0.6239
    0.6281    0.6392    0.6489    0.6403    0.6164    0.6147    0.5071    0.5800
    0.0280    0.0240    0.0260    0.0220    0.0220    0.0200    0.0190    0.0230
    0.0306    0.0362    0.0498    0.0606    0.0566    0.0601    0.0680    0.0677
%插值预测中间周的水体评价指标
x=Z(1,:); %Z的第一行是星期Z: 1     3     5     7     9    11    13    15

[n,m]=size(Z);%n为Z的行数,m为Z的列数

% 注意Matlab的数组中不能保存字符串,如果要生成字符串数组,就需要使用元胞数组,其用大括号{}定义和引用
ylab={'周数','轮虫','溶氧','COD','水温','PH值','盐度','透明度','总碱度','氯离子','透明度','生物量'};  % 等会要画的图形的标签

disp(['共有' num2str(n-1) '个指标要进行插值。'])
disp('正在对一号池三次埃尔米特插值,请等待')%一号池共有十一组要插值的数据,算上星期所在的第一行,共十二行

P=zeros(11,15);%对要储存数据的矩阵P赋予初值

for i=2:n  %从第二行开始都是要进行插值的指标
    y=Z(i,:);  %将每一行依次赋值给y
    new_x=1:15;  %要进行插值的x
    p1=pchip(x,y,new_x);  %调用三次埃尔米特插值函数
    p2=spline(x,y,new_x);%三次样条插值
    subplot(4,3,i-1);  %将所有图依次变现在4*3的一幅大图上
    plot(x,y,'ro',new_x,p1,'-',new_x,p2,'--',x,y,'-.');%画出每次循环处理后的图像
    axis([0 15,-inf,inf])  %设置坐标轴的范围,这里设置横坐标轴0-15,纵坐标不变化
    %  xlabel('星期')  %x轴标题
    ylabel(ylab{i})  %y轴标题  这里是直接引用元胞数组中的字符串哦
    P(i-1,:)=p1;  %将每次插值之后的结果保存在P矩阵中       
end
legend('原始数据','三次埃尔米特插值数据','三次样条插值','未插值','Location','SouthEast')
P = [1:15; P]  %把P的第一行加上周数

可以对比一下插值后和没插值的图
在这里插入图片描述

1.17 插值结果对比

在这里插入图片描述
  可以看出,三次样条生成的曲线更加光滑。在实际建模中,由于我们不知道数据的生成过程,因此这两种插值都可以使用

刘春凤: 中国大学MOOC数值计算方法

参考链接

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数学建模是将实际问题抽象为数学模型的过程,通过对模型进行研究和分析,我们可以得出问题的解决方案或结论。而MATLAB是一种强大的科学计算软件,它提供了丰富的数学建模工具和算法库,便于我们进行数学模型的求解。 MATLAB在数学建模中常用的算法包括优化算法插值算法和数值计算算法等。 优化算法数学建模中扮演着重要角色,它们可以帮助我们找到最优解或满足一定约束条件的解。MATLAB中包含了常见的优化算法,如线性规划、整数规划、非线性规划和最优控制等。通过设置目标函数和约束条件,我们可以使用MATLAB的优化函数进行求解。 插值算法数学建模中常用的数据处理方法,它们可以通过一组已知数据点,给出这些数据之间的未知数据点的估计值。MATLAB提供了许多插值算法函数,如线性插值、拉格朗日插值和样条插值等。我们可以使用MATLAB的插值函数来拟合和预测数据,从而得到更全面和准确的结论。 数值计算算法数学建模中解决微分方程和积分方程的常用方法。MATLAB中提供了广泛的数值计算函数和工具箱,如常微分方程求解器、偏微分方程求解器和积分方程求解器等。这些算法能够帮助我们通过数值的方式求解复杂的数学模型,从而得到模型的解析解。 在实际应用中,我们可以使用MATLAB的算法和工具进行数学建模的各个阶段,包括建立数学模型、求解模型、模型评估和验证等。MATLAB提供了友好的用户界面和丰富的函数库,使得数学建模的过程更加高效和便捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

slience_me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值