数学建模案例分析-- 插值与拟合方法建模1数据插值方法及应用
数学建模数学实验插值及案例
数学建模数学实验插值及案例在科学研究和工程实践中,数学建模扮演着至关重要的角色。
通过建立数学模型,我们可以对现实世界的现象进行模拟和预测。
其中,插值方法是一种重要的数学建模工具,用于估计在给定数据点之间的未知值。
本文将探讨插值方法的基础理论以及一个具体的数学实验案例。
插值方法是一种数学技术,通过在给定的数据点之间估计未知的值。
最常用的插值方法包括线性插值、多项式插值和样条插值等。
线性插值是最简单的插值方法,它将数据点之间的变化视为线性的,即变化率保持恒定。
多项式插值方法则通过构建一个多项式函数来逼近数据点的变化趋势。
样条插值则通过将数据点连接成平滑的曲线来进行插值。
本案例将利用多项式插值方法对房价进行预测。
我们收集了一组房屋价格数据,包括房屋的面积、房龄、位置等信息。
然后,我们使用多项式插值方法构建一个函数来描述房价与这些因素之间的关系。
通过调整多项式的阶数,我们可以控制模型的复杂性。
我们使用该模型来预测新的房价。
在本案例中,我们使用了200个样本数据进行训练,并使用另外100个数据点进行测试。
我们发现,通过增加多项式的阶数,模型的预测精度可以得到提高。
然而,当阶数增加到一定程度后,模型的性能改善不再明显。
我们还发现模型的预测结果对训练数据的分布非常敏感,对于分布偏离较大的新数据点,预测结果可能会出现较大误差。
通过本次数学实验,我们深入了解了插值方法在数学建模中的应用。
在实际问题中,插值方法可以帮助我们更好地理解数据的变化趋势和预测未知的值。
然而,插值方法也存在一定的局限性,如本实验中模型对训练数据分布的敏感性。
未来工作中,我们可以尝试采用其他更加复杂的模型,如神经网络、支持向量机等来提高预测精度。
我们还应充分考虑数据的分布特性,以提高模型的泛化能力。
插值方法是数学建模中的重要工具之一,它可以让我们更好地理解和预测数据的趋势。
通过本次数学实验,我们深入了解了多项式插值方法的工作原理和实现过程,并成功地将其应用于房价预测问题中。
数学建模插值及拟合详解
插值和拟合【1 】试验目标:懂得数值剖析建模的办法,控制用Matlab进行曲线拟合的办法,懂得用插值法建模的思惟,应用Matlab一些敕令及编程实现插值建模.试验请求:懂得曲线拟合和插值办法的思惟,熟习Matlab相干的敕令,完成响应的演习,并将操纵进程.程序及成果记载下来.试验内容:一.插值1.插值的根本思惟·已知有n +1个节点(xj,yj),j = 0,1,…, n,个中xj互不雷同,节点(xj, yj)可算作由某个函数 y= f(x)产生;·结构一个相对简略的函数y=P(x);·使P经由过程全体节点,即 P (xk) = yk,k=0,1,…, n ;·用P (x)作为函数f ( x )的近似.2.用MA TLAB作一维插值盘算yi=interp1(x,y,xi,'method')注:yi—xi处的插值成果;x,y—插值节点;xi—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值).留意:所有的插值办法都请求x是单调的,并且xi不克不及够超出x的规模.演习1:机床加工问题机翼断面下的轮廓线上的数据如下表:x 0 3 5 7 9 11 12 13 14 15y 0用程控铣床加工机翼断面的下轮廓线时每一刀只能沿x偏向和y偏向走异常小的一步.表3-1给出了下轮廓线上的部分数据但工艺请求铣床沿x偏向每次只能移动单位.这时需求出当x 坐标每转变单位时的y 坐标. 试完成加工所需的数据,画出曲线. 步调1:用x0,y0两向量暗示插值节点;步调2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步调3:plot(x0,y0,'k+',x,y,'r')grid on答:x0=[0 3 5 7 9 11 12 13 14 15 ]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; x=0:0.1:15;y=interp1(x0,y0,x,'spline'); plot(x0,y0,'k+',x,y,'r') grid on0510150.511.522.53.用MA TLAB 作网格节点数据的插值(二维)z=interp2(x0,y0,z0,x,y,’method’)注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;缺省时:双线性插值).留意:请求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分离不克不及超出x0,y0的规模.4.用MA TLAB作散点数据的插值盘算cz =griddata(x,y,z,cx,cy,‘method’)注:cz—被插点值的函数值;x,y,z—插值节点;cx,cy—被插值点;method—插值办法(‘nearest’:最临近插值;‘linear’:双线性插值; ‘cubic’:双三次插值;'v4‘:Matlab供给的插值办法;缺省时:双线性插值).演习2:航行区域的警示线某海域上频仍地有各类吨位的船只经由.为包管船只的航行安然,有关机构在低潮时对水深进行了测量,下表是他们供给的测量数据:水道水深的测量数据x 129.0140.0 103.5 88.0 185.5 195.0 105.5y 7.5 141.5 23.0 147.0 22.5 137.5 85.5z 4 8 6 8 6 8 8x157.5 107.5 77.0 81.0 162.0 162.0 117.5y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5z 9 9 8 8 9 4 9个中(x, y)为测量点,z为(x, y)处的水深(英尺),水深z是区域坐标(x, y)的函数z= z (x, y),船的吨位可以用其吃水深度来反应,分为4英尺.英尺.5英尺和英尺 4 档.航运部分要在矩形海域(75,200)×(-50,150)上为不合吨位的航船设置警示标识表记标帜.请依据测量的数据描写该海域的地貌,并绘制不合吨位的警示线,供航运部分应用. x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];cx=75:0.5:200;cy=-70:0.5:150;cz=griddata(x,y,z,cx,cy','cubic');meshz(cx,cy,cz),rotate3dxlabel('X'),ylabel('Y'),zlabel('Z')%pausefigure(2),contour(cx,cy,cz,[-5 -5]);grid on,hold onplot(x,y,'+')xlabel('X'),ylabel('Y')200XYZXY80100120140160180200-60-40-20020406080100120140演习3:估量水塔的水流量—93,请绘出三次样条插值曲线,并盘算一天的总的用水量. 解:t0=[0.46,1.38,2.4,3.41,4.43,5.44,6.45,7.47,8.45,11.49,12.49,13.42,14.43,15.44,16.37,17.38,18.49,19.50,20.40,24.43,25.32];v0=[11.2,9.7,8.6,8.1,9.3,7.2,7.9,7.4,8.4,15.6,16.4,15.5,13.4,13.8,12.9,12.2,12.2,12.9,12.6,11.2,3.5]; t=0:0.1:26; y=interp1(t0,v0,t,'spline'); plot(t0,v0,'k+',t,y,'r') grid on0510********-10-55101520二.曲线拟合已知一组(二维)数据,即平面上 n 个点(xi,yi) i=1,…n, 追求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所稀有据点最为接近,即曲线拟合得最好.最经常应用的办法是线性最小二乘拟合 1.多项式拟合⏹对给定的数据(xj,yj),j = 0,1,…, n;⏹拔取恰当阶数的多项式,如二次多项式g(x)=ax^2+bx+c;⏹使g(x)尽可能逼近(拟合)这些数据,但是不请求经由给定的数据(xj,yj); 2.多项式拟合指令1)多项式f(x)=a1xm+ …+amx+am+1拟合指令:a=polyfit(x,y,m)a:输出多项式拟合系数a[a1,a2,…,am];x,y:输出长度雷同的数组;m:多项式的次数. 2)多项式在x处的值y的盘算敕令:y=polyval(a,x)演习4:对下面一组数据作二次多项式拟合写出拟合敕令:plot(x,y,'k+',x,z,'r')作出数据点和拟合曲线:0.10.20.30.40.50.60.70.80.91写出拟合的二次多项式:0317.01293.208108.9)(2-+-=x x x f3.可化为多项式的非线性拟和曲线改直是工程中又一经常应用的断定曲线情势的办法,很多罕有的函数都可以经由过程恰当的变换转化为线性函数.(1)幂函数 by ax c =+ln ln ln y c a b x -=+(2)指数函数 xy ab c =+ln ln ln y c a x b -==(3)抛物函数 2,(0)y ax bx c x =++≠b ax xcy +=- 演习5:完成教材P93页的习题5的第一小题. x0=[0,300,600,1000,1500,2000];x=0:100:2000;y0=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491];y=interp1(x0,y0,x,'spline');plot(x0,y0,'k+',x,y,'r')grid on0200400600800100012001400160018002000。
插值算法的介绍及其在数学建模中的应用
插值算法的介绍及其在数学建模中的应⽤⽬录插值算法的介绍及其在数学建模中的应⽤%本⽂根据清风数学建模课程插值算法及相关资料总结⽽成,仅供学习使⽤%本⽂参考了(),对介绍的顺序及内容进⾏了改进%由于本⽂仅仅是简要介绍插值算法在建模中的应⽤,因此样条插值的可微性证明等各种复杂繁琐的部分在本⽂中不再引⼊%本⽂仅介绍⼀维数据的插值,多维数据的插值⽅法与⼀维插值类似⼀、插值的介绍及其作⽤数模⽐赛中,常常需要根据已知的样本点进⾏数据的处理和分析,⽽有时候现有数据较少或数据不全,不⾜以⽀撑分析的进⾏,这时就需要使⽤插值法“模拟产⽣”⼀些新的但⼜⽐较靠谱的值来满⾜需求,这就是插值的作⽤。
%在直观上,插值就是找到⼀个连续函数使其经过每个样本点%插值法还可⽤于短期的预测问题(插值与拟合经常会被弄混,为了区分,这⾥简要介绍⼀下拟合:即找到⼀个函数,使得该函数在最⼩⼆乘的意义下与已知样本点的总体差别最⼩,该函数不⼀定要经过样本点。
通常情况下,拟合要求已知样本点的数据较多,当数据较少时不适⽤)⼆、插值法原理三、插值法的分类%注:下⾯的1、2、3、4 并⾮是并列关系,⼏个部分之间也有交叉,⽬的在于逐渐引出数学建模中最常⽤的两种插值⽅法:三次样条插值与三次埃尔⽶特插值。
1、普通多项式插值多项式插值中,拉格朗⽇插值与⽜顿插值是经典的插值⽅法,但它们存在明显的龙格现象(下⾯会解释龙格现象),且不能全⾯反映插值函数的特性(仅仅保证了插值多项式在插值节点处与被插函数有相等的函数值)。
然⽽在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在⼀个或全部节点上插值多项式与被插函数有相同的低阶甚⾄⾼阶的导数值。
对于这些情况,拉格朗⽇插值和⽜顿插值都不能满⾜。
因此,数学建模中⼀般不使⽤这两种⽅法进⾏插值,这⾥也不再介绍这两种⽅法。
龙格现象(Runge phenomenon): 1901年,Carl Runge 在他的关于⾼次多项式插值风险的研究中,发现⾼次插值函数可能会在两端处波动极⼤,产⽣明显的震荡,这种现象因此被称为龙格现象。
数学建模案例分析-- 插值与拟合方法建模1数据插值方法及应用
第十章 插值与拟合方法建模在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。
插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。
相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。
§1 数据插值方法及应用在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。
与此有关的一类问题是当原始数据),(,),,(),,(1100n n y x y x y x 精度较高,要求确定一个初等函数)(x P y =(一般用多项式或分段多项式函数)通过已知各数据点(节点),即n i x P y i i ,,1,0,)( ==,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。
1、分段线性插值这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。
如果b x x x a n =<<<= 10那么分段线性插值公式为n i x x x y x x x x y x x x x x P i i i i i i i i i i ,,2,1,,)(11111 =≤<--+--=-----可以证明,当分点足够细时,分段线性插值是收敛的。
其缺点是不能形成一条光滑曲线。
例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。
根据地图的比例,18 mm 相当于40 km 。
根据测量数据,利用MA TLAB 软件对上下边界进行线性多项式插值,分别求出上边界函数)(2x f ,下边界函数)(1x f ,利用求平面图形面积的数值积分方法—将该面积近似分成若干个小长方形,分别求出这些长方形的面积后相加即为该面积的近似解。
插值法和拟合实验报告(数值计算)
插值法和拟合实验报告一、实验目的1.通过进行不同类型的插值,比较各种插值的效果,明确各种插值的优越性;2.通过比较不同次数的多项式拟合效果,了解多项式拟合的原理;3.利用matlab 编程,学会matlab 命令;4.掌握拉格朗日插值法;5.掌握多项式拟合的特点和方法。
二、实验题目1.、插值法实验将区间[-5,5]10等分,对下列函数分别计算插值节点kx 的值,进行不同类型的插值,作出插值函数的图形并与)(x f y =的图形进行比较:;11)(2x x f += ;arctan )(x x f = .1)(42x x x f +=(1) 做拉格朗日插值; (2) 做分段线性插值; (3) 做三次样条插值.2、拟合实验给定数据点如下表所示:分别对上述数据作三次多项式和五次多项式拟合,并求平方误差,作出离散函数),(i i y x 和拟合函数的图形。
三、实验原理1.、插值法实验∏∑∏∏∏∑∑≠==≠=≠=≠=+-==--==-===-=-=----==++==ji j ji i i i i ni i n nji j jnji j ji i nji j jn i i i ni i n nn o i ni i n x x x x x y x l x L x x c ni x x c x x x cx x x x x x x x c y x l x L y x l y x l y x l x L ,00,0,0,0110000)(l )()()(1,1,0,1)()(l )()())(()()()()()()()(,故,得再由,设2、拟合实验四、实验内容1.、插值法实验1.1实验步骤:打开matlab软件,新建一个名为chazhi.m的M文件,编写程序(见1.2实验程序),运行程序,记录结果。
1.2实验程序:x=-5:1:5;xx=-5:0.05:5;y1=1./(1+x.^2);L=malagr(x,y1,xx);L1=interp1(x,y1,x,'linear');S=maspline(x,y1,0.0148,-0.0148,xx);hold on;plot(x,y1,'b*');plot(xx,L,'r');plot(x,L1,'g');plot(xx,S,'k');figurex=-5:1:5;xx=-5:0.05:5;y2=atan(x);L=malagr(x,y2,xx);L1=interp1(x,y2,x,'linear');S=maspline(x,y2,0.0385,0.0385,xx);hold on;plot(x,y2,'b*');plot(xx,L,'r');plot(x,L1,'g');plot(xx,S,'k');figurex=-5:1:5;xx=-5:0.05:5;y3=x.^2./(1+x.^4);L=malagr(x,y3,xx);L1=interp1(x,y3,x,'linear');S=maspline(x,y3,0.0159,-0.0159,xx);hold on;plot(x,y3,'b*');plot(xx,L,'r');plot(x,L1,'g');plot(xx,S,'k');1.3实验设备:matlab软件。
数学建模案例与方法教学课件第5章插值法与拟合方法
5.1 城市供水量的预测问题
图5-3 三种插值函数曲线
5.1 城市供水量的预测问题
3. 用2000—2006年每年1月份城市的总用水量预测
由表5-2可得到7个 插值节点(x i,y i), 其中,xi=i,i=1,2,…,7, 其散点图如图5-4所示。 用三次样条插值法求得 的f(8)=4 378.139 0×104 t即为所求的 2007年1月份总用水量 的估计值,表5-3
5.1 城市供水量的预测问题
5.1.2 用插值法预测2007年1月份城市的总用水量
预测2007年1月份城市的用水量有三种 办法:一是用2006年的日用水量进行预测, 二是用2000—2006年每年1月份的日用水量 进行预测,三是用2000—2006年每年1月份
5.1 城市供水量的预测问题
1. 用2006年的日用水量进行预测
图5-4 2000—2006年每年1月份 城市的总用水量散点图
5.1 城市供水量的预测问题
5.1 城市供水量的预测问题
5.1.3 用数据拟合方法预测2007年1月份城市的总用水量 1. 用2006年每天的日用水量进行预测
由图5-1可知,这些点并不是简单地成线性或二次关系, 而是具有很强的聚集性。我们试图用几个多项式进行拟合。 用 MATLAB工具箱得到的拟合结果见表5-4。
5.2.1 曲线拟合
【实例】 气象部门观测到一天中某些时刻t的温度T变化数据见 表5-6。试描绘出温度变化曲线。
5.2 MATLAB与拟合、插值
曲线拟合就是计算出两组数据之间的一 种函数关系,由此可描绘其变化曲线及估计
曲线拟合有多种方式,下面是一元函数 采用最小二乘法对给定数据进行多项式曲线
5.2 MATLAB与拟合、插值
数学建模插值和拟合问题的总结
插值和数据拟合一、 插值方法问题:已知n+1个节点(x j ,y j )(j=0,1,…,n),a=x 0<x 1<…< x n =b ,求任一插值点x*处的插值y*方法:构造一个相对简单的函数y=f(x),使得f 通过所有节点,即f(x j )= y j ,再用y=f(x)计算x*的值。
1. 拉格朗日多项式插值设f(x)是n 次多项式,记作1110()n n n n n L x a x a x a x a --=++++要求对于节点(,)j j x y 有(),0,1,,n j j L x y j n ==将n+1个条件带入多项式,就可以解出多项式的n+1个系数。
实际上,我们有n 次多项式011011()()()()()()()()()i i n i i i i i i i n x x x x x x x x l x x x x x x x x x -+-+----=----满足1,()0,,,0,1,,i j i jl x i j i j n =⎧=⎨≠=⎩则0()()nn i i i L x y l x ==∑就是所要的n 次多项式,称为拉格朗日多项式。
由拉格朗日多项式计算的插值称为拉格朗日插值。
一般来讲,并不是多项式的阶数越高就越精确,一般采用三阶、二阶或一阶(线性)多项式,对相邻点进行分段插值。
2. 样条插值在分段插值时,会造成分段点处不光滑,如果要求在分段点处光滑,即不仅函数值相同,还要一阶导数和二阶导数相同,则构成三阶样条插值。
一般用于曲线绘制,数据估计等。
例 对21,[5,5](1)y x x =∈-+,用n=11个等分节点做插值运算,用m=21个等分插值点作图比较结果。
见inter.m 程序二、 曲线拟合 三、 给药方案 1. 问题一种新药用于临床必须设计给药方案,在快速静脉注射的给药方式下,就是要确定每次注射剂量多大,间隔时间多长.我们考虑最简单的一室模型,即整个机体看作一个房室,称为中心室,室内血液浓度是均匀的.注射后浓度上升,然后逐渐下降,要求有一个最小浓度1c 和一个最大浓度2c .设计给药浓度时,要使血药浓度保持在1c ~2c 之间.2. 假设(1)药物排向体外的速度与中心室的血药浓度成正比,比例系数是k(>0),称为排出速度.(2)中心室血液容积为常数V ,t=0的瞬间注入药物的剂量为d ,血药浓度立即为dV. 3. 建模设中心室血药浓度为c(t),满足微分方程(0)dckc dtd c V=-=用分离变量法解微分方程,有()ktd c te V-=(*) 4. 方案设计每隔一段时间τ,重复注入固定剂量D ,使血药浓度c(t)呈周期变化,并保持在1c ~2c 之间.如图:设初次剂量加大到D 0,易知0221,D Vc D Vc Vc ==-,2121()11ln[],()()ln c Vc t t t c t c k d k c τ=-=-= 那么,当12,c c 确定后,要确定给药方案0{,,}D D τ,就要知道参数V 和k .5. 由实验数据做曲线拟合确定参数值已知1210,25(/)c c g ml μ==,一次注入300mg 药物后,间隔一定ln lndc kt V=- 记12ln ,,lndy c a k a V==-=,则有 12y a t a =+求解过程见medicine_1.m得120.2347, 2.9943a a =-=,由d=300(mg)代入算出k=0.2347,V=15.02(L) 从而有0375.5(),225.3(), 3.9()D mg D mg τ===小时四、 口服给药方案 1. 问题口服给药相当于先有一个将药物从肠胃吸收入血液的过程,可简化为一个吸收室,一个中心室,记t 时刻,中心室和吸收室的血液浓度分别是1()()c t c t 和,容积分别是V ,V1,中心室的排除速度为k ,吸收速度为k1,且k,k1分别是中心室和吸收室血液浓度变化率与浓度的比例系数,t=0口服药物的剂量为d ,则有11111,(0)dc dk c c dt V =-= (1) 111,(0)0V dckc k c c dt V=-+= (2) 解方程(1)有111()k td c te V -=代入方程(2)有111()()k t kt k d c t e e V k k--=--其中三个参数1,,dk k b V=,可由下列数据拟合得到:(非线性拟合)。
数学模型数据插值与曲线拟合
实验一数据插值与曲线拟合【实验目地】1.了解数据插值、曲线拟合地概念和原理.2.掌握一维、二维地数据插值方法.3.掌握多项式拟合方法和一般曲线拟合方法.【实验内容】<把题目和相应地完整命令写在下列文本框内)1.数据插值有什么插值方式?曲线拟合依据地基本原理是什么?数据插值与曲线拟合有什么不同点?答: <1)、数据插值方式有最邻近插值、线性插值、三次样条插值、立方插值和分段线性插值.<2)、曲线拟合依据地基本原理是构造一个相对简单地函数y p(x) ,使它在某种意义下最优,我们常用地最优标准是最小二乘法原理,也就是使得上述拟合地曲线在各点n) y )2达到最小.处地偏差 p( x i ) y i地平方和( p(xi ii 1<3)、数据插值与曲线拟合地不同点:若要求所求曲线 <面)通过所给所有数据点, 就是插值问题;若不要求曲线 <面)通过所有数据点, 而是要求它反映对象整体地变化趋势 , 这就是数据拟合, 又称曲线拟合或曲面拟合.曲线插值与拟合都是要根据一组数据构造一个函数作为近似 , 由于近似地要求不同 , 二者在数学方法上是完全不同地 .2、某实验室对一根长 10M地钢轨进行热源地温度在 60 秒内传播测试 .x: 表示测量点 ,h: 测量时间 ,t: 测量得到地温度. 数据如下表0 2.557.510xth09514000 30884832126 606764544841(1)用线性插值求出在 25 秒时 3.6M 处钢轨地温度 .(2)用样条插值求出在这 60 秒内每隔 20 秒, 钢轨每隔 1M处地温度 .解: <1)M 文件:x=[0,2.5,5,7.5,10] 。
h=[0,30,60] 。
t=[95,14,0,0,0 。
88,48,32,12,6。
67,64,54,48,41] 。
t1=interp2(x,h,t,3.6,25,'cubic'>运行结果: t1 =34.5049所以在 25 秒时 3.6M 处地温度为 34.5049<2) M 文件:x=[0,2.5,5,7.5,10] 。
(完整版)数学建模 插值和拟合
x
xn
x
4.2 MATLAB实现插值
Matlab 实现:实现插值不需要编制函 数程序,它自身提供了内部的功能函数 interp1(一维分段插值) interp2(二维) interp3(三维) intern(n维)
4.3.1一维插值
用MATLAB作插值计算
一维插值函数: yi=interp1(x,y,xi,'method')
h=1:0.1:12;
t=interp1(hours,temps,h,'spline');
plot(hours,temps,'+',h,t,'r:')
xlabel('Hour'),ylabel('Degrees Celsius’)
例1:从1点12点的11小时内,每隔1小时测量一次温度, 测得的温度的数值依次为:5,8,9,15,25,29, 31,30,22,25,27,24.试估计(1)每隔1/10小时 的温度值;(2)估计1点30分和13的温度值。
例1:从1点到12点的11小时内,每隔1小时测量一次温 度,测得的温度的数值依次为:5,8,9,15,25, 29,31,30,22,25,27,24.试估计(1)每隔 1/10小时的温度值;(2)估计1点30分和13的温度值。
hours=1:12;
temps=[5 8 9 15 25 29 31 30 22 25 27 24];
x x0 y y0
x1 … xn y1 … yn
其中x0,x1, …xn是n+1个互不相同的点,求一个 近似函数 (x) ,使得
( xi ) f ( xi ) i 0,1 …n
(数学建模课件)第八部分插值与拟合
例9 多项式函数拟合 x=[34 36 37 38 39 39 39 40 40 41 42 43 43 45 47 48]; y=[1.30 1.00 0.73 0.90 0.81 0.70 0.60 0.50 0.44 0.56 0.30 0.42 0.35 0.40 0.41 0.60]; close; plot(x,y) p=polyfit(x,y,2) xi=linspace(34,48,1000); %绘图的X轴数据 z=polyval(p,xi); %得到多项式在数据点处 的值 close; plot(x,y,’ko’,xi,z,’r-’)
2020/10/23
2、二维插值
Z1=interp2 (X,Y,Z,X1,Y1,’method’) 其中X和Y为两个向量,分别描述原始数据点的 自变量取值,Z是对应于X和Y的函数值;X1和 Y1是两个向量,描述欲插值的点。Method的含 义同一维插值。Z1是根据相应的插值方法得到 的插值结果。
2020/10/23
2020/10/23
使用MATLAB软件中的三次样条插值命 令得到用水率函数如下图所示。 x0=t;y0=r; [l,n]=size (x0); dl=x0(n)-x0(1); x=x0(1):1/3600:x0(n); %被插值点 ys=interp1 (x0,y0,x,’spline’); %样条插值输出 plot (x,ys); title (‘样条插值下的流速图’); xlabel(’时间(小时)’); ylabel(‘流速(立方米/小时)’)
例8 非线性函数化为线性函数拟合 t=[0 1 2 3 4 5 6 7 8 9 10]; u=[100 75 55 40 30 20 15 10 10 5 5]; close; plot(t,u) T=t; U=log(u); p=polyfit(T, U,1) b=p(1) a=exp(p(2))
插值与数据拟合建模
因此,在时段[t,t+Δt],从B侧渗透至A侧的该物质的质量为:
于是有:
两边除以Δt,并令Δt→0取极限再稍加整理即得:
(1)
2) 注意到整个容器的溶液中含有该物质的质量不变,与初始时刻该物质的含量相同,因此
思考
最小二乘拟合函数 f(x,a1, …am)的选取
1. 通过机理分析建立数学模型来确定 f;
2. 将数据 (xi,yi) i=1, …n 作图,通过直观判断确定 f:
2. 作一般的最小二乘曲线拟合,可利用已有程序curvefit,其调用格式为: a=curvefit(‘f’, a0, x, y)
这本四位数学用表给出sin =0.576,sin =0.5783。小华认为在sin 到sin 这样小的范围内,正弦可以近似为线性函数,于是很容易地得到Sin =0.576+(0.5783-0.5760)×0.6=0.5774
聪明的小华用的这个办法是一种插值方法——分段线性插值。实际上,插值可以理解为,要根据一个用表格表示的函数,计算表中没有的函数值。 表中有的,如(sin ,0.5760)(sin ,0.5783)称为节点;要计算的,如sin ,称为插值点,结果(0.5774)即为插值。小华作的线性函数为插值函数,插值函数所表示的直线当然要通过节点。
1. 作多项式f(x)=a1xm+ …+amx+am+1函数拟合,可利用已有程序polyfit,其调用格式为:
a=polyfit(x,y,m)
用MATLAB作最小二乘拟合
注:f为拟合函数y=f(a,x)的函数M—文件,f(a,x)为拟合函数。
数学建模 数学实验---插值及案例
四、插值方法及MATLAB求解
插值方法 选用不同类型的插值函数,逼近的效 果就不同,一般有: 拉格朗日插值(lagrange插值) 分段线性插值 Hermite 三次样条插值。
MATLAB实现插值 MATLAB自身提供了如下内部的功能函数:
一维插值函数:interp1()
例 在某海域测得一些点(x,y)处的水深z由下表 给出,船的吃水深度为5英尺,在矩形区域(75,200) ×(-50,150)里的哪些地方船要避免进入.
x y z x y z 129 140 103.5 88 185.5 195 7.5 141.5 23 147 22.5 137.5 4 8 6 8 6 8 157.5 -6.5 9 107.5 -81 9 77 3 8 105 85.5 8
被插值点 的函数值
插值节点 被插值点
插值方法
注:要求x0,y0单调;x, ‘nearest’ 最邻近插值; ‘linear’ 双线性插值; y可取为矩阵,或x取行向 双三次插值; 量,y取为列向量,x,y的 ‘cubic’ 缺省时 双线性插值. 值分别不能超出x0,y0的范 围.
例 用以上4种方法对 z xe 式插值效果进行比较。 t=-2:0.5:2
%作图
练习 已知飞机下轮廓线上数据如下,求x每改变0.1时的y 值.
X Y
0 0
3 1.2
5 1.7
7 2.0
9 2.1
11 2.0
12 1.8ห้องสมุดไป่ตู้
13 1.2
14 1.0
15 1.6
y
机翼下 轮廓线
x
用MATLAB作二维插值计算
数学建模-插值拟合的案例讲解
估计水塔的流量
内容
问题
解题思路
算法设计 与编程
表 1 水位测量记录 (符号//表示水泵启动)
y=0:400:4800;
z=[370 470 550 600 670 690 670 620 580 450 400 300 100 150 250;
510 620 730 800 850 870 850 780 720 650 500 200 300 350 320;
650 760 880 970 1020 1050 1020 830 900 700 300 500 550 480 350;
1600
1250 1450 1500 1200 1200 1550 1500
2000
1280 1420 1500 1100 1100 1600 1550
2400
1230 1400 1400 1350 1550 1550 1510
2800
1040 1300 900 1450 1600 1600 1430
162 117.5]; y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -
33.5]; z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];
cx=75:0.5:200; cy=-70:0.5:150; cz=griddata(x,y,z,cx,cy','cubic');
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章 插值与拟合方法建模在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。
插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。
相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。
§1 数据插值方法及应用在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。
与此有关的一类问题是当原始数据),(,),,(),,(1100n n y x y x y x 精度较高,要求确定一个初等函数)(x P y =(一般用多项式或分段多项式函数)通过已知各数据点(节点),即n i x P y i i ,,1,0,)( ==,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。
1、分段线性插值这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。
如果b x x x a n =<<<= 10那么分段线性插值公式为n i x x x y x x x x y x x x x x P i i i i i i i i i i ,,2,1,,)(11111 =≤<--+--=-----可以证明,当分点足够细时,分段线性插值是收敛的。
其缺点是不能形成一条光滑曲线。
例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。
根据地图的比例,18 mm 相当于40 km 。
根据测量数据,利用MA TLAB 软件对上下边界进行线性多项式插值,分别求出上边界函数)(2x f ,下边界函数)(1x f ,利用求平面图形面积的数值积分方法—将该面积近似分成若干个小长方形,分别求出这些长方形的面积后相加即为该面积的近似解。
i i ni i n x f f S ∆-=∑=∞→)]()([lim 112ξξ式中,],[1i i i x x -∈ξ。
这里线性插值和面积计算源程序如下: clear allx=[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 次多项式m m m m a x a x a x a x P ++++=--1110)(通过所有1+n 个点),(,),,(),,(1100n n y x y x y x ,那么就有n i y a x a x a x a i m i m m im i ,,1,0,1110 ==++++--可以证明当n m =且n x x x <<< 10时,这样的多项式存在且唯一。
若要求得到函数表达式,可直接解上面方程组。
若只要求得函数在插值点处数值,可用下列Lagrange 插值公式)()(,00∏∑≠==--=nij j ji j ni i n x x x x y x P多项式插值光滑但不具有收敛性,一般不宜采用高次多项式(如7>m )插值。
例2、在万能拉拨机中有一个园柱形凸轮,其底园半径R=300mm ,凸轮的上端面不在同一平面上,而要根据动杆位移变化的需要进行设计制造。
按设计要求,将底园周18等分,旋转一周。
第i 个分点对应柱高)18,,2,1,0( =i y i ,数据见下表。
为了数控加工,需要计算出园周上任一点的柱高。
凸轮高度的数据(单位:mm )分点i 0和18 1 2 3 4 5 柱高 502.8 525.0 514.3 451.0 326.5 188.6 分点i 6 7 8 9 10 11 柱高 92.2 59.6 62.2 102.7 147.1 191.6 分点i 12 13 14 15 16 17 柱高236.0280.5324.9369.4413.8458.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]);可见,可以用三次多项式插值,下面给出借助MA TLAB 软件画出的柱高插值曲线图(右上图)。
xi=0:2*pi*300;yi=interp1(x,y,xi,’cubic ’); plot(xi,yi);3、样条插值这是最常用的插值方法。
数学上所说的样条,实质上是指分段多项式的光滑连接。
设有b x x x a n =<<<= 10称分段函数)(x S 为k 次样条函数,若它满足(1) )(x S 在每个小区间上是次数不超过k 次的多项式; (2) )(x S 在],[b a 上具有直到1-k 阶的连续导数。
用样条函数作出的插值称为样条插值。
工程上广泛采用三次样条插值。
例3、某居民区的自来水是由一个园柱形的水塔提供。
水塔高12.2米,直径17.4米。
水塔由水泵根据塔中水位高低自动加水,一般每天水泵工作两次。
按照设计,当水塔内的水位降至约8.2米时,水泵自动启动加水;当水位升至约10.8米时,水泵停止工作。
现在需要了解该居民区用水规律,这可以通过用水率(单位时间的用水量)来反映。
通过间隔一段时间测量水塔中的水位来估算用水率。
下表是某一天的测量记录数据,测量了28个时刻(单位:小时)的水位(单位:米),但由于其中有3个时刻正遇到水泵在向水塔供水,而无水位记录(表中用符号//表示)。
先通过体积公式h d v 24=,利用上表中的水位高h ,得到不同时刻i t 水塔中水的体积i v 。
为提高精度,采用二阶差商来估算i t 时刻的水流速度,即i i v t f 2)(-∇=。
具体地,因为所有数据被水泵两次工作分割成三组数据,对每组数据的中间数据采用中心差商,前后两个数据不能够采用中心差商,改用向前或向后差商。
中心差商公式 )(1288121122i i i i i i i t t v v v v v -+-+-=∇+--++向前差商公式 )(2341122i i ii i i t t v v v v --+-=∇+++向后差商公式 )(2431212----+-=∇i i i i i i t t v v v vt=[0 0.921 1.843 2.949 3.871 4.978 5.9 7.006 7.982 8.967 10.954 12.032 12.954 13.875 14.982 15.903 16.826 17.931 19.037 19.959 20.839 22.958 23.88 24.986 25.908];r=[54.516 42.320 38.085 41.679 33.297 37.814 30.748 38.455 32.122 41.718 73.686 76.434 71.686 60.19 68.333 59.217 52.011 56.626 63.023 54.859 55.439 57.602 57.766 51.891 36.464]; plot(t,r,’b+’); % (t,r)表示时间和流速title(‘流速散点图’);xlabel (’时间(小时)’); ylabel(‘流速(立方米/小时)’)使用MATLAB 软件中的三次样条插值命令得到用水率函数)(t f 如下图所示。
x0=t;y0=r;[l,n]=size (x0); dl=x0(n)-x0(1);x=x0(1):1/3600:x0(n); %被插值点ys=interp1 (x0,y0,x,’spline ’); %样条插值输出 plot (x,ys);title(‘样条插值下的流速图’);xlabel (’时间(小时)’); ylabel(‘流速(立方米/小时)’)。