数学建模讲座之八数学建模中的数据处理方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数学建模讲座之八数学建模中的数据处理方法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 讲座 中的 数据处理 方法 课件
- 资源描述:
-
1、数学建模中的数据处理方法范筑军2022-11-11主要内容曲线插值与拟合数值微分与积分微分方程数值解优化问题回归分析判别分析2022-11-11曲线插值与拟合一维插值一维插值二维插值二维插值曲线拟合曲线拟合2022-11-11一维插值对表格给出的函数,求出没有给出的函数值。对表格给出的函数,求出没有给出的函数值。在实际工作中,经常会遇到插值问题。下表是待加工零件下轮廓线的一组数据,现需要得到x坐标每改变0.1时所对应的y的坐标.2022-11-11一维插值下面是关于插值的两条命令(专门用来解决这类问题):y=interp1(x0,y0,x,method)分段线性插值y=spline(x0,y0
2、,x)三次样条插值x0,y0是已知的节点坐标,是同维向量。y对应于x处的插值。y与x是同维向量。method可选nearest(最近邻插值),linear(线性插值),spline(三次样条插值),cubic(三次多项式插值)2022-11-11一维插值解决上述问题,我们可分两步:用原始数据绘图作为选用插值方法的参考.确定插值方法进行插值计算2022-11-11一维插值(px_lc11.m)(px_lc11.m)对于上述问题,可键入以下的命令: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.6plot(x0,
3、y0)%完成第一步工作x=0:0.1:15;y=interp1(x0,y0,x);%用分段线性插值完成第二步工作plot(x,y)y=spline(x0,y0,x);plot(x,y)%用三次样条插值完成第二步工作2022-11-11练习1.对y=1/(1+x2),-5x5,用n(=11)个节点(等分)作上述两种插值,用m(=21)个插值点(等分)作图,比较结果。(see:px_ex_lc1.m)2.在某处测得海洋不同深度处水温如下表:求深度为500、1000、1500米处的水温。(see:px_ex_lc2.m)2022-11-11二维插值MATLAB中二维插值的命令是:z=interp2(
4、x0,y0,z0,x,y,meth)2022-11-11二维插值在一个长为5个单位,宽为3个单位的金属薄片上测得15个点的温度值,试求出此薄片的温度分布,并绘出等温线图。(数据如下表)2022-11-11二维插值(px_lc21.m)(px_lc21.m)temps=82,81,80,82,84;79,63,61,65,87;84,84,82,85,86;mesh(temps)%根据原始数据绘出温度分布图,可看到此图的粗造度。2022-11-11二维插值%下面开始进行二维函数的三阶插值。width=1:5;depth=1:3;di=1:0.2:3;wi=1:0.2:5;WI,DI=meshgr
5、id(wi,di);%增加了节点数目 ZI=interp2(width,depth,temps,WI,DI,cubic);%对数据(width,depth,temps)进%行三阶插值拟合。surfc(WI,DI,ZI)contour(WI,DI,ZI)2022-11-11二维插值2022-11-11曲线拟合假设一函数假设一函数g(x)g(x)是以表格形式给出的,现是以表格形式给出的,现要求一函数要求一函数f(x)f(x),使,使f(x)f(x)在某一准则下与在某一准则下与表格函数(数据)最为接近表格函数(数据)最为接近。由于与插值的提法不同,所以在数学上理论根据不同,解决问题的方法也不同。此处
6、,我们总假设f(x)f(x)是多项式。2022-11-11曲线拟合问题:弹簧在力F的作用下伸长x厘米。F和x在一定的范围内服从虎克定律。试根据下列数据确定弹性系数k,并给出不服从虎克定律时的近似公式。2022-11-11曲线拟合解题思路:可以用一阶多项式拟合求出k,以及近似公式。在MATLAB中,用以下命令拟合多项式。polyfit(x0,y0,n)一般,也需先观察原始数据的图像,然后再确定拟和成什么曲线。2022-11-11曲线拟合(px_lc31.m)(px_lc31.m)对于上述问题,可键入以下的命令:x=1,2,4,7,9,12,13,15,17;F=1.5,3.9,6.6,11.7,
7、15.6,18.8,19.6,20.6,21.1;plot(x,F,.)从图像上我们发现:前5个数据应与直线拟合,后5个数据应与二次曲线拟合。于是键入:a=polyfit(x(1:5),F(1:5),1);a=polyfit(x(5:9),F(5:9),2)2022-11-11曲线拟合注意:有时,面对一个实际问题,究竟是用插值还是用拟合不好确定,还需大家在实际中仔细区分。同时,大家(包括学过计算方法的同学)注意去掌握相应的理论知识。2022-11-11数值微分与积分数值积分数值积分数值微分数值微分2022-11-11数值积分先看一个例子:现要根据瑞士地图计算其国土面积。于是对地图作如下的测量:
8、以西东方向为横轴,以南北方向为纵轴。(选适当的点为原点)将国土最西到最东边界在x轴上的区间划取足够多的分点xi,在每个分点处可测出南北边界点的对应坐标y1,y2。用这样的方法得到下表根据地图比例知18mm相当于40km,试由上表计算瑞士国土的近似面积。(精确值为41288km2)。2022-11-11数值积分2022-11-11数值积分解题思路:数据实际上表示了两条曲线,实际上我们要求由两曲线所围成的图形的面积。解此问题的方法是数值积分的方法。具体解时我们遇到两个问题:1。数据如何输入;2。没有现成的命令可用。2022-11-11数值积分(px_wj11.m)(px_wj11.m)对于第一个问
9、题,我们可把数据拷贝成M文件(或纯文本文件)。然后,利用数据绘制平面图形。键入load mianji.txtA=mianji;plot(A(:,1),A(:,2),r,A(:,1),A(:,3),g)2022-11-11数值积分2022-11-11数值积分接下来可以计算面积。键入:a1=trapz(A(:,1)*40/18,A(:,2)*40/18);a2=trapz(A(:,1)*40/18,A(:,3)*40/18);d=a2-a1d=4.2414e+0042022-11-11数值积分至此,问题可以说得到了解决。之所以说还有问题,是我们觉得误差较大。但计算方法的理论给了我们更精确计算方法。
10、只是MATLAB没有相应的命令。想得到更理想的结果,我们可以自己设计解决问题的方法。(可以编写辛普森数值计算公式的程序,或用拟合的方法求出被积函数,再利用MATLAB的命令quad,quad8)2022-11-11数值微分已知20世纪美国人口统计数据如下,根据数据计算人口增长率。(其实还可以对于后十年人口进行预测)2022-11-11数值微分解题思路:设人口是时间的函数x(t).于是人口的增长率就是x(t)对t的导数.如果计算出人口的相关变化率 。那么人口增长满足 ,它在初始条件x(0)=x0下的解为 .(用以检查计算结果的正确性)xxtr)(2022-11-11数值微分解:此问题的特点是以离
11、散变量给出函数x(t),所以就要用差分来表示函数x(t)的导数.常用后一个公式。(因为,它实际上是用二次插值函数来代替曲线x(t))即常用三点公式来代替函数在各分点的导数值:2022-11-11数值微分MATLAB用命令diff按两点公式计算差分;此题自编程序用三点公式计算相关变化率.编程如下(diff3.m):for i=1:length(x)if i=1 r(1)=(-3*x(1)+4*x(1+1)-x(1+2)/(20*x(1);elseif i=length(x)r(i)=(x(i+1)-x(i-1)/(20*x(i);else r(length(x)=(x(length(x)-2)-
12、4*x(length(x)-1)+3*x(length(x)/(20*x(length(x);endendr=r;2022-11-11数值微分保存为diff3.m文件听候调用.再在命令窗内键入X=1900,1910,1920,1930,1940,1950,1960,1970,1980,1990;x=76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4;diff3;由于r以离散数据给出,所以要用数值积分计算.键入x(1,1)*exp(trapz(X(1,1:9),r(1:9)数值积分命令:trapz(x),trapz(x,y),qua
13、d(fun,a,b)等.2022-11-11微分方程数值解(单摆问题)单摆问题的数学模型是在初始角度不大时,问题可以得到很好地解决,但如果初始角较大,此方程无法求出解析解.现问题是当初始角为100和300时,求出其解,画出解的图形进行比较。2022-11-11微分方程数值解(单摆问题)解:若0较小,则原方程可用 来近似.其解析解为(t)=0cost,.若不用线性方程来近似,那么有两个模型:2022-11-11微分方程数值解(单摆问题)取g=9.8,l=25,100=0.1745,300=0.5236.用MATLAB求这两个模型的数值解,先要作如下的处理:令x1=,x2=,则模型变为2022-1
14、1-11微分方程数值解(单摆问题)再编函数文件(danbai.m)function xdot=danbai(t,x)xdot=zeros(2,1);xdot(1)=x(2);xdot(2)=-9.8/25*sin(x(1);2022-11-11微分方程数值解(单摆问题)在命令窗口键入()t,x=ode45(danbai,0:0.1:20,0.1745,0);t,y=ode45(danbai,0:0.1:20,0.5236,0);plot(t,x(:,1),r,t,y(:,1),k);2022-11-11优化问题线性规划有约束极小问题线性规划有约束极小问题非线性规划有约束极小问题非线性规划有约束
15、极小问题非线性无约束极小问题非线性无约束极小问题非线性最小二乘问题非线性最小二乘问题二次规划二次规划2022-11-11线性规划有约束极小问题模型模型用命令x,fval=linprog(f,A,b,A1,b1,lb,ub)2022-11-11线性规划有约束极小问题Find x x that minimizes f(x x)=-5x1-4x2-6x3subject tox1-x2+x3203x1+2x2+4x3423x1+2x2300 x1,0 x2,0 x32022-11-11线性规划有约束极小问题2022-11-11线性规划有约束极小问题解问题把问题极小化并将约束标准化2022-11-11线
展开阅读全文