资源描述
第五章第五章 实验数据及模型参数拟合方法实验数据及模型参数拟合方法第五章第五章 实验数据及模型参数拟合方法实验数据及模型参数拟合方法第一节第一节 问题的提出问题的提出第一节第一节 问题的提出问题的提出 在化工设计及化工模拟计算中,需要大量的物性参数及各种设备参数。这些参数有些可以通过计算得到,但大量的参数还是要通过实验测量得到。实验测量得到的常常是一组离散数据序列(xi,yi)。如果数据序列(xi,yi)(为一般起见),i=1,2,m,含有不可避免的误差(或称“噪声”,如图5-1所示),或者无法同时满足某特定的函数(如图5-2所示),那么,只能要求所作逼近函数(x)最优地靠近样点,即向量Q=((x1),(x2),(xm))T与Y=(y1,y2,ym)T的误差或距离最小。按Q与Y之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数。第一节第一节 问题的提出问题的提出图5-1 含有噪声的数据图5-2 无法同时满足某特定函数的数据序列第一节第一节 问题的提出问题的提出 除了物性数据及设备参数需要利用数据拟合外,在化学化工中,许多模型也要利用数据拟合技术,求出最佳的模型和模型参数。如在某一反应工程实验中,我们测得了如表5-1所示的实验数据。现在要确定在其他条件不变的情况下,转化率y和温度T的具体关系,现拟用两种模型去拟合实验数据,两种模型分别是 第一节第一节 问题的提出问题的提出 如何求取上述模型中的参数,并判断两种模型的优劣,是化学化工工作者经常要碰到的问题,这个问题的求解将在本章下面的有关章节中进行详细的讲解。第二节第二节 拟合的标准拟合的标准第二节第二节 拟合的标准拟合的标准 前面已经提到按Q与Y之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数,而向量Q与Y之间的误差或距离有各种不同的定义方法,一般有以下几种。(1)用各点误差绝对值的和表示 (2)用各点误差按绝对值的最大值表示 (3)用各点误差的平方和表示 式中R称为均方误差。由于计算均方误差的最小值的原则容易实现而被广泛采用。按均方误差达到极小构造拟合曲按均方误差达到极小构造拟合曲线的方法称为最小二乘法线的方法称为最小二乘法。同时还有许多种其他的方法构造拟合曲线,感兴趣的读者可参阅有关教材。本章主要讲述用最小二乘法构造拟合曲线。第二节第二节 拟合的标准拟合的标准 第二节第二节 拟合的标准拟合的标准_实例实例1 1 实验测得二甲醇(DME)的饱和蒸气压和温度的关系,见表5-2。序号温度 蒸气压 MPa1-23.70.1012-100.174300.2544100.3595200.4956300.6627400.880表5-2 DME饱和蒸气压和温度的关系 由表5-2的数据观测可得,DME的饱和蒸气压和温度有正相关关系,如果以函数p=a+bt来拟合,则拟合函数是一条直线。通过计算均方误差Q(a,b)最小值而确定直线方程。(见图5-3)图5-3 DME饱和蒸汽压和温度之间的线性拟合 第二节第二节 拟合的标准拟合的标准_实例实例1 1 拟合得到直线方程为:相关系数R为0.97296,平均绝对偏差SD为0.0707。拟合的标准拟合的标准 实例实例2 2 如果采用二次拟合,通过计算下述均方误差 拟合得二次方程为相关系数R为0.99972,平均绝对偏差SD为0.00815,具体拟合曲线见图5-4。图5-4 DME饱和蒸气压和温度之间的二次拟合 拟合的标准拟合的标准 实例实例2 2 比较图5-3和图5-4以及各自的相关系数和平均绝对偏差可知:n对于DME饱和蒸汽压和温度之间的关系,在实验温度范围内用二次拟合曲线优于线性拟合。n二次拟合曲线具有局限性,由图5-4观察可知,当温度低于-30时,饱和压力有升高的趋势,但在拟合的温度范围内,二次拟合的平均绝对偏差又小于一次拟合,故对物性数据进行拟合时,不仅要看在拟合条件下的拟合效果,还必须根据物性的具体性质,判断在拟合条件之外的物性变化趋势,以便使拟合公式在已做实验点数据之外应用。第三节第三节 单变量拟合和多变量拟合单变量拟合和多变量拟合 给定一组数据(xi,yi),i=1,2,m,作拟合直线p(x)=a+bx,均方误差为由数学知识可知,Q(a,b)的极小值需满足:整理得到拟合曲线满足的方程:5.3.1 单变量拟合单变量拟合 1.单变量拟合单变量拟合 线性拟合线性拟合1.单变量拟合单变量拟合线性拟合线性拟合 该方程可用消元法或克莱姆方法解出方程(如下式所示)单变量拟合单变量拟合 线性拟合实例线性拟合实例例:例:下表为实验测得的某一物性和温度之间的关系数据,表中x为温度数据,y为物性数据。请用线性函数拟合温度和物性之间的关系。解:设拟合直线p(x)=a+bx,并计算得下表:x7911131517192123252729y91215182124273033363942x313335373941434547y454851545760636669编号xyxyx21234521791113154756791215182169819631081652343153243267334981121169225220918389 将数据代入法方程组(1-12)中,得到:解方程得:a=-1.5,b=1.5 拟合直线为:相关系数R为1。单变量拟合单变量拟合 线性拟合实例线性拟合实例线性拟合线性拟合VBVB清单清单PrivateSubCommand1_Click()Dimx(5),y(5),c,d,m,p,a,b,eerConstn=5Fori=1To5x(i)=InputBox(“x(i)=”)y(i)=InputBox(“y(i)=”)Print“x(i)=”;x(i)Print“y(i)=”;y(i)NextIc=0d=0m=0p=0Fori=1To5c=c+x(i)d=d+x(i)2m=m+y(i)p=p+x(i)*y(i)Nextia=(m*d-c*p)/(n*d-c2)b=(n*p-c*m)/(n*d-c2)参数计算a=Int(a*1000+0.5)/1000b=Int(b*1000+0.5)/1000Text1.Text=Str(a)Text2.Text=Str(b)参数输出Fori=1To5eer=eer+(a+b*x(i)-y(i)2误差计算eer=Int(eer*100000+0.5)/100000Nextieer=eer/5Text3.Text=Str(eer)EndSub有关有关线性线性拟合变型问题拟合变型问题例如要拟合y=a+b/x2,只需在数据输入后增加一语句x(i)=1/x(i)2,而在程序后面的误差eer的计算中则不需要修改。2.单变量拟合单变量拟合 二次拟合函数二次拟合函数 给定数据(xi,yi),i=1,2,m,用二次多项式函数拟合这组数据。设,作出拟合函数与数据序列的均方误差表达式由数学知识可知,Q(a0,a1,a2)的极小值满足:整理左式得二次多项式函数拟合的满足条件方程(5-14):(5-14)解此方程得到在均方误差最小意义下的拟合函数p(x)。式(5-14)称为多项式拟合的法方程,法方程的系数矩阵是对称的。当拟合多项式n 5时,法方程的系数矩阵是病态的,在用通常的迭代方法求解线性方程时会发散,在计算中要采用一些特殊算法以保护解的准确性。关于线性方程的求解方法,已在第三章中介绍。2.单变量拟合单变量拟合 二次拟合函数二次拟合函数3.二次拟合函数的拓展二次拟合函数的拓展 和一次拟合一样,二次拟合也可以有多种变型,例如 套用上面的公式,可以得到关于求解此拟合函数的法方程(5-15)。值得注意的是在此法方程的构建过程中,进行了变量的代换。首先是拟合函数中变量的代换:。P(x)=a0+a1x3+a2x5(5-15)其次是法方程的代换:将相应拟合函数中的代换引入法方程中。同时应注意法方程中x的4次幂是由两个2次幂相乘得到,x的3次幂是由一个2次幂和一个1次幂相乘得到,而2次幂就是变量本身,而非两个1次幂相乘得到。这个概念至关重要,在以后的二次拟合的各类变型中,均需利用这个概念,千万不要用常规的思路去进行代入计算。3.二次拟合函数的拓展二次拟合函数的拓展如果我们需要求解是下面的拟合函数:参照上面的方法,我们很容易得到求解该拟合函数的法方程3.二次拟合函数的拓展二次拟合函数的拓展4.二次拟合实例二次拟合实例请用二次多项式函数拟合下面这组数据。解解:设并计算得下表序号xyxyX2X2yX3X41-34-12936-27812-22-448-8163-13-313-114000000051-1-11-11162-2-44-881673-5-159-45278101-3928-701964.4.二次拟合实例二次拟合实例将上面数据代入式(5-14),相应的法方程为解方程得:a0=0.66667,a1=-1.39286,a2=-0.13095所以:-3-2-10123-6-4-2024y=0.66667-1.39286 x-0.13095 x2yY X 图图 5-6 拟合曲线与数据序列拟合曲线与数据序列 二次拟合二次拟合-VB-VB程序清单程序清单PrivateSubCommand1_Click()Dimn,mAsIntegern=InputBox(n=方程次数)m=InputBox(m=实验次数)ReDimx(m),y(m),a0(n+1),a1(n+1),aa(m,n+1)ReDimqq(n+1,m),pp(n+1,n+1),b(n+1),g(n+1),tt(n+1,n+1)ForI=1Tom:读入数据READx(I),y(I)NextIData-3,4,-2,2,-1,3,0,0,1,-1,2,-2,3,-5Fori=1Tomx(i)=InputBox(x(i)y(i)=InputBox(y(i)Nexti二次拟合二次拟合-VB-VB程序清单程序清单omiga=InputBox(omiga=松弛因子)Forj=1Ton+1为计算法方程中的系数做准备Fori=1Tomaa(i,j)=x(i)(j-1)NextiNextjForj=1TomFori=1Ton+1qq(i,j)=aa(j,i)NextiNextj计算法方程中的右边项Fori=1Ton+1b(i)=0Forj=1Tomb(i)=b(i)+aa(j,i)*y(j)NextjNexti开始计算法方程中的右边项的系数Fori=1Ton+1Forj=1Ton+1pp(i,j)=0Fork=1Tompp(i,j)=qq(i,k)*aa(k,j)+pp(i,j)NextkNextjNexti二次拟合二次拟合-VB-VB程序清单程序清单开始用松弛迭代法求解法方程中的变量Fori=1Ton+1a0(i)=0a1(i)=0.11NextiFori=1Ton+1g(i)=b(i)/pp(i,i)Forj=1Ton+1Ifj=iThentt(i,j)=0Elsett(i,j)=-pp(i,j)/pp(i,i)EndIfNextjNexti50eer=0Fori=1Ton+1eer=eer+Abs(a0(i)-a1(i)NextiIfeer2)。一般地,将含有n个未知量m个方程的线性方程组其一般形式为第四节解矛盾方程组第四节解矛盾方程组写成矩阵形为 一般情况下,当方程数m多于变量数n,且m个方程之间线性无关,则方程组无解,这时方程组称为矛盾方程组。方程组在一般意义下无解,也即无法找到n个变量同时满足m个方程。这种情况和拟合曲线无法同时满足所有的实验数据点相仿,故可以通过求解均方误差 极小意义下矛盾方程的解来获取拟合曲线。由数学知识还可证明:方程组ATAX=ATY的解就是矛盾方程组AX=Y在最小二乘法意义下的解。这样我们只要通过求解ATAX=ATY就可以得到矛盾方程组的解,进而得到各种拟合曲线,为拟合曲线的求解提供了另一种方法。第四节解矛盾方程组第四节解矛盾方程组minAX-B22例如,拟合直线p(x)=a0+a1x的矛盾方程组 ATAX=ATY的形式如下:化简得到与式(1-12)相同的法方程第四节解矛盾方程组第四节解矛盾方程组这里需要注意的是变量X和系数(a0,a1)之间的相互转换关系。即 对于n次多项式曲线拟合,要计算Q(a0,a1,an)的极小值问题,这与解矛盾方程组第四节解矛盾方程组第四节解矛盾方程组与求 的极小问题是一回事。或在这里故对离散数据(xi,yi),i=1,2,m;所作的n次拟合曲线y=,可通过解下列方程组求得:(1-21)第四节解矛盾方程组第四节解矛盾方程组n如果拟合函数有n个自变量并进行一次拟合,则其拟合函数为:(1-22)通过m(mn)次实验,测量得到了m组 的实数据,则可得到上面n个自变量拟合函数的法方程第四节解矛盾方程组第四节解矛盾方程组n只要对法方程(1-22)稍加修改,就可以得到有n个自变量的任意次方的拟合函数的法方程,通过法方程的求,就可以得到拟合函数中的各项系数。(1-23)第四节解矛盾方程组第四节解矛盾方程组利用解矛盾方程的方法,用二次多项式函数拟合下面数据。解:记二次拟合曲线为 形成法方程第四节解矛盾方程组第四节解矛盾方程组实例实例1 1第四节解矛盾方程组第四节解矛盾方程组实例实例1 1而第四节解矛盾方程组第四节解矛盾方程组实例实例1 1得到:解方程得到:a0=0.66667,a1=-1.39286,a2=-0.13095 f(x)=0.66667-1.39286x-0.13095x2 n例 1.5:给出一组数据,见下表。用解矛盾方程的思路将下面数据拟合成 的经验公式。x-3 -2 -1 2 4y14.3 8.3 4.7 8.3 22.7第四节解矛盾方程组第四节解矛盾方程组实例实例2n解:列出法方程:而:第四节解矛盾方程组第四节解矛盾方程组实例实例2n故法方程为:n解方程得:a=10.675,b=0.137n拟合曲线为:第四节解矛盾方程组第四节解矛盾方程组实例实例2p经常不断地学习,你就什么都知道。你知道得越多,你就越有力量pStudyConstantly,AndYouWillKnowEverything.TheMoreYouKnow,TheMorePowerfulYouWillBe写在最后谢谢你的到来学习并没有结束,希望大家继续努力Learning Is Not Over.I Hope You Will Continue To Work Hard演讲人:XXXXXX 时 间:XX年XX月XX日
展开阅读全文