本文主要是介绍【数学建模】清风视频笔记3、插值算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
插值算法
“模拟产生”一些新的但又比较靠谱的值来满足需求,针对数据极少情况
一维插值问题
插值多项式: P ( x ) = a 0 + a 1 x + ⋯ + a n x n P(x)=a_0+a_1x+\dots+a_nx^n P(x)=a0+a1x+⋯+anxn
若 P ( x ) P(x) P(x)为分段多项式,就称分段插值
若 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)
f ( x ) = x − x 1 x 0 − x 1 y 0 + x − x 0 x 1 − x 0 y 1 f(x)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1 f(x)=x0−x1x−x1y0+x1−x0x−x0y1
问题:龙格现象(Runge);插值多项式不一定次数越高误差越小;高次插值会产生龙格现象,即在两端处波动极大。
※分段线性插值
分段线性插值:相邻两节点构造直线插值
分段二次插值(分段抛物插值):选取跟节点最近三节点进行二次插值
牛顿插值法
f ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x 1 − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + f [ x 0 , x 1 , … , x n ] ( x − x 0 ) ( x − x 1 ) … ( x − x n ) f(x)=f(x_0)+f[x_0,x_1](x_1-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+f[x_0,x_1,\dots,x_n](x-x_0)(x-x_1)\dots(x-x_n) f(x)=f(x0)+f[x0,x1](x1−x0)+f[x0,x1,x2](x−x0)(x−x1)+f[x0,x1,…,xn](x−x0)(x−x1)…(x−xn)
两种插值法另一个缺点:不能全面反映被插值函数的性态
埃尔米特插值
※※分段三次埃尔米特插值
%pchip函数
p = pchip(x,y,new_x)
※※三次样条插值
需要二阶连续可微
%spline函数
p = spline(x,y,new_x)
n维数据插值
p = interpn(x1,x2,...,xn,y,new_x1,new_x2,...,new_xn,method)
%linear:线性插值
%cubic:三次插值
%spline:三次样条插值(最精准)
%linear:最近邻插值
插值算法可用于预测!
这篇关于【数学建模】清风视频笔记3、插值算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!