数学建模案例分析-- 插值与拟合方法建模1数据插值方法及应用 下载本文

内容发布更新时间 : 2024/5/29 13:10:21星期一 下面是文章的全部内容请认真阅读。

数学建模

第十章 插值与拟合方法建模

在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。

§1 数据插值方法及应用

在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。与此有关的一类问题是当原始数据

(x0,y0),(x1,y1),?,(xn,yn)精度较高,要求确定一个初等函数y?P(x)(一般用多项式或分段

多项式函数)通过已知各数据点(节点),即yi?P(xi),i?0,1,?,n,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。

1、分段线性插值

这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。如果

a?x0?x1???xn?b

那么分段线性插值公式为

P(x)?x?xix?xi?1yi?1?yi,xi?1?x?xi,i?1,2,?,n

xi?1?xixi?xi?1可以证明,当分点足够细时,分段线性插值是收敛的。其缺点是不能形成一条光滑曲线。

例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x轴,由南向北方向为y轴,选择方便的原点,并将从最西边界点到最东边界点在x轴上的区间适当的分为若干段,在每个分点的y方向测出南边界点和北边界点的y坐标y1和y2,这样就得到下表的数据(单位:mm)。 x y1 y2 x y1 y2 x y1 y2 7.0 44 44 61.0 36 117 111.5 32 121 10.5 45 59 68.5 34 118 118.0 65 122 13.0 47 70 76.5 41 116 123.5 55 116 17.5 50 72 80.5 45 118 136.5 54 83 34.0 50 93 91.0 46 118 142.0 52 81 40.5 38 100 96.0 43 121 146.0 50 82 44.5 30 110 101.0 37 124 150.0 66 86 48.0 30 110 104.0 33 121 157.0 66 85 56.0 34 110 106.5 28 121 158.0 68 68

根据地图的比例,18 mm相当于40 km。

数学建模

数学建模

根据测量数据,利用MATLAB软件对上下边界进行线性多项式插值,分别求出上边界函数f2(x),下边界函数f1(x),利用求平面图形面积的数值积分方法—将该面积近似分成若干个小长方形,分别求出这些长方形的面积后相加即为该面积的近似解。

S?lim?[f2(?i)?f1(?i)]?xi

n??i?1n式中,?i?[xi?1,xi]。

这里线性插值和面积计算源程序如下: clear all

x=[7.0 10.5 13.0 17.5 34.0 40.5 44.5 48.0 56.0 61.0 68.5 76.5 80.5 91.0 96.0 101.0 104.0 106.5 111.5 118.0 123.5 136.5 142.0 146.0 150.0 157.0 158.0];

y1=[44 45 47 50 50 38 30 30 34 36 34 41 45 46 43 37 33 28 32 65 55 54 52 50 66 66 68];

y2=[44 59 70 72 93 100 110 110 110 117 118 116 118 118 121 124 121 121 121 122 116 83 81 82 86 85 68];

newx=7:0.1:158;

newy1=interp1(x,y1,newx,’linear’); newy2=interp1(x,y2,newx,’linear’);

Area=sum(newy2- newy1)*0.1/18^2*1600 最后计算的面积约为42414平方公里。 2、多项式插值 设有m次多项式

P(x)?a0xm?a1xm?1???am?1x?am

通过所有n?1个点(x0,y0),(x1,y1),?,(xn,yn),那么就有

a0xi?a1ximm?1???am?1xi?am?yi,i?0,1,?,n

可以证明当m?n且x0?x1???xn时,这样的多项式存在且唯一。若要求得到函数表达式,可直接解上面方程组。若只要求得函数在插值点处数值,可用下列Lagrange插值公式

Pn(x)??yi(i?0nj?0,j?i?nx?xjxi?xj)

多项式插值光滑但不具有收敛性,一般不宜采用高次多项式(如m?7)插值。 例2、在万能拉拨机中有一个园柱形凸轮,其底园半径R=300mm,凸轮的上端面不在同一平面上,而要根据动杆位移变化的需要进行设计制造。按设计要求,将底园周18等分,旋转一周。第i个分点对应柱高yi(i?0,1,2,?,18),数据见下表。为了数控加工,需要计算出园周上任一点的柱高。

凸轮高度的数据(单位:mm)

分点i 数学建模

0和18 1 2 3 4 5 数学建模

柱高 分点i 柱高 分点i 柱高 502.8 6 92.2 12 236.0 525.0 7 59.6 13 280.5 514.3 8 62.2 14 324.9 451.0 9 102.7 15 369.4 326.5 10 147.1 16 413.8 188.6 11 191.6 17 458.3 我们将园周展开,借助MATLAB软件画出对应的柱高曲线散点图(左下图)。 clear;close;

x=linspace(0,2*pi*300,19);

y=[502.8 ,525.0,514.3,451.0,326.5,188.6,92.2,59.6,62.2,102.7,147.1,191.6,236.0,280.5,324.9,369.4,413.8,458.3,502.8];

plot(x,y,’o’);axis([0,2000,0,550]);

可见,可以用三次多项式插值,下面给出借助MATLAB软件画出的柱高插值曲线图(右上图)。 xi=0:2*pi*300;

yi=interp1(x,y,xi,’cubic’); plot(xi,yi);

3、样条插值

这是最常用的插值方法。数学上所说的样条,实质上是指分段多项式的光滑连接。设有

a?x0?x1???xn?b

称分段函数S(x)为k次样条函数,若它满足

(1) S(x)在每个小区间上是次数不超过k次的多项式; (2) S(x)在[a,b]上具有直到k?1阶的连续导数。

用样条函数作出的插值称为样条插值。工程上广泛采用三次样条插值。

例3、某居民区的自来水是由一个园柱形的水塔提供。水塔高12.2米,直径17.4米。水塔由水泵根据塔中水位高低自动加水,一般每天水泵工作两次。按照设计,当水塔内的水位降至约8.2米时,水泵自动启动加水;当水位升至约10.8米时,水泵停止工作。现在需要了解该居民区用水规律,这可以通过用水率(单位时间的用水量)来反映。通过间隔一段时间测量水塔中的水位来估算用水率。下表是某一天的测量记录数据,测量了28个时刻(单位:小时)的水位(单位:米),但由于其中有3个时刻正遇到水泵在向水塔供水,而无水位记录(表中用符号//表示)。 时刻 水位 数学建模

0 9.677 0.921 9.479 1.843 9.308 2.949 9.125 3.871 8.982 4.978 8.814 5.900 8.686