数学建模插值算法

插值算法

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

插值法定义

设函数 y = f ( x ) y=f (x) y=f(x) 在区间 [ a , b ] [ a , b ] [a,b]上有定义,且已知在点 a ≤ x 0 < x 1 < . . . < x n ≤ b a ≤ x_0 < x_1 < . . . < x_n ≤ b ax0<x1<...<xnb
上的值分别为: y 0 , y 1 . . . y n y_0 , y_1 . . . y_n y0,y1...yn若存在一简单函数 P ( x ) P(x) P(x)使得
P ( x i ) = y i   ,   i ∈ N P (x_i)=y_i \ ,\ i ∈ N P(xi)=yi , iN
则称 P ( x ) P ( x ) P(x) f ( x ) f ( x ) f(x)的插值函数。称 x 0 , x 1 . . . x n x_0 , x_1 . . . x_n x0,x1...xn为插值节点。称 [ a , b ] [ a , b ] [a,b]为插值区间。称求插值函数 P ( x ) P ( x ) P(x) 的方法为插值法。

插值法的分类

  • 分段插值
  • 插值多项式
  • 三角插值

一般插值多项式原理

在这里插入图片描述
求解线性方程组,得到插值多项式。

缺点

  • 多次插值会产生龙格现象,即在两端波动极大,产生明显的震荡。在不熟悉曲线运动的前提下,不要轻易使用高次插值
  • 插值多项式不能全面反映被插值函数的性态。(导数等)

拉格朗日插值法

  • 两个点: ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0,y_0),(x_1,y_1) (x0,y0),(x1,y1)
    在这里插入图片描述

  • 三个点: ( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_0,y_0),(x_1,y_1),(x_2,y_2) (x0,y0),(x1,y1),(x2,y2)
    在这里插入图片描述

  • 四个点: ( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_0,y_0),(x_1,y_1),(x_2,y_2),(x_3,y_3) (x0,y0),(x1,y1),(x2,y2),(x3,y3)
    在这里插入图片描述

牛顿插值法

在这里插入图片描述
与拉格朗日插值法相比,牛顿插值法的计算过程具有继承性。(牛顿插值法每次插值只和前n项的值有关,这样每次只要在原来的函数上添加新的项,就能够产生新的函数)
但是牛顿插值也存在龙格现象的问题。

埃尔米特(Hermite)插值

  • 不但要求在节点上的函数值相等,而且还要求对应的导数值也相等,甚至要求高阶导数也相等,满足这种要求的插值多项式就是埃尔米特插值多项式。
  • 直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象,因此在实际应用中,往往使用分段三次 Hermite 插值多项式 (PCHIP)
  • Matlab内置函数: p = pchip(x,y, new_x)
    x是已知的样本点的横坐标;
    y是已知的样本点的纵坐标;
    new_x是要插入处对应的横坐标
  • 画图plot函数用法: plot(x1,y1,x2,y2)
  1. 线方式:
    实线 :点线 ‐. 虚点线 ‐ ‐ 波折线
  2. 点方式:
    . 圆点 +加号 *星号 x x形 o 小圆
  3. 颜色:
    yrg绿 bwkmc
x = ‐pi:pi; y = sin(x);
new_x = ‐pi:0.1:pi;
p = pchip(x,y,new_x);
plot(x, y, 'o', new_x, p, 'r‐')

三次样条插值

Matlab有内置的函数:p = spline (x,y, new_x)
x是已知的样本点的横坐标;
y是已知的样本点的纵坐标;
new_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’) %标注显示在东南方向

ps:

  • legend(string1,string2,string3, …)分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。
  • Location用来指定标注显示的位置

n维数据的插值

p=interpn(x1,x2,...,xn,y,new_x1,new_x2,...,new_xn, method)
x1,x2,...,xn是已知的样本点的横坐标
y是已知的样本点的纵坐标坐标
new_x1,new_x2,...,new_xn是要插入点的横坐标
method是要插值的方法

linear 线性插值(默认算法)
cubic 三次插值;
spline 三次样条插值法;(最为精准)
nearest 最邻近插值算法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值