数学建模案例分析-- 插值与拟合方法建模2数据拟合方法及应用
插值与拟合

且 f(1.5) ≈L1(1.5) = 0.885。
Lagrange插值法的缺点
• 多数情况下,Lagrange插值法效果是不错的, 但随着节点数n的增大,Lagrange多项式的次 (Runge)现象。
• 例:在[-5,5]上用n+1个等距节点作插值多项 式Ln(x),使得它在节点处的值与函数y = 1/(1+25x2)在对应节点的值相等,当n增大时, 插值多项式在区间的中间部分趋于y(x),但 对于满足条件0.728<|x|<1的x, Ln(x)并不趋 于y(x)在对应点的值,而是发生突变,产生 剧烈震荡,即Runge现象。
总结
• 拉格朗日插值:其插值函数在整个区间 上是一个解析表达式;曲线光滑;收敛 性不能保证,用于理论分析,实际意义 不大。
• 分段线性插值和三次样条插值:曲线不 光滑(三次样条已有很大改进);收敛 性有保证;简单实用,应用广泛。
1.2 二维插值
• 二维插值是基于一维插值同样的思想, 但是它是对两个变量的函数Z=f(x,y)进 行插值。
• n=5; • x0=-1:1/(n-1):1;y0=1./(1+25*x0.^2);y1=lagr(x0,y0,x); • subplot(2,2,2), • plot(x,z,'r-',x,y,'m-'),hold on %原曲线 • plot(x,y1,'b'),gtext('L8(x)','FontSize',12),pause %Lagrange曲线
基函数为
l0 (x)
x x1 x0 x1
x2 1 2
2
x
l1(x)
线性插值函数为
Matlab中的插值拟合方法在数据分析中的应用

Matlab中的插值拟合方法在数据分析中的应用数据分析已经成为当今社会的一个重要应用领域。
随着科技的发展,海量的数据被不断地产生和收集,但是如何从这些数据中提取有价值的信息并进行分析成为了一个亟待解决的问题。
在数据分析领域,插值拟合方法是一种常用的技术。
在Matlab中,有丰富的插值拟合函数可以帮助我们处理各种应用场景。
一、插值拟合方法的概念和原理插值拟合方法是基于已知数据点,通过构建一个拟合函数来估计在未知点上的函数值。
基本原理是通过已知数据点之间的关系来推断出未知数据点的值。
常用的插值拟合方法有线性插值、多项式插值、样条插值等。
1. 线性插值线性插值是一种简单而直接的插值方法。
它假设函数在两个相邻数据点之间是线性变化的,并根据两个已知数据点的位置以及函数值来推断未知点的值。
在Matlab中,线性插值可以通过interp1函数实现。
该函数会根据给定的已知数据点和未知点的位置,利用线性插值法计算未知点的值。
2. 多项式插值多项式插值方法是利用一个多项式函数来逼近已知数据点。
这种方法假设函数可以用多项式表示,并且通过已知数据点来确定多项式的系数。
多项式插值方法在Matlab中可以通过polyfit函数实现。
polyfit函数可以根据给定的数据点和多项式的阶数,返回一个多项式的系数向量。
3. 样条插值样条插值是一种更高级的插值方法,它通过利用局部插值多项式来逼近已知数据点。
样条插值在相邻数据点之间构造多项式,并确保这些多项式在数据点处连续、光滑。
Matlab中的spline函数可以实现样条插值方法。
spline函数会根据给定的数据点,生成一个样条插值函数。
二、插值拟合方法的应用插值拟合方法在数据分析中有广泛的应用。
下面将介绍几个常见的应用场景。
1. 数据平滑在实际的数据分析中,数据常常存在噪声和波动。
为了提取数据中的趋势信息,可以利用插值拟合方法对数据进行平滑处理。
通过建立拟合函数,可以将噪声和波动的影响降低,提取出数据中的主要趋势。
插值与拟合模型二

用MATLAB作线性最小二乘拟合
在MATLAB中线性最小二乘拟合就是做多项 式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m)
输入同长度
的数组x,y 拟合多项 式次数
说明:1.a-输出拟合多项式系数a=[a1,a2, …, am+1] 2.多项式在x处的值y可用以下命令计算: y=polyval(a, x)
例:已知热敏电阻 数据: 求60º C时的电阻R. >>t=[20:0.1:100]; >> R=a(1)*t+a(2); >> plot(t,R) %做拟合效果对比图 >> hold on >> plot(x,y, '+')
温度t(º C) 20.5 32.7 51.0 73.0 95.7
电阻R() 765 826 873 942 1032
x(t)
xm xm rt 1 1 e xo
其中:参数x0为人口初始数据,xm为最大人口容量,r为固定 增长率,x(t)为第t年的人口数量。这里x0可以用第一年的统计 数据代替,而另外两个参数需要用曲线拟合的方法进行估计。
x(t)
xm xm rt 1 1 e xo
>>a=lsqcurvefit('f2',[100,1.8],t,y) 作对比效果图: t1= [0:0.1:9]; y1=f2(a,t1); plot(t1,y1) hold on z1=f2(a,t); %求出拟合函数在t年处的人口值 plot(t,y, '+') hold off xlabel('年'), ylabel('人口数')
数学建模案例分析-- 插值与拟合方法建模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 ,利用求平面图形面积的数值积分方法—将该面积近似分成若干个小长方形,分别求出这些长方形的面积后相加即为该面积的近似解。
2021年数学建模插值及拟合详解

插值和拟合欧阳光明(2021.03.07)实验目的:了解数值分析建模的方法,掌握用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.用MATLAB作一维插值计算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 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 用程控铣床加工机翼断面的下轮廓线时每一刀只能沿x方向和y方向走非常小的一步。
表3-1给出了下轮廓线上的部分数据但工艺要求铣床沿x方向每次只能移动0.1单位.这时需求出当x坐标每改变0.1单位时的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 on3.用MATLAB作网格节点数据的插值(二维)z=interp2(x0,y0,z0,x,y,’method’)注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:双线性插值;‘cubic’:双三次插值;缺省时:双线性插值)。
数学建模实验报告2 插值与拟合

淮阴工学学院数理学院数学建模与实验课程实验报告实验名称二、插值与拟合实验地点26#114 日期2014-10-14姓名班级学号成绩通过实例学习如何用插值和拟合方法解决实际问题,从而提高探索和解决问题的能力。
通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。
【实验内容】A组题1、有1个不规则的钢管经过测量经过如下坐标点,该钢管的线密度为7.85g/cm。
求该钢管质量。
X(cm) 0 1 2 3 4 5 6 7 8 9Y(cm) 1 -1.97 -8.79 -18.08 -27.56 -32.27 -29.41 -16.86+m 4+m 45+m其中m为你的学号后两位乘以0.1.2、下表给出我国人口从1995年到2004年的人口总数(单位:万人),我们考虑用Logistic 模型预测我国人口2030年总量。
表1 1995年到2004年的我国人口总数(单位:万人)请拟合出Malthus人口模型和Logistic人口模型中的参量,并且分别用这两个型预测2005年到2010年我国人口总量,并且与真实值比较,填写下表2:相对误差 = | 预测值 - 真实值 |/真实值(即绝对误差所占真实值的百分比)B组血管的三维重建假设某些血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。
例如圆柱就是这样一种管道,其中轴线为直线,由半径固定的球滚动包络形成。
现有某管道的相继100张平行切片图象,记录了管道与切片的交。
图象文件名依次为0.bmp、1.bmp、…、99.bmp,格式均为BMP,宽、高均为512个象素(pixel)。
为简化起见,假设:管道中轴线与每张切片有且只有一个交点;球半径固定;切片间距以及图象象素的尺寸均为1。
运用计算机可重建组织、器官等准确的三维形态。
插值法和拟合实验报告(数值计算)

插值法和拟合实验报告一、实验目的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=,可由下列数据拟合得到:(非线性拟合)。
lesson9插值与数据拟合建模(2)

(2)三次样条函数的定义
设[a,b] 的一个划分:a=x0<x1, x2 , ..., xn= b, 函数f ( x )各节点的值分别为:
f ( xi )=yi (i=1,2,...,n) 如果三次样条函数:
3
满足: S ( xi )=yi (i=1,2,...,n)
B:弹性细梁受集中载荷作用形成的挠度曲 线,在小挠度的情况下,恰好表示为三 次样条函数,集中载荷的作用点,恰好 就是三次样条函数的节点。
(1)二次样条的定义
设[a,b] 的一个划分:a=x0<x1, x2 , ..., xn= b, 函数f ( x )各节点的值分别为:
f ( xi )=yi (i=1,2,...,n) 如果二次样条函数:
8、检验
以不同的时间为起点得到的一天总用水量相差多少
一个物理定理
由托里查里(Torricelli)定律知,从水箱中 流出水的最大速度与水位高的平方成正比.对 于所给的数据,其水位的最大高度为35.5E, 最小高度为27E,因此对两个高度的最大流速 比为 35.5 / 27 ,这个数字已很接近l,所以 可以假定水位对流速没有影响.类似地,还假 设大气情况、温
长度单位:E(=30.24cm) 容积单位:G(=3.785L(升))
某些镇的用水管理机构需估计公众的用水速度(单 位是G/h)和每天总用水量的数据.许多地方没有测量 流入或流出水箱流量的设备,而只能测量水箱中的水 位(误差不超过5%).当水箱水位低于某最低水位L时, 水泵抽水,灌入水箱,直至水位达到最高水位H为止。 但这也无法测量水泵的流量,因此在水泵启动时不易 建立水箱中水位和水泵工作时用水量之间关系。水泵 一天灌水1~2次,每次约2h。试估计在任意时刻(包括 水泵灌水期间)t流出水箱的流量f(t),并估计一天的总 用水量。
数学建模 插值与拟合

%作图
2020/8/19
例 已知飞机下轮廓线上数据如下,Байду номын сангаасx每改变0.1时的y值。
X0 3
5
7
9 11 12 13 14 15
Y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6
机翼下轮 廓线
y
x
自己思考,10分钟小组讨论!
2020/8/19
二维插值
(1)二维插值的定义
用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
被插值点 插值方法
‘nearest’ 最邻近插值 ‘linear’ 双线性插 值 ‘cubic’ 双三次插 值 要求x0,y0单调;x,y可取为缺矩省阵时,, 或x取双行线向性量插,值y 取为列向量,x,y的值分别不能超出x0,y0的范围。
一、函数插值 二、曲线拟合
一维插值 二维插值
2020/8/19
在工程中,常有这样的问题:给定 一批数据点(它可以是设计师给定,也 可能是从测量与采样中得到),需确定 满足特定要求的曲线(面)通过所给所 有数据点,这就是插值问题。
2020/8/19
一维插值
(1)插值的定义 (2)插值的方法
拉格朗日插值 分段线性插值 三次样条插值
x x2 x0 x2
y0
x x1
x0 x0
x x2 x1 x2
y1
x x2
x0 x0
x x1 x2 x1
y2
直接验证可知,Ln x满足插值条件.
Notice:拉格朗日多项式插值次数越高,越易产生振荡,这 种振荡称为龙格(Runge)现象 。
(数学建模课件)第八部分插值与拟合

例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)为拟合函数。
数学建模-插值拟合的案例讲解

估计水塔的流量
内容
问题
解题思路
算法设计 与编程
表 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');
数学建模~插值与拟合

海底曲面图
%程序二:插值并作出水深小于5的海域范围。
x1=75:1:200;
y1=-50:1:150;
[x1,y1]=meshgrid(x1,y1);
z1=griddata(x,y,z,x1,y1,'v4'); %插值
四、插值的使用及求解
4.1 引言 当数据量不够,需要补充,且认定已有数 据可信时, 通常利用函数) 是各种各 样的,有的表达式很复杂,有的甚至给不出数 学的式子,只提供了一些离散数据,警如,某 些点上的函数值和导数值。
4.2 插值方法 选用不同类型的插值函数,逼近的效 果就不同,一般有: (1)拉格朗日插值(lagrange插值) (2)分段线性插值 (3)Hermite (4)三次样条插值。
2.以平滑数据,在 x、y方向上每隔0.2个单位的地方进行插值.
再输入以下命令:
xi=1:0.2:5; yi=1:0.2:3;
zi=interp2(x,y,temps,xi',yi,'cubic');
mesh(xi,yi,zi) 画出插值后的温度分布曲面图.
例 山区地貌:
在某山区测得一些地点的高程如下表。平面区域为 1200<=x<=4000,1200<=y<=3600) 试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。
X Y 1200 1600 2000 2400 2800 3200 3600 1200 1130 1320 1390 1500 1500 1500 1480 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 3200 900 700 1100 1200 1550 1600 1300 3600 500 900 1060 1150 1380 1600 1200 4000 700 850 950 1010 1070 1550 980
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§2数据拟合方法及应用
在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。
与此有关的另一类问题是拟合问题。
当原始数据),(,),,(),,(1100n n y x y x y x 有误差时,我们确定的初等函数)(x P y =并不要求经过数据点,而是要求在某种距离意义下的误差达到最小(通常考虑使各数据点误差平方和最小)。
假设已知函数),(x c f y =(这里c 可以是多个未知参数)的一批有误差的数据
)
,(,),,(),,(2211n n y x y x y x 要求据此确定参数c ,这样的问题称为数据拟合。
最小二乘法就是求c 使得残差平方和
2
1
)),(()(i n
i i x c f y c Q -=∑=达到最小。
这里的建模原理实质上就是数理统计中的回归分析。
1、线性函数(1)建立回归方程
若离散样点),(,),,(),,(2211n n y x y x y x 集中在一条直线的附近,这时可建立线性回归方程
x b a y
ˆˆˆ+=按最小二乘法得到的具体算法是
记
∑∑∑∑∑=====-=-=-===n
i i i xy n
i i yy n
i i xx n
i i
n
i i
y
x n y x S y
n y S x
n x S y y x x 1
1
2
21
2
21
1
11则有
xx xy S S b
=ˆx b y a
ˆˆ-=(2)线性回归的显著性检验
采用如下检验统计量:
xx S b T σ
ˆˆ=
,其中的)ˆ(2
1ˆ2xx
yy S b S n --=σ
若)2(2
->n t T α,则认为所建立的线性回归方程正确。
(3)利用回归方程作区间预测
当0x x =时,y 的置信度为α-1的预测区间是:
)
)(11ˆ)2(ˆˆ,)(11ˆ)2(ˆˆ(2
02
02020xx xx S x x n n t x b a S x x n n t x b a -++∙-++-++∙--+σσαα例1、为研究某一化学反应过程中温度x 对产品得率y 的影响,测得数据如下。
x (℃)100110120130140150160170180190y
(%)
45
51
54
61
66
7074
78
85
89
要求拟合出它们的函数关系。
x=[100110120130140150160170180190];
y=[45515461667074788589];close;plot(x,y,’o’);
由于这些点落在一条直线附近,可以用线性函数bx a y +=来拟合,按上面算法通过命令p=polyfit(x,y,1)
求出x y 483.0735.2+-=。
2、可线性化的函数
根据专业知识或离散样点的形状,有时可选择适当的非线性函数来拟合。
为确定其中的未知参数,可通过变量转换,把非线性函数转换成线性函数,然后借助线性函数的方法来实现数据拟合。
诸如下面所列的曲线函数都能做到线性化:(1)
x
b a y +=1(2)b
ax
y =(3)x
b a y ln +=(4)bx
ae
y =(5)b ae
y =(6)x
be a y -+=
1以x
b
ae y =为例,我们只要作变换y Y x
X ln ,1
==
,就可化为线性函数bX a Y +=ln 。
例2、电容器充电后,电压达到100伏,然后开始放电,测得时刻i t (秒)时电压i u (伏)如下表。
t 012345678910u
100
75
55
40
30
20
15
10
10
5
5
要求拟合电压u 与放电时间t 的函数关系。
t=[012345678910];
u=[100755540302015101055];close;plot(t,u,’o’)
由于这些点落在曲线)0(,<=b ae u bt
附近,可通过变量转换u U t T ln ,==,化成线性函数
bT a U +=ln 。
按上面算法通过如下命令来实现:
T=t;U=log(u);p=polyfit(T,U,1)b=p(1)
a=exp(p(2))
求出078.100,3126.0=-=a b ,这样所拟合的函数t
e
u 3126.078.100-=3、多项式函数
若离散样点的形状表明既不能用线性函数来拟合,又不能用可以线性化的函数来拟合的话,从理论上讲,用一个多项式函数来拟合总是可行的。
在实际应用中,最常用的是二次和三次多项式函数。
下面通过一个例子来说明。
例3、某种产品在生产过程中的废品率y 与它所含的某种物质量x 有关,现将试验所得16组数据记录列于下表。
x 3436373839393940y 1.30 1.000.730.900.810.700.600.50x 4041424343454748y
0.44
0.56
0.30
0.42
0.35
0.40
0.41
0.60
要求拟合y 与x 的函数关系。
x=[34363738393939404041424343454748];
y=[1.301.000.730.900.810.700.600.500.440.560.300.420.350.400.410.60];close;plot(x,y,’o’)
这些离散样点落在开口向上的二次抛物线2
cx bx a y ++=附近,按最小二乘法,使残差平方和
2
1
2
)(i n
i i i y cx bx a S -++=∑=达到最小。
分别对S 求关于a,b,c 的偏导数,并令其为0,得到如下方程组
⎪⎪⎪⎩
⎪⎪⎪
⎨⎧=++=++=++∑∑∑∑∑∑∑∑∑∑∑===========i n
i i n i i n i i n i i i
n i i n i i n i i n i i n
i i
n i i n i i y x c x b x a x y x c x b x a x y c x b x na 1214131
2113
121
1
12
1)()()()()()()()(将以上表中数据代入方程组求出2
0093.08205.04840.18x x y +-=。
下面是用MATLAB 具体实现:
p=polyfit(x,y,2)
xi=linspace(34,48,1000);%绘图的X 轴数据z=polyval(p,xi);%得到多项式在数据点处的值close;
plot(x,y,’ko’,xi,z,’r-’)
若多项式次数太高,则会影响到拟合的精度,这时可考虑用分段多项式拟合。