《样条提出的原因.pptx》由会员分享,可在线阅读,更多相关《样条提出的原因.pptx(58页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2.1 Method-1:Modeling with Experiments2.2 Method-2:Modeling with Simulation2.3 Realization with MatlabChapter 2 Methods of Mathematical Modeling and Realization with Matlab第1页/共59页2.1 Modeling with Experiments提出的原因:许多情况下,建模者不能构造一个满意的解释已知状况的易于处理的模型形式,此时为预测其状况,可以进行试验采集数据以构造经验模型。2.1.1 简单的单项模型 2.1.2 高阶多
2、项式模型 2.1.3 低阶多项式模型 2.1.4 三阶样条模型 2.1.5 构造经验模型小结实验建模第2页/共59页Section:1992年每日评论报告了收集到的过去50年中Chesapeake还玩海产品收成方面的数据,如下:(a)收获蓝鱼的观测数据;(b)收获蓝蟹的观测数据2.1.1 简单的单项模型:Harvesting Blue Fish/Crabs第3页/共59页利用变量z的幂次阶梯表,帮助选择适当的线性变换幂次阶梯 蓝鱼蓝鱼收成收成对对基底年数(五年一基底年数(五年一间间隔)隔)蓝蓝鱼鱼(磅磅)108642005000001000000150000020000002500000300
3、0000蓝蓝蟹收成蟹收成对应对应基底年数(五年一基底年数(五年一间间隔)隔)蓝蓝蟹蟹(磅磅)10864200100000020000003000000400000050000006000000第4页/共59页选取log y对x的模型,用最小二乘拟合模型为了有一个简单的单项模型,我们接受某些误差对于收获的蓝鱼,可见数据倾向为增的、凹的,使用幂次阶梯挤压右侧尾部向下,采用log y或者其他阶梯向下的变换代替y第5页/共59页选取 代替x的模型,用最小二乘拟合模型对于收获的蓝蟹,可见数据倾向为增的、下凹的,改变y的值为 或 等,来线性化数据 有时会需要对未来进行预测或者外推,而实际上这些简单的模型预
4、测出的结果会偏大或者偏小,因此,简单但想模型一般应用于插值二而非外推。第6页/共59页2.1.2 高阶多项式模型 单项模型-易于进行模型分析:敏感性分析、优化、变化率以及曲线下面积估计;可用性有限;多项式模型-容易积分、微分Section:Elapsed Time of a Tape Recorder收集一个特定的录音机的计数器读数(旋转的圈数)和相应的录音机的播放时间。如何预测可能出现的情况?Ci100200300400500600700800ti(s)2054306779451233154218722224经验模型是通过数据的每一点的多项式,8个数据点,应期望一个最高为7的唯一多项式,记作
5、:代入上述8个数据点,你和曲线,求得 的值 第7页/共59页求解得到:经验模型数据拟合结果对比:经验模型拟合数据,并进行数据预测a0-13.9999923 a1 232.9119031 a2-29.08333188 a3 19.78472156 a4-5.354166491 a5 0.8013888621 a6-0.0624999978 a7 0.0019841269 ci100 200 300 400 500 600 700 800 ti205 430 677 945 1233 1542 1872 2224 P7205 430 677 945 1233 1542 1872 2224 第8页/
6、共59页Theorem 1:如果,是(n+1)个不同的点,而是这些点上对应的观测值,那么,存在一个唯一的最高阶为n的多项式P(n),具有性质:对k=0,1,n这一多项式由下式给定其中多项式的拉格朗日形式:第9页/共59页高阶多项式的优缺点:虽然通过已知的数据点,但是在端点处会有严重的摆动;对于已有数据给出精确的拟合结果,但在端点出可能做出了有问题的预测,如突升或者突降;高阶多项式系数对数据微小变化的敏感性限制了它在建模中的应用。第10页/共59页2.1.3 低阶多项式模型 选择低阶多项式,保证数据点多于确定多项式所需系数,从而使得低阶多项式虽不通过全部数据点,但是光滑化。Section:Ela
7、psed Time of a Tape Recorder Revisited1、应该用多项式吗?2、如果应该,几阶多项式合适?对于一个二次多项式,其二阶导数为常数,三阶导数为零,即有引入均差概念第11页/共59页利用导数定义:则可以利用均差 来估计导数第12页/共59页带式录音机数据的均差表表中可以看出,数据基本是二次的,支持用二次多项式作为经验模型。寻求一个二次式,极小化偏差平方和第13页/共59页存在极小点的必要条件是:从而有方程:其中m=8,表示计数器读数,即xi/100,ti表示对应的播放时间得到第14页/共59页 Spline ModelslLinear Spline Modelsl
8、Second-Order Spline ModelslCubic Spline Models分段线性插值分段线性插值节点处一阶导数不连续(不光滑节点处一阶导数不连续(不光滑)在节点处一阶导数连续每两个相邻节点组成的区间中推导 一个二阶多项式节点处具有连续的一阶、二阶导数每两个相邻节点组成的区间中推导 一个三阶多项式三阶导数和高阶导数可能不连续第15页/共59页2.1.3 三阶样条模型 第16页/共59页2.1.3 三阶样条模型 低阶多项式的缺点可能在数据范围的某些地方拟合相当差三阶样条插值在连续的数据点间使用不同的三阶多项式,追踪数据趋势,既保证基本关系的特征,又减少摆动的倾向和数据变化的灵敏
9、性xi123yi5825对于下面一组数据:在区间 ,中分别定义样条函数第17页/共59页1、每一样条必须通过其定义区间的端点 通过(1,5)和(2,8);通过(2,8)和(3,25),即2、在内部数据点处,邻接的一阶导数必须匹配保证光滑性3、每一内部数据点邻接的二阶导数必须匹配则需要满足以下4个条件:和即即第18页/共59页区间模型4、端点处的二阶导数满足2种常用条件自然样条:为0;强制样条:为给定的f(x)即整理上述8个方程组成的线性方程组,就可以求得唯一解从而能够进行数据预测第19页/共59页区间模型问题描述:预测车辆总的停止距离速度v(英里/小时)20253035404550距离d(英尺
10、)425673.591.5116142.5 173速度v(英里/小时)556065707580距离d(英尺)209.5 248292.5 343401464对每个区间进行三阶样条插值,得到如下模型第20页/共59页2.1.4 小结:构造经验模型单项模型不适合多项式模型(n-1)阶多项式数据量小数据量大光滑化-低阶多项式不适合三阶(或者线性)样条第21页/共59页2.2 Modeling with Simulation提出的原因:某些情况下,对对象的行为进行直接观测或者重复实验是不可行的,或者某些模式的试验系统是不存在的,需要采用比例缩放或者其他手段进行模拟2.2.1 确定行为的模拟2.2.2
11、随机行为的模拟2.2.3 存储模型2.2.4 排队模型模拟建模第22页/共59页2.2.1 确定行为的模拟以曲线下的面积为例说明蒙特卡罗模拟在确定行为建模中的应用在矩形域中随机选择一点P(x,y),即产生两个满足 ,的随机数x,y,则有第23页/共59页计算面积的蒙特卡罗算法(Monte Carlo Area Algorithm):Input:模拟中产生的随机点总数nOutput:AREA=给定区间 上曲线 下的近似面积,其中 Step 1:初始化:counter=0;Step 2:对i=1,2,n,进行35步Step 3:计算随机坐标 和 ,满足 ,Step 4:对随机坐标 计算Step 5
12、:若 ,则counter+1;否则counter不变Step 6:计算Step 7:输出(AREA)STOP第24页/共59页2.2.2 随机行为的模拟概率研究随机性、不确定性及量化各种结果出现的可能性。概率可以看作长期的平均值.掷一个正规的骰子掷一个正规的骰子(Roll of a Fair Die)掷一个正规的骰子并加以旋转,需定义6个事件的方法,因为骰子由数1,2,3,4,5,6组成,每个事件出现的概率是1/6。指定数值出现的概率为:第25页/共59页投正规骰子的蒙特卡罗算法第26页/共59页 投掷10,100,1000,10000,100000次的结果如下,可以看到投掷100000次接近
13、期望结果第27页/共59页下面考虑每个事件不是等可能出现的随机模型u 按照经验模型,给 骰子的几个面加上权重,使之偏移u 算法中采取的函数第28页/共59页投掷不正规的骰子的蒙特卡罗算法第29页/共59页 投掷不正规的骰子出现的结果投掷不正规的骰子出现的结果第30页/共59页2.2.3 存储模型(Inventory Model)Section Description:某人受雇于一家加油站连锁店当顾问,要确定每隔多长时间及把多少汽油运送到各个加油站。Analysis:每次运送汽油都要支付费用d,它是与运送量无关的附加费用决定费用的其他因素有:存储中冻结的资金、分期偿还的设备费用、保险费、税费、安
14、全检测费Raise the Question:最小化每天平均的运费,并且每个加油站存储足够的汽油以满足消费需求第31页/共59页Model developed 日平均费用=f(存储费,运费,需求率)对日平均费用建立一个分析子模型,用它得到最优的运送时间间隔和最优运量:其中T*=最优运送时间间隔(天)Q*=汽油最优运量(加仑)r=汽油日需求量d=每次运送的费用(元)s=每加仑汽油每天的存储费第32页/共59页Assuptions1.单位存储量的费用是常数2.每次运送的费用是常数;3.日需求量为常数统计特定的一个加油站需求量的记录,将出现频率最高的需求量作为日需求量常数,则根据上述分析子模型就能够
15、计算T*和Q*了本例中选择1500加仑作为日需求量第33页/共59页模型改进:不满意常数需求量的假设,建立需求量出现的概率区间取每个区间中间点,再进行样条插值第34页/共59页对应得到的经验需求子模型的线性样条求逆函数,则能够得到需求量q关于自变量(随机数x)的函数可以进一步改进,采用三次样条插值第35页/共59页2.2.3 排队模型(Queuing Models)Section:AHarborSystem考察一个带有船只卸货设备的小港口,任何时间仅能为一艘船只卸货。船只进港是为了卸货,相邻两艘船到达的时间间隔在15分钟到145分钟之间变化,一艘船只卸货的时间由所卸货物的类型决定,在45分钟到
16、90分钟之间变化。Question:1.每艘船只在港口的平均时间和最长时间是多少?2.若一艘船只的等待时间是从到达到开始卸货的时间,每艘船只的平均等待时间和最长等待时间是多少?3.卸货设备空闲时间的百分比是多少?4.船只排队最长的长度是多少?第36页/共59页Assumption1.相邻两艘船到达的时间间隔在一定时间区间内均匀分布,如15=between_i=1452.每艘船只卸货的时间一定时间区间内均匀分布,如45=unload_i=90对每艘船只有以下数据第37页/共59页船1的卸货过程依次类推表述出船只和码头设备的空闲和卸货时间第38页/共59页五艘假想船只的模拟结果通过统计对各种管理模
17、式进行估计,以确定是否值得为改善服务而增加费用第39页/共59页第40页/共59页第41页/共59页第42页/共59页100艘船港口系统的模拟结果改进:通过雇佣更多的劳动力,或者得到更好的卸货设备,使卸货时间减少到每艘船3575分钟第43页/共59页对之前的假设15=between_i=145及45=unload_i=90且服从均匀分布不满意进一步改进:收集港口系统的经验数据,并将结果并入我们的模型第44页/共59页将船到达间隔的单个的概率连续地加在一起,也将卸货时间的单个的概率连续地加在一起,就得到累积直方图第45页/共59页取区间中间值,并进行样条插值第46页/共59页将线性样条子模型并入
18、港口系统模型,得到第47页/共59页2.3 Realization with Matlab2.3.1 数据的读入读出MATLAB提供了多种数据处理方法,一种是将数据输出,然后复制粘贴到其他软件中进行处理,另一种是与Excel和记事本之间进行数据交互,后者较为方便。MATLAB与Excel的数据交互采用MATLAB中的Excellink插件,连接Excel和MATLAB使得用户可以在Excel工作表空间和宏编程工具中使用MATLAB的数值计算和图形处理。设置方法:启动Excel,选择菜单“工具”项下的“加载宏”项,弹出宏对话框,选中ExcelLink项。如果不存在,则通过浏览目录,在MATLAB
19、toolboxexlink文件下找到excllink.xla文件单击确定。第48页/共59页MATLAB与记事本的数据交互u读取数据当记事本中全部是数据时,可用函数load,形式为:Load(filename.*)当记事本中的数据结构变得复杂时,函数textread是最优选择,规则为:A,B,C,=textread(filename,format,N)其中A,B,C,为每一列数据将要保存的变量名;format为读取格式;N为读取次数第49页/共59页示例:第50页/共59页u写入数据用save命令,具体形式:savefileobj1obj2结果:将变量obj1,obj2,存入文件file中(为
20、.mat格式)若想保存为平常的.txt文档,可以有其它软件读取,如函数fprintf说明:%s表示字符串(sting)%f表示浮点数(float)%u表示十进制数n表示换行fopen()表示打开文件fclose()表示关闭文件wt表示写入fprint(fid,thisis.)表示直接在文件中写入文字thisis第51页/共59页示例:将上一示例中的数据保存在tp.txt文件中第52页/共59页运行后会建立一个tp.txt文件注意:不能用函数textrend读取后再用函数fprintf进行写操作因为textrend读取数据后保存为cell结构,而fprintf不能进行cell结构数据读写第53页
21、/共59页2.3.2 MATLAB数据拟合多项式拟合指令:polyfit(X,Y,N):返回降幂排列的多项式系数Polyval(P,xi):计算多项式的值其中X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的点的横坐标x=1:9;y=9 7 6 3-1 2 5 7 20;p=polyfit(x,y,3);xi=0:0.2:10;yi=polyval(p,xi);plot(xi,yi,x,y,r*);第54页/共59页也可采用窗口工具箱进行简单、快速、高效的拟合先画出图形,然后单击figure窗口的ToolsBasicFitting第55页/共59页指定函数拟合某次阻尼振荡实验测得结果如下表根据信号与系统知识可知其对应的函数为f(t)=a*cos(kt)*exp(wt)第56页/共59页运行结果fittype自定义拟合函数cfun=fit(x,y,f)根据自定义函数f来拟合数据x,y注意:数据x,y必须为列向量形式!第57页/共59页曲线拟合工具箱依次单击StartToolboxesCurveFittingTool(cftool)即可打开曲线拟合工具箱,或者在CommandWindows中直接输入cftool打开采用上一例子中的数据选择拟合方式选择数据第58页/共59页
限制150内