预测类数学模型(11页).doc
-预测类数学模型-第 11 页第二章 预测类数学模型本章重点:预测类数学模型的基本思想,掌握基本的数据拟合方法多项式数据拟合,灰色预测模型等。学习要求1能用基本的数学模型方法解决一些简单的预测类问题。2掌握基本拟合方法的原理与优缺点。2.1.1 最小二乘法的基本原理从整体上考虑近似函数同所给数据点 (i=0,1,m)误差 (i=0,1,m)的大小,常用的方法有以下三种:一是误差 (i=0,1,m)绝对值的最大值,即误差 向量的范数;二是误差绝对值的和,即误差向量r的1范数;三是误差平方和的算术平方根,即误差向量r的2范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2范数的平方,因此在曲线拟合中常采用误差平方和来 度量误差 (i=0,1,m)的整体大小。数据拟合的具体作法是:对给定数据 (i=0,1,,m),在取定的函数类中,求,使误差(i=0,1,m)的平方和最小,即从几何意义上讲,就是寻求与给定点 (i=0,1,m)的距离平方和为最小的曲线(图6-1)。函数称为拟合 函数或最小二乘解,求拟合函数的方法称为曲线拟合的最小二乘法。在曲线拟合中,函数类可有不同的选取方法.212.1.2 多项式拟合 所谓多项式数据拟合,主要是采用多项式函数形式来进行拟合、逼近数据所呈现出来的趋势。多项式的系数可以由最小二乘法计算出来。假设给定数据点 (i=0,1,m),为所有次数不超过的多项式构成的函数类,现求一,使得 (1)当拟合函数为多项式时,称为多项式拟合,满足式(1)的称为最小二乘拟合多项式。特别地,当n=1时,称为线性拟合或直线拟合。显然为的多元函数,因此上述问题即为求的极值 问题。由多元函数求极值的必要条件,得 (2)即 (3)(3)是关于的线性方程组,用矩阵表示为 (4)式(3)或式(4)称为正规方程组或法方程组。可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出 (k=0,1,,n),从而可得多项式 (5)可以证明,式(5)中的满足式(1),即为所求的拟合多项式。我们把称为最小二乘拟合多项式的平方误差,记作由式(2)可得 (6)多项式拟合的一般方法可归纳为以下几步: (1) 由已知数据画出函数粗略的图形散点图,确定拟合多项式的次数n;(2) 列表计算和;(3) 写出正规方程组,求出;(4) 写出拟合多项式。在实际应用中,或;当时所得的拟合多项式就是拉格朗日或牛顿插值多项式。 最小二乘拟合多项式的存在唯一性定理1 设节点互异,则法方程组(4)的解存在唯一。定理2 设是正规方程组(4)的解,则是满足式(1)的最小二乘拟合多项式。*2.1.4 多项式拟合中克服正规方程组的病态在多项式拟合中,当拟合多项式的次数较高时,其正规方程组往往是病态的。而且:正规方程组系数矩阵的阶数越高,病态越严重;拟合节点分布的区间偏离原点越远,病态越严重; (i=0,1,,m)的数量级相差越大,病态越严重。为了克服以上缺点,一般采用以下措施:尽量少作高次拟合多项式,而作不同的分段低次拟合;不使用原始节点作拟合,将节点分布区间作平移,使新的节点关于原 点对称,可大大降低正规方程组的条件数,从而减低病态程度。平移公式为: (9)对平移后的节点(i=0,1,,m),再作压缩或扩张处理: (10)其中,(r是拟合次数) (11) 经过这样调整可以使的数量级不太大也不太小,特别对于等距节点,作式(10)和式(11)两项变换后,其正规方程组的系数矩阵设 为A,则对14次多项式拟合,条件数都不太大,都可以得到满意的结果。变换后的条件数上限表如下:拟合次数1234=1<435在实际应用中还可以利用正交多项式求拟合多项式。一种方法是构造离散正交多项式;另一种方法是利用切比雪夫节点求出函数值后再使用正交多项式。这两种方法都使正规方程 组的系数矩阵为对角矩阵,从而避免了正规方程组的病态。例1:世界人口预测问题人类社会进入20世纪以来,在科学技术和生产力飞速发展的同时,世界人口也以空前的规模增长,统计数据如表3.1所示。表3.1 世界人口统计数据年份1625183019301960197419871999人口/亿5102030405060 可以看出,人口每增长10亿的时间由100年缩短为十几年。人口增长使人类赖以生存的地球环境急剧恶化,人们幡然醒悟,开始研究人类和自然的关系、人口数量的变化规律,以及如何进行人口控制的问题。根据上表,预测2000年以后的世界人口发展趋势。解题思路:1、 问题分析:本题主要是根据已有的人口数据,预测未来的人口发展趋势,在不考虑其他因素的前提下,我们可采用多项式来拟合(建模论文中要写清楚具体方法原理与步骤)数据所呈现出来的趋势。设y(Population)为人口数量,x(Year)为年份。2、 模型建立:我们可以先采用三次拟合,设。3、 模型求解:Matlab三次拟合源程序如下:Year=1625,1830,1960,1974,1987,1999; %输入自变量年份Population=5,10,20,30,40,50,60; %输入因变量人口数量Year1=1625:2020; %输入需要检测的年份1625-2020Year2=2000:2020; %输入需要预测的年份P2,S2=polyfit(Year,Population,3) %P2为系数,S2为残差Population1=polyval(P2,Pear1); %计算拟合结果Population2=polyval(P2,Pear2); %计算拟合结果Polt(Year,Population,*,Year2,Population2,X,Year1,Population1); %画图lengend(实际数据,拟合数据)xlabel(年份);ylabel(人口数量(亿人)图3.1 三次拟合结果得到相应的三次拟合函数式为表3.2 20012020年世界人口预测数据年份2001200220032004200520062007200820092010人数年份2011201220132014201520162017201820192020人数图2 二次拟合结果得到相应的二次拟合的平方误差为14.4641,且在17001750年出现了负人口的情况,这与实际是不相符的,因此二次拟合效果显然不如三次拟合的效果。需要说明的是不是次数越高的拟合效果就越好,在实际操作中,经常进行多个不同次数的拟合,选取效果最好的拟合次数。4、 模型评价在二次拟合中返现拟合函数在17001750年出现了负人口数的状况,这与实际不符。因此在拟合中一定要注意拟合的合理性。 前面介绍了多项式数据拟合,但是多项式数据拟合有一定的局限性,有时需要对非多项式的测试数据进行拟合,并预测其后期数据。在非多项式拟合中,Malthus拟合和Logistic拟合是最典型的、应用最广的拟合方式。2.2.1 Malthus拟合Malthus拟合是由英国统计学家和人口学家Malthus提出来的。设时刻t某一个较大国家或较大地区的人口数量为,则是一个较大的整数。为了利用微积分这一数学工具,我们设是连续可微的函数。记初始时刻的人口数量为,假设人口增长率为常数,即单位时间内的增长量等于乘以。考虑时间内人口的数量,显然,令,得到满足微分方程:当时,表示人口将按指数规律随时间无限增长,称为指数增长模型。2.2.2 Logistic拟合设在所考查的自然环境下,群里所能达到的最大总数(生存极限数)为K,若开始时群体的自然增长率为,随着群体的增长,增长率下降,一旦群体总数达到K,群体停止增长,即增长率为零。通过以上分析可知,自然环境对种群增长率的组织作用体现在上,即随着群体数量的增长而下降,若将表示为的函数,则显然它应该是减函数,则:设为一个线性函数,。采用分离变量法求解上述方程有求解上述微分方程,Matlab程序如下:Dsolve(Dx=r*(1-x/K)*x,t)灰色系统理论经过20年的发展其主要内容包括以灰色哲学为基础的思想体系,以灰色代数系统、灰色方程、灰色矩阵等为基础的理论体系,以灰色序列生成为基础的方法体系,以灰色关联空间为依托的分析体系,以灰色模型(GM)为核心的模型体系,以系统分析、评估、建模、预测、决策、控制、优化为主体的技术体系。灰色模型主要是对小数据进行预测。灰色预测模型是一种针对含有不确定因素的小数据问题进行预测的方法。设称为模型的原始形式。其中G表示灰色(grey),M表示模型(Model),第一个1表示一阶方程,第二l表示1个变量。GM(1,1)模型首先对原始数据进行一阶累加生成(或累减),然后利用指数曲线拟合并预测,最后通过累减还原得到预测值。一般将原始数据序列记为,将一阶累加生成序列记为。建模型的步骤如下:1、 假定原始数据序列为对原始数据序列进行一阶累加生成其中,2、 构造紧邻均值生成序列令,得3、 求最小二乘估计参数和若为参数序列,且, 用最小二乘法求解 4、 模型的基本形式将方程离散化,微分变差分,得GM(1,1)灰微分方程称为模型的基本形式。 称为灰微分方程的白化方程。5、 白化微分方程求解(1)求得到微分方程的解也称为时间响应函数:(2)灰色预测模型的时间响应序列为:(3)将值还原值为:其中为发展系数,反映了及的发展态势。为灰色作用量。模型中的灰色作用量是从背景值挖掘出来的数据,它反映数据变化的关系,其确切内涵是灰色的。灰色模型预测检验一般有残差检验和后验差检验。6、 残差检验按预测模型计算,累减生成,再计算原始序列和的绝对误差和相对误差序列:7、 后验差检验法后验差检验其检验步骤是:(1) 计算原始序列均值及均方差分别为:(2) 计算残差均值及均方差分别为:(3) 计算后验差比值:(4) 称为小误差概率。(5) 确定模型级别,指标如表:模型精度等级小误差概率后验差比IIIIIIIV等级说明: 值越小越好,即较小得多,表示原始数据离散大,而预测误差离散性小,则预测精度高;越大越好,即小误差的概率大,直接表示拟合精度较高。若残差检验、后验差检验都能通过,则可以用其模型进行预测,否则进行残差修正。例1 杭州,宁波,上海市中国沿海发展的重点城市,这三个城市的房价也在持续上升,近三年来这三个城市的房地产价格指数如下表(当年指数以去年为100计算):表3.3 城市房地产价格指数年份2000200120022003200420052006宁波杭州上海2006年宁波,杭州,上海三市的房地产价格指数的变化状况,建立数学模型对20082010年这三个城市的房地产价格指数的变化趋势进行预测。解题思路:1、 问题分析:本题是一个典型的预测类问题(后续可能涉及到评价,这里不做讨论),而且数据较少,我们可以采用灰色模型。以每市每年的房地产价格指数为初始数据,乙上海市的数据为例说明。2、 模型建立:灰色模型3、 模型的求解:matlab源程序如下:>> format long;>> X0=98.6,104.4,107.3,120.1,115.9,109.7,98.7; %原始数据输入>> n=length(X0); %定义原始数据长度>> X1(1)=X0(1); %一次累加向量的第一个分量>> for i=2:n %一次累加向量的其他分量X1(i)=X1(i-1)+X0(i)end >> for i=1:n-1 %计算B与YB(i,1)=-0.5*(X1(i)+X1(i+1);B(i,2)=1;Y(i)=X0(i+1);end>> alpha=(B'*B)(-1)*B'*Y'>> a=alpha(1,1); %灰微分方程或白化方程的系数估计>> b=alpha(2,1);>> d=b/a;>> c=X1(1)-d;>> X2(1)=X0(1);>> X(1)=X0(1);>> for i=1:n-1X2(i+1)=c*exp(-a*i)+d;X(i+1)=X2(i+1)-X2(i);end %时间相应序列>> for i=(n+1):(n+3)X2(i)=c*exp(-a*(i-1)+d;X(i)=X2(i)-X2(i-1); %预测序列end>> for i=1:nerror(i)=X(i)-X0(i);error1(i)=abs(error(i); %残差error2(i)=error1(i)/X0(i); %相对误差end>> c=std(error1)/std(X0); %相对误差的平方和通过上述程序求解有:时间响应序列为:还原后的数据:相对误差:误差平方和:图3 预测效果图表3.4 20082010年上海房地产价格指数预测表年份200820092010上海后验差检验:<0.35,效果为优(我自己算的,计算结果不一定准确)。具体计算方式请同学自己练习。模型评价:此题中数据较少,采用灰色模型效果较好,但实际模拟效果不太理想(图3),同学可自行采用累减的模式联系。