数学建模~插值与拟合ppt课件.ppt

上传人:小飞机 文档编号:3229122 上传时间:2023-03-11 格式:PPT 页数:66 大小:1.74MB
返回 下载 相关 举报
数学建模~插值与拟合ppt课件.ppt_第1页
第1页 / 共66页
数学建模~插值与拟合ppt课件.ppt_第2页
第2页 / 共66页
数学建模~插值与拟合ppt课件.ppt_第3页
第3页 / 共66页
数学建模~插值与拟合ppt课件.ppt_第4页
第4页 / 共66页
数学建模~插值与拟合ppt课件.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《数学建模~插值与拟合ppt课件.ppt》由会员分享,可在线阅读,更多相关《数学建模~插值与拟合ppt课件.ppt(66页珍藏版)》请在三一办公上搜索。

1、插值与拟合,一、概述,二、基本概念,三、插值与拟合的区别和联系,四、插值的MATLAB实现,五、拟合的Matlab实现,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算法。此类问题在MATLAB中有很多现成的函数可以调用,熟悉MATLAB,这些方法都能游刃有余的用好。,一、概述,数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,例如98年美国赛A题,生物组织切片的三维插值处理,94年A题逢山开路,山体海拔高度的插值计算,2003年吵的沸沸扬扬的“非典”问题也要用到数据拟合算法,观察数据的走向进行处理,2005年的雨

2、量预报的评价的插值计算。2001年的公交车调度拟合问题,2003年的饮酒驾车拟合问题。,插值问题雨量预报的评价,预测点和实测点的图形,插值后的图形,拟合问题饮酒驾车,喝两瓶酒的拟合曲线,喝1-5瓶酒的拟合曲线,在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为插值问题。(不需要函数表达式),二、基本概念,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近似函数的方法称为数据拟

3、合。(必须有函数表达式)近似函数不一定(曲线或曲面)通过所有的数据点。,1、联系都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。2、区别插值问题不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。数据拟合要求得到一个具体的近似函数的表达式。,三、插值与拟合的区别和联系,四、插值的MATLAB实现,当数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法。实际问题当中碰到的函数 f(x)是各种各样的,有的表达式很复杂,有的甚至给不出数学的式子,只提供了一些离散数据,警如,某些点上的函数值和导数值。,4.1 引言,选用不同类型的插值函数,逼近的效果就

4、不同,一般有:(1)拉格朗日插值(lagrange插值)(2)分段线性插值(3)Hermite(4)三次样条插值。,4.2 插值方法,Matlab 实现:实现分段线性插值不需要编制函数程序,它自身提供了内部的功能函数interp1(一维插值)intep2(二维)interp3(三维)intern(n维),4.3 MATLAB实现插值,用MATLAB作插值计算,一维插值函数:,yi=interp1(x,y,xi,method),nearest 最邻近插值;linear 线性插值;spline 三次样条插值;cubic 立方插值;缺省时 分段线性插值,注意:所有的插值方法都要求x是单调的,并且xi

5、不能够超过x的范围,例:从1点12点的11小时内,每隔1小时测量一次温度,测得的温度的数值依次为:5,8,9,15,25,29,31,30,22,25,27,24试估计每隔1/10小时的温度值,hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline);plot(hours,temps,+,h,t,hours,temps,r:)%作图xlabel(Hour),ylabel(Degrees Celsius),例 已知飞机下轮廓线上数据如下,求x每改变0.1时的y值,二维插

6、值的定义,第一种(网格节点):,已知 mn个节点,第二种(散乱节点):,返回,要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围,z=interp2(x0,y0,z0,x,y,method),用MATLAB作网格节点数据的插值,nearest 最邻近插值;linear 双线性插值;cubic 双三次插值;缺省时 双线性插值.,例:测得平板表面35网格点处的温度分别为:82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面的温度分布曲面z=f(x,y)的图形,输入以下命令:x=1:5;y=1:

7、3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps),1.先在三维坐标画出原始数据,画出粗糙的温度分布曲线图.,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)画出插值后的温度分布曲面图.,例 山地高程绘图要在山区修一条公路,首先测得一些地点的高程,数据见表.表中的数据为在平面区域 0 x2000,0y2000 的坐标点上的海拔高程(单位:米

8、)试给出这个平面区域内地形的模型以便选择公路修建的位置。,二维插值利用Matlab插值程序。输入已知信息:(xi,yj,zij)x=0:4:20;%给出X轴的坐标y=0:4:20;%给出Y轴的坐标z=37 51 65 74 83 88;47 62 76 88 98 106;69 87 105 128 142 150;%给出(xi,yj)点的高程 zij:X,Y=meshgrid(0:1:20,0:1:20);%给出加密的插值坐标网格,Z=interp2(x,y,z,X,Y,spline);%在坐标上进行样条插值画图:clf;%清空图形坐标系中的内容mesh(X,Y,Z)%在网格上画出插值的结果

9、hold on%打开在同一坐标系中画图的功能contour(X,Y,Z)%画平面等高线con3=contour3(X,Y,Z)%画三维等高线clabel(con3)%标高程hold off%结束作图,插值函数griddata格式为:,cz=griddata(x,y,z,cx,cy,method),用MATLAB作散点数据的插值计算,要求cx取行向量,cy取为列向量,nearest最邻近插值linear 双线性插值cubic 双三次插值v4-MATLAB提供的插值方法缺省时,双线性插值,例 在某海域测得一些点(x,y)处的水深z由下表给出,船的吃水深度为5英尺,在矩形区域(75,200)(-50

10、,150)里的哪些地方船要避免进入,返回,4.作出水深小于5的海域范围,即z=5的等高线.,2.在矩形区域(75,200)(-50,150)进行插值。,1.输入插值基点数据,3.作海底曲面图,%程序一:插值并作海底曲面图 x=129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5;y=7.5 141.5 23.0 147.0 22.5 137.5 85.5-6.5-81 3.0 56.5-66.5 84.0-33.5;z=4 8 6 8 6 8 8 9 9 8 8 9 4 9;x1=75:

11、1:200;y1=-50:1:150;x1,y1=meshgrid(x1,y1);z1=griddata(x,y,z,x1,y1,v4);meshc(x1,y1,z1),海底曲面图,%程序二:插值并作出水深小于5的海域范围。x1=75:1:200;y1=-50:1:150;x1,y1=meshgrid(x1,y1);z1=griddata(x,y,z,x1,y1,v4);%插值z1(z1=5)=nan;%将水深大于5的置为nan,这样绘图就不会显示出来meshc(x1,y1,z1),水深小于5的海域范围,实验作业1,山区地貌:在某山区测得一些地点的高程如下表:(平面区域1200 x 4000,

12、1200y 3600),试作出该山区的地貌图和等高线图,并对几种插值方法进行比较,对于情况较复杂的实际问题(因素不易化简,作用机理不详)可直接使用数据组建模,寻找简单的因果变量之间的数量关系,从而对未知的情形作预报。这样组建的模型为拟合模型。拟合模型的组建主要是处理好观测数据的误差,使用数学表达式从数量上近似因果变量之间的关系。拟合模型的组建是通过对有关变量的观测数据的观察、分析和选择恰当的数学表达方式得到的。,五、拟合的MATLAB实现,对于已给一批实测数据,由于实测方法、实验环境等一些外界因素的影响,不可避免地会产生随机干扰和误差。我们自然希望根据数据分布的总趋势去剔除观察数据中的偶然误差

13、,这就是所谓的数据修匀(或称数据平滑)问题。,直 线 拟 合 问 题 引 例 1,求60C时的电阻R,设 R=at+ba,b为待定系数,曲 线 拟 合 问 题 引 例 2,求血药浓度随时间的变化规律c(t).,在直角坐标系下作图如下(plot),曲 线 拟 合 问 题 的 提 法,已知一组(二维)数据,即平面上 n个点(xi,yi)i=1,n,寻求一个函数(曲线)y=f(x),使 f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好,y=f(x),i 为点(xi,yi)与曲线 y=f(x)的距离,曲线拟合问题最常用的解法线性最小二乘法的基本思路,第一步:先选定一组函数 r1(x),r2(

14、x),rm(x),mn,令 f(x)=a1r1(x)+a2r2(x)+amrm(x)(1)其中 a1,a2,am 为待定系数,第二步:确定a1,a2,am 的准则(最小二乘准则):使n个点(xi,yi)与曲线 y=f(x)的距离i 的平方和最小,记,问题归结为,求 a1,a2,am 使 J(a1,a2,am)最小,用MATLAB作线性最小二乘拟合,1.作多项式f(x)=a1xm+amx+am+1拟合,可利用已有程序:,a=polyfit(x,y,m),2.多项式在x处的值y可用以下命令计算:y=polyval(a,x),1)输入以下命令:x=0:0.1:1;y=-0.447 1.978 3.2

15、8 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2;A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,k+,x,z,r)%作出数据点和拟合曲线的图形,2)计算结果:=-9.8108 20.1293-0.0317,用多项式拟合的命令,如何预报人口的增长 人口的增长是当前世界上引起普遍关注的问题,并且我们会发现在不同的刊物预报同一时间的人口数字不相同,这显然是由于用了不同的人口模型计算的结果。我国是世界第一人口大国,基本上地球每九个人中就有一个中国人。有效地控制我国人口的增长是使我过全面进入小康社会、到21世纪中叶建成富强民主文明的社会

16、主义国家的需要。而有效控制人口增长的前提是要认识人口数量的变化规律,建立人口模型,作出较准确的预报。,例:如何预报人口的增长,例如:1949年1994年我国人口数据资料如下:年 份xi 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994 人口数yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 建模分析我国人口增长的规律,预报1999年我国人口数。,模型一:假设人口随时间线性地增加,模型:参数估计观测值的模型:拟合的精度:误差平方和。可以算出:a=-283.2320 b=0.1480模型:y=1.93+0.

17、146 x,则可看成是线性方程,用 polyfit命令计算得:,模型二:指数增长模型,可变为,Y,A,=,+,BX,a=2.33,b=0.0179,则所求模型为:,程序如下:x=1949 1954 1959 1964 1969 1974 1979 1984 1989 1994;y=5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8;a=polyfit(x,y,1);x1=1949:10:1994;y1=a(2)+a(1)*x1;b=polyfit(x,log(y),1);y2=exp(b(2)*exp(b(1)*x1);plot(x,y,*)hold on p

18、lot(x1,y1,-r)hold on plot(x1,y2,-k)legend(原曲线,模型一曲线,模型二曲线),结论的比较如下表:年 份 xi 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994 人口数 yi 5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8 模型一值 5.24 5.97 6.70 7.43 8.16 8.90 9.62 10.36 11.09 11.82 误 差 0.16 0.03 0.00-0.43-0.06 0.20 0.18-0.06 0.01-0.02 模型二值 5.55 6.0

19、6 6.62 7.23 7.90 8.64 9.44 10.31 11.26 12.31 误差-0.15-0.06 0.08-0.23 0.20 0.46 0.36-0.01-0.13-0.51,结果分析:(1)Q1=0.2915 0.7437=Q2.线性模型更适合中国人口的增长。(2)预报:1999 年 12.55 亿,13.43 亿,(3)统计年鉴:2005 年 13.3 亿,2010 年 14 亿 模型 I 2005 年13.43 亿,2010 年14.16 亿 模型 II 2005 年14.94 亿,2010 年 16.33 亿,1.lsqcurvefit已知数据点:xdata=(xd

20、ata1,xdata2,xdatan),ydata=(ydata1,ydata2,ydatan),用MATLAB作非线性最小二乘拟合,MATLAB提供了求非线性最小二乘拟合的函数:lsqcurvefit这个命令都要先建立M文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题.,lsqcurvefit用以求含参量x(向量)的向量值函数F(x,xdata)=(F(x,xdata1),F(x,xdatan)T中的参变量x(向量),使得,输入格式为:(1)x=lsqcurvefit(fun,x0,xdata,ydata);(2)x=lsqcurvefit(fun,x0,

21、xdata,ydata,options);(3)x=lsqcurvefit(fun,x0,xdata,ydata,options,grad);(4)x,options=lsqcurvefit(fun,x0,xdata,ydata,);(5)x,options,funval=lsqcurvefit(fun,x0,xdata,ydata,);(6)x,options,funval,Jacob=lsqcurvefit(fun,x0,xdata,ydata,);,说明:x=lsqcurvefit(fun,x0,xdata,ydata,options);,迭代初值,选项见无约束优化,最小二乘拟合:lsq

22、curvefit()例 假设有一组实测数据xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 yi 2.3201 2.647 2.9707 3.2885 3.6008 3.909 4.2147 4.5191 4.8232 5.1275,假设已知该数据可能满足的原型函数为,试求出满足下面数据的最小二乘解的a,b,c,d的值。,先建立原型函数:function y=f1(a,x)y=a(1)*x+a(2)*x.2.*exp(-a(3)*x)+a(4);在命令窗口中输入:x=0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0;y=2.32

23、01 2.647 2.9707 3.2885 3.6008 3.909 4.2147 4.5191 4.8232 5.1275;a=lsqcurvefit(f1,1;2;2;2,x,y),MATLAB解应用问题实例,1、电阻问题,2、给药方案问题,*3、水塔流量估计问题,电阻问题,得到 a1=3.3940,a2=702.4918,一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的。快速静脉注射后,浓度立即上升;然后迅速下降。当浓度太低时,达不到预期的治疗效果;当浓度太高,又可能导致药物中毒或副作用太强。临床上,每种药物有一个最小有效浓度c1和一个最大有效浓度c2。设计给药方案时,

24、要使血药浓度 保持在c1c2之间。本题设c1=10,c2=25(ug/ml).,一种新药用于临床之前,必须设计给药方案.,药物进入机体后血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度。,要设计给药方案,必须知道给药后血药浓度随时间变化的规律。从实验和理论两方面着手:,给药方案,1.在快速静脉注射的给药方式下,研究血药浓度(单位体积血液中的药物含量)的变化律。,t,问题,2.给定药物的最小有效浓度和最大治疗浓度,设计给药方案:每次注射剂量多大;间隔时间多长。,分析,理论:用一室模型研究血药浓度变化规律,实验:对血药

25、浓度数据作拟合,符合负指数变化规律,3.血液容积v,t=0注射剂量d,血药浓度立即为d/v.,2.药物排除速率与血药浓度成正比,比例系数 k(0),模型假设,1.机体看作一个房室,室内血药浓度均匀一室模型,模型建立,在此,d=300mg,t及c(t)在某些点处的值见前表,需经拟合求出参数k、v,用线性最小二乘拟合c(t),计算结果:,用非线性最小二乘拟合c(t),给药方案 设计,设每次注射剂量D,间隔时间,血药浓度c(t)应c1 c(t)c2,初次剂量D0 应加大,给药方案记为:,2、,1、,计算结果:,给药方案:,c1=10,c2=25k=0.2347v=15.02,故可制定给药方案:,即:首次注射375mg,其余每次注射225mg,注射的间隔时间为4小时。,实验作业,完成数学建模竞赛2005年C题(雨量预报的评价),谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号