《数学建模中的数据处理方法市公开课一等奖百校联赛特等奖课件.pptx》由会员分享,可在线阅读,更多相关《数学建模中的数据处理方法市公开课一等奖百校联赛特等奖课件.pptx(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数学建模中数据处理方法范筑军第1页主要内容曲线插值与拟合数值微分与积分微分方程数值解优化问题回归分析判别分析第2页曲线插值与拟合一维插值一维插值二维插值二维插值曲线拟合曲线拟合第3页一维插值对表格给出函数,求出没有给出函数值。对表格给出函数,求出没有给出函数值。在实际工作中,经常会碰到插值问题。下表是待加工零件下轮廓线一组数据,现需要得到x坐标每改变0.1时所对应y坐标.第4页一维插值下面是关于插值两条命令(专门用来处理这类问题):y=interp1(x0,y0,x,method)分段线性插值y=spline(x0,y0,x)三次样条插值x0,y0是已知节点坐标,是同维向量。y对应于x处插值。
2、y与x是同维向量。method可选nearest(最近邻插值),linear(线性插值),spline(三次样条插值),cubic(三次多项式插值)第5页一维插值处理上述问题,我们可分两步:用原始数据绘图作为选取插值方法参考.确定插值方法进行插值计算第6页一维插值(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,y0)%完成第一步工作x=0:0.1:15;y=interp1(x0,y0,x);%用分段线性插值完成第二步工作plot(x,y)y
3、=spline(x0,y0,x);plot(x,y)%用三次样条插值完成第二步工作第7页练习1.对y=1/(1+x2),-5x5,用n(=11)个节点(等分)作上述两种插值,用m(=21)个插值点(等分)作图,比较结果。(see:px_ex_lc1.m)2.在某处测得海洋不一样深度处水温以下表:求深度为500、1000、1500米处水温。(see:px_ex_lc2.m)第8页二维插值MATLAB中二维插值命令是:z=interp2(x0,y0,z0,x,y,meth)第9页二维插值在一个长为5个单位,宽为3个单位金属薄片上测得15个点温度值,试求出此薄片温度分布,并绘出等温线图。(数据以下表
4、)第10页二维插值(px_lc21.m)temps=82,81,80,82,84;79,63,61,65,87;84,84,82,85,86;mesh(temps)%依据原始数据绘出温度分布图,可看到此图粗造度。第11页二维插值%下面开始进行二维函数三阶插值。width=1:5;depth=1:3;di=1:0.2:3;wi=1:0.2:5;WI,DI=meshgrid(wi,di);%增加了节点数目 ZI=interp2(width,depth,temps,WI,DI,cubic);%对数据(width,depth,temps)进%行三阶插值拟合。surfc(WI,DI,ZI)contour
5、(WI,DI,ZI)第12页二维插值第13页曲线拟合假设一函数假设一函数g(x)g(x)是以表格形式给出,现要求是以表格形式给出,现要求一函数一函数f(x)f(x),使,使f(x)f(x)在某一准则下与表格函数在某一准则下与表格函数(数据)最为靠近(数据)最为靠近。因为与插值提法不一样,所以在数学上理论依据不一样,处理问题方法也不一样。此处,我们总假设f(x)f(x)是多项式。第14页曲线拟合问题:弹簧在力F作用下伸长x厘米。F和x在一定范围内服从虎克定律。试依据以下数据确定弹性系数k,并给出不服从虎克定律时近似公式。第15页曲线拟合解题思绪:能够用一阶多项式拟合求出k,以及近似公式。在MAT
6、LAB中,用以下命令拟合多项式。polyfit(x0,y0,n)普通,也需先观察原始数据图像,然后再确定拟和成什么曲线。第16页曲线拟合(px_lc31.m)对于上述问题,可键入以下命令:x=1,2,4,7,9,12,13,15,17;F=1.5,3.9,6.6,11.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)第17页曲线拟合注意:有时,面对一个实际问题,终究是用插值还是用拟合
7、不好确定,还需大家在实际中仔细区分。同时,大家(包含学过计算方法同学)注意去掌握对应理论知识。第18页数值微分与积分数值积分数值积分数值微分数值微分第19页数值积分先看一个例子:现要依据瑞士地图计算其国土面积。于是对地图作以下测量:以西东方向为横轴,以南北方向为纵轴。(选适当点为原点)将国土最西到最东边界在x轴上区间划取足够多分点xi,在每个分点处可测出南北边界点对应坐标y1,y2。用这么方法得到下表依据地图百分比知18mm相当于40km,试由上表计算瑞士国土近似面积。(准确值为41288km2)。第20页数值积分第21页数值积分解题思绪:数据实际上表示了两条曲线,实际上我们要求由两曲线所围成
8、图形面积。解此问题方法是数值积分方法。详细解时我们碰到两个问题:1。数据怎样输入;2。没有现成命令可用。第22页数值积分(px_wj11.m)对于第一个问题,我们可把数据拷贝成M文件(或纯文本文件)。然后,利用数据绘制平面图形。键入load mianji.txtA=mianji;plot(A(:,1),A(:,2),r,A(:,1),A(:,3),g)第23页数值积分第24页数值积分接下来能够计算面积。键入: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+004第2
9、5页数值积分至此,问题能够说得到了处理。之所以说还有问题,是我们以为误差较大。但计算方法理论给了我们更准确计算方法。只是MATLAB没有对应命令。想得到更理想结果,我们能够自己设计处理问题方法。(能够编写辛普森数值计算公式程序,或用拟合方法求出被积函数,再利用MATLAB命令quad,quad8)第26页数值微分已知20世纪美国人口统计数据以下,依据数据计算人口增加率。(其实还能够对于后十年人口进行预测)第27页数值微分解题思绪:设人口是时间函数x(t).于是人口增加率就是x(t)对t导数.假如计算出人口相关改变率 。那么人口增加满足 ,它在初始条件x(0)=x0下解为 .(用以检验计算结果正
10、确性)第28页数值微分解:此问题特点是以离散变量给出函数x(t),所以就要用差分来表示函数x(t)导数.惯用后一个公式。(因为,它实际上是用二次插值函数来代替曲线x(t))即惯用三点公式来代替函数在各分点导数值:第29页数值微分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(
11、length(x)-2)-4*x(length(x)-1)+3*x(length(x)/(20*x(length(x);endendr=r;第30页数值微分保留为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
12、,y),quad(fun,a,b)等.第31页微分方程数值解(单摆问题)单摆问题数学模型是在初始角度不大时,问题能够得到很好地处理,但假如初始角较大,此方程无法求出解析解.现问题是当初始角为100和300时,求出其解,画出解图形进行比较。第32页微分方程数值解(单摆问题)解:若0较小,则原方程可用 来近似.其解析解为(t)=0cost,.若不用线性方程来近似,那么有两个模型:第33页微分方程数值解(单摆问题)取g=9.8,l=25,100=0.1745,300=0.5236.用MATLAB求这两个模型数值解,先要作以下处理:令x1=,x2=,则模型变为第34页微分方程数值解(单摆问题)再编函数
13、文件(danbai.m)function xdot=danbai(t,x)xdot=zeros(2,1);xdot(1)=x(2);xdot(2)=-9.8/25*sin(x(1);第35页微分方程数值解(单摆问题)在命令窗口键入()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);第36页优化问题线性规划有约束极小问题线性规划有约束极小问题非线性规划有约束极小问题非线性规划有约束极小问题非线性无约束极小问题非线性无约束极小问题非线性最小二乘问题
14、非线性最小二乘问题二次规划二次规划第37页线性规划有约束极小问题模型模型 用命令x,fval=linprog(f,A,b,A1,b1,lb,ub)第38页线性规划有约束极小问题Find x x that minimizes f(x x)=-5x1-4x2-6x3subject tox1-x2+x3203x1+2x2+4x3423x1+2x2300 x1,0 x2,0 x3第39页线性规划有约束极小问题第40页线性规划有约束极小问题解问题把问题极小化并将约束标准化第41页线性规划有约束极小问题键入c=-2,-3,5;a=-2,5,-1;b=-10;a1=1,1,1;b1=7;LB=0,0,0;x
15、,y=linprog(c,a,b,a1,b1,LB)得当X=(6.4286,0.5714,0.0000)时,z=-14.5714最大.第42页线性规划有约束极小问题解问题第43页线性规划有约束极小问题解:键入c=-2,-1,1;a=1,4,-1;2,-2,1;b=4;12;a1=1,1,2;b1=6;lb=0;0;-inf;ub=inf;inf;5;x,z=linprog(c,a,b,a1,b1,lb,ub)得当X=(4.6667,0.0000,0.6667)时,z=-8.6667最小.第44页非线性规划有约束极小问题模型模型:MATLAB求解此问题命令是:x,fval,exitflag,ou
16、tput,lambda,grad,hessian=fmincon(fun,x0,A,b,A1,b1,LB,UB,nonlcon,options,p1,p2,)fun是目标函数m_文件名.nonlcon是约束函数C(x)和C1(x)m_文件名.文件输出为C,C1.第45页非线性规划有约束极小问题求解最优化问题第46页非线性规划有约束极小问题第1步:建立目标函数和非线性约束m_文件.function y=e1511(x)%目标函数m_文件y=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);function c1,c2=e1511b(x)%非线性约束m
17、_文件c1=1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;c2=0;第47页非线性规划有约束极小问题第2步:运行程序.键入x0=-1,1;a1=1,1;b1=0;x,f,exitflab,output=fmincon(e1511,x0,a1,b1,e1511b)得结果.输出结果意义:经过4次迭代(iterations:4)收敛到了(exitfag=1)最优解x(1)=-1.2247,x(2)=1.2247,目标函数最优值为1.8951.第48页非线性无约束极小问题用命令x=fmin(f,x0)。或用命令x=fminu(f,x0),或用命令x=fmins(f,x0)
18、。第49页非线性最小二乘问题用命令x=leastsq(f,x0),或用命令x=curvefit(f,x0)。第50页二次规划用命令x=qp(H,c,A,b)。关于这些命令详细使用规则和例子,用借助help进行查阅。第51页回归分析前面我们曾学过拟合。但从统计观点看,对拟合问题还需作回归分析。比如:有描述问题甲和问题乙两组数据(x,y)和(x,z)。设x=1,2,3,4;y=1.0,1.3,1.5,2.02.3;z=0.6,1.95,0.9,2.85,1.8。假如在平面上画出散点图,那么问题甲四个点基本在一条直线上而问题乙四个点却很散乱。假如都用命令polyfit(x,y,1),polyfit(
19、x,z,1)来拟合,将得到同一条直线。第52页回归分析自然对问题甲信任程度会高于对问题乙信任程度。所以有必要对所得结果作科学评价分析。回归分析就是处理这种问题科学方法。下面结合三个详细例子介绍MATLAB实现回归分析命令。第53页回归分析合金强度y与其中含碳量x有亲密关系,以下表依据此表建立y(x)。并对结果作可信度进行检验、判断x对y影响是否显著、检验数据中有没有异常点、由x取值对y作出预测。第54页回归分析解:在x-y平面上画散点图,直观地知道y与x大致为线性关系。用命令polyfit(x,y,1)可得y=140.6194x+27.0269。作回归分析用命令b,bint,r,rint,st
20、sts=regress(y,x,alpha)可用help查阅此命令详细使用方法残差及置信区间能够用rcoplot(r,rint)画图第55页回归分析设回归模型为 y=0+1x,在MATLAB命令窗口中键入以下命令进行回归分析(px_reg11.m)x=0.1:0.01:0.18;x=x,0.2,0.21,0.23;y=42,41.5,45,45.5,45,47.5,49,55,50,55,55.5,60.5;X=ones(12,1),x;b,bint,r,rint,stats=regress(y,X,0.05);b,bint,stats,rcoplot(r,rint)第56页回归分析得结果和图
21、b=27.0269 140.6194bint=22.3226 31.7313 111.7842 169.4546stats=0.9219 118.0670 0.0000 3.1095第57页回归分析结果含义为0=27.0269 1=140.61940置信区间是 22.3226,31.73131置信区间是 111.7842,169.4546第58页回归分析R2=0.9219 F=118.0670,p10-4.R是衡量y与x相关程度指标,称为相关系数。R越大,x与y关系越亲密。通常R大于0.9才认为相关关系成立。F是一统计指标p是与F对应概率,当 p0.05时,回归模型成立。此例中 p=0 10-
22、40.05,所以,所得回归模型成立。第59页回归分析观察所得残差分布图,看到第8个数据残差置信区间不含零点,此点视为异常点,剔除后重新计算。第60页回归分析此时键入:(px_reg12.m)X(8,:)=;y(8)=;b,bint,r,rint,stats=regress(y,X);b,bint,stats,rcoplot(r,rint)第61页回归分析b=27.0992 137.8085bint=23.8563 30.3421 117.8534 157.7636stats=0.9644 244.0571 0.0000 1.4332能够看到:置信区间缩小;R2、F变大,所以应采取修改后结果。第
23、62页回归分析将17至19岁运动员每两岁一组分为7组,每组两人测量其旋转定向能力,以考查年纪(x)对这种运动能力(y)影响。现得到一组数据以下表试建立关系y(x),并作必要统计分析。第63页回归分析在x-y平面上画散点图,直观地知道y与x大致为二次函数关系。设模型为y=a1x2+a2x+a3此问题能够利用命令polyfit(x,y,2)来解,也能够像上题一样求解。下面介绍用命令polytool来解。第64页回归分析首先在命令窗口键入(px_reg21.m)x=17:2:29;x=x,x;y=20.48,25.13,26.15 30,26.1,20.3,19.35,24.35,28.11,26.
24、3,31.4,26.92,25.7,21.3;polytool(x,y,2)得到一个交互式窗口第65页回归分析第66页回归分析窗口中绿线为拟合曲线、红线为y置信区间、可经过移动鼠标十字线或经过在窗口下方输入来设定x值,窗口左边则输出与x对应y值及y置信区间。经过左下方Export下拉菜单可输出回归系数等。更详细解释可经过help查阅。第67页回归分析某厂生产某产品销售量与竞争对手价格x1和本厂价格x2相关。下表是该产品在10个城市销售统计。试建立关系y(x1,x2),对结果进行检验。若某城市本厂产品售价160(元),对手售价170(元),预测此产品在该城市销售量。第68页回归分析这是一个多元回
25、归问题。若设回归模型是线性,即设y=0+1x1+2x2那么依然用regress(y,x,alpha)求回归系数。第69页回归分析键入(px_reg31.m)x1=120,140,190,130,155,175,125,145,180,150;x2=100,110,90,150,210,150,250,270,300,250;y=102,100,120,77,46,93,26,69,65,85;x=ones(10,1),x1,x2;b,bint,r,rint,stats=regress(y,x);b,bint,stats,第70页回归分析b=66.5176 0.4139 -0.2698bint=
26、-32.5060 165.5411 -0.1.0296 -0.4611 -0.0785stats=0.6527 6.5786 0.0247 351.0445第71页回归分析p=0.0247,若显著水平取0,01,则模型不能用;R2=0.6527较小;0,1置信区间包含零点。所以结果不理想。于是设模型为二次函数。此题设模型为纯二次函数:y=0+1x1+2x2+11x12+22x22第72页回归分析MATLAB提供多元二项式回归命令为rstool(x,y,model,alpha).其中alpha为显著水平、model在以下模型中选一个:Linear(线性)Purequadratic(纯二次)Int
27、eraction(交叉)Quadratic(完全二次)第73页回归分析对此例,在命令窗中键入x(:,1)=;rstool(x,y,purequadratic)得到一个对话窗:第74页回归分析第75页回归分析其意义与前面对话窗意义类似。若要回答“本厂售价160,对手售价170,预测该市销售量”问题,只需在下方窗口中分别肩入160和170,就可在左方窗口中读到答案及其置信区间。第76页回归分析下拉菜单Export向工作窗输出数据详细操作为:弹出菜单,选all,点击确定。此时可到工作窗中读取数据。可读数据包含:beta(回归系数)rmse(剩下标准差)residuals(残差)本题只要键入beta,rmse,residuals第77页回归分析第78页判别分析判别分析是判别样品所属类型一个统计方法,其应用之广泛可与回归分析媲美。判别分析与聚类分析不一样。判别分析分类距离判别法Fisher Fisher 判别法判别分析第79页MATLAB中还包含神经网络工具箱,小波分析工具箱,在网上还能够下载遗传算法工具箱,有兴趣同学能够借这次机会,结合学习MATLAB,好好学习一下相关理论知识。最终,祝大家学习,竞赛都取得成功。谢谢大家。第80页