第一篇:三对角线性方程组算法特点论文
一、概述
三对角线性方程组的求解是许多科学和工程计算中最重要也是最基本的问题之一。在核物理、流体力学、油藏工程、石油地震数据处理及数值天气预报等许多领域的大规模科学工程和数值处理中都会遇到三对角系统的求解问题。很多三对角线性方程组的算法可以直接推广到求解块三对角及带状线性方程组。由于在理论和实际应用上的重要性,近20年来三对角方程组的并行算法研究十分活跃。
大规模科学计算需要高性能的并行计算机。随着软硬件技术的发展,高性能的并行计算机日新月异。现今,SMP可构成每秒几十亿次运算的系统,PVP和COW可构成每秒几百亿次运算的系统,而MPP和DSM可构成每秒万亿次运算或更高的系统。
高性能并行计算机只是给大型科学计算提供了计算工具。如何发挥并行计算机的潜在性能和对三对角系统进行有效求解,其关键在于抓住并行计算的特点进行并行算法的研究和程序的设计与实现。另外,对处理机个数较多的并行计算系统,在设计并行算法时必须解决算法的可扩展性,并对可扩展性进行研究和分析。
二、问题的提出
设三对角线性方程组为
AX=Y(1)
式中:A∈Rn×n非奇异,αij=0。X=(x1,x2,…xn)TY=(y1,y2,…yn)T。
此系统在许多算法中被提出,因此研究其高性能并行算法是很有理论和实际意义的。
三、并行求解三对角系统的直接解法
关于三对角线性方程组的直接求解已经有大量并行算法,其中Wang的分裂法是最早针对实际硬件环境,基于分治策略提出的并行算法。它不仅通信结构简单,容易推广到一般带状线性方程组的并行求解,而且为相继出现的许多其它并行算法提供了可行的局部分解策略。
近20年来求解三对角方程组的并行算法都是基于分治策略,即通过将三对角方程组分解成P个小规模问题,求解这P个小规模问题,再将这些解结合起来得到原三对角方程组的解。一般求解三对角方程组的分治方法的计算过程可分为3个阶段:一是消去,每台处理机对子系统消元;二是求解缩减系统(需要通信);三是回代,将缩减系统的解回代到每个子系统,求出最终结果。具体可分为以下几类:
(一)递推耦合算法(RecursiveDoubling)
由Stone于1975年提出,算法巧妙地把LU分解方法的时序性很强的递推计算转化为递推倍增并行计算。D.J.Evans对此方法做了大量研究。P.Dubois和G.Rodrigue的研究表明Stone算法是不稳定的。
(二)循环约化方法(CyclicReduction)
循环约化方法由Hockey和G.Golub在1965年提出,其基本思想是每次迭代将偶数编号方程中的奇变量消去,只剩下偶变量,问题转变成求解仅由偶变量组成的规模减半的新三对角方程组。求解该新方程组,得到所有的偶变量后,再回代求解所有的奇变量。即约化和回代过程。由于其基本的算术操作可以向量化,适合于向量机。此方法有大量学者进行研究,提出了许多改进的方法。例如,Heller针对最后几步的短向量操作提出了不完全循环约化方法;R.Reulter结合IBM3090VF向量机的特点提出了局部循环约化法;P.Amodio针对分布式系统的特点改进了循环约化方法;最近针对此方法又提出对三对角方程组进行更大约化步的交替迭代策略。
(三)基于矩阵乘分解算法
将系数矩阵A分解成A=FT,方程Ax=b化为Fy=b和Tx=y两个方程组的并行求解。这种算法又可以分为两类:
1.分解。
如Wang的分裂法及其改进算法就属于这一类。P.Amodio在1993年对这类算法进行了很好的总结,用本地LU、本地LUD和本地循环约化法求解,并在1995年提出基于矩阵乘分解的并行QR算法。H.Michielse和A.VanderVorst改变Wang算法的消元次序,提出了通信量减少的算法。李晓梅等将H.Michielse和A.VanderVorst算法中的通信模式从单向串行改为双向并行,提出DPP算法,是目前最好的三对角方程组分布式算法之一。2000年骆志刚等中依据DPP算法,利用计算与通信重叠技术,减少处理机空闲时间取得了更好的并行效果。此类算法要求解P-1阶缩减系统。
2.不重叠分解。
例如Lawrie&Sameh算法、Johsoon算法、Baron算法、Chawla在1991年提出的WZ分解算法以及Mattor在1995年提出的算法都属于这一类。此类算法要求解2P-2阶缩减系统。
(四)基于矩阵和分解算法
将系数矩阵分解成A=Ao+△A,这类算法的共同特点是利用Sherman&Morrison公式将和的逆化为子矩阵逆的和。按矩阵分解方法,这种算法又可分为两类:
1.重叠分解。
这类算法首先由Mehrmann在1990年提出,通过选择好的分解在计算过程中保持原方程组系数矩阵的结构特性,具有好的数值稳定性,需要求解P-1阶缩减系统。
2.不重叠分解。
Sun等在1992年提出的并行划分LU算法PPT算法和并行对角占优算法PDD算法均属于这一类。需要求解2P-2阶缩减系统。其中PDD算法的通讯时间不随处理机的变化而变化,具有很好的可扩展性。X.H.Sun和W.Zhang在2002年提出了两层混合并行方法PTH,其基本思想是在PDD中嵌入一个内层三对角解法以形成一个两层的并行,基本算法是PDD,三对角系统首先基于PDD分解。PTH算法也具有很好的可扩展性。
四、并行求解三对角系统的迭代解法
当稀疏线性方程组的系数矩阵不规则时,直接法在求解过程中会带来大量非零元素,增加了计算量、通信量和存储量,并且直接法不易并行,不能满足求解大规模问题的需要。因此通常使用迭代法来求解一般系数线性方程组和含零元素较多三对角线性方程组。迭代法包括古典迭代法和Krylov子空间迭代法。
古典迭代法包括Jacobi、Gauss-Seidel、SOR、SSOR等方法。通常采用红黑排序、多色排序和多分裂等技术进行并行计算。
由于古典迭代法有收敛速度慢、并行效果不好等缺点,目前已较少用于直接求解大型稀疏线性方程组,而是作为预条件子和其它方法(如Krylov子空间方法)相结合使用。
Krylov子空间方法具有存储量小,计算量小且易于并行等优点,非常适合于并行求解大型稀疏线性方程组。结合预条件子的Krylov子空间迭代法是目前并行求解大型稀疏线性方程组的最主要方法。
给定初值X0,求解稀疏线性方程组AX=Y。设Km为维子空间,一般投影方法是从m维仿射子空间X0+Km中寻找近似解Xm使之满足Petrov-Galerkin条件:
Y-AXm┻Lm
其中Lm为另一个维子空间。如果Km是Krylov子空间,则上述投影方法称为Krylov子空间方法。Krylov子空间Km(A,r0)定义为:
Km(A,r0)=span{r0,Ar0,A2r0,…,Am-1r0}
选取不同的Km和Lm就得到不同的Krylov子空间方法。主要算法包括四类:基于正交投影方法、基于正交化方法、基于双正交化方法、基于正规方程方法。
Krylov子空间迭代法的收敛速度依赖于系数矩阵特征值的分布,对于很多问题,直接使用迭代法的收敛速度特别慢,或者根本不收敛。因此使用预条件改变其收敛性,使中断问题可解,并加速收敛速度是需要的。目前人们研究的预条件技术可分为四类:采用基于矩阵分裂的古典迭代法作为预条件子、采用不完全LU分解作预条件子、基于系数矩阵近似逆的预条件子、结合实际问题用多重网格或区域分解作预条件子。对Krylov子空间和预条件Krylov子空间方法有详细的讨论。
预条件Krylov子空间方法的并行计算问题一直是研究热点,已提出了一系列好的并行算法。目前预条件Krylov子空间方法的计算量主要集中在矩阵向量乘上。虽然学者们做了大量的研究工作,但是还没找到效果好,又易于并行的预条件子。
需要特别指出的是,对于一般线性代数方程组的并行求解,其可扩展并行计算的研究已相对成熟,并已形成相应的并行软件库,如美国田纳西亚州立大学和橡树岭国家实验室研制的基于消息传递计算平台的可扩展线性代数程序库ScaLAPACK和得克萨斯大学开发的界面更加友好的并行线性代数库PLAPACK。我们借鉴其研究成果和研究方法,对三对角线性方程组并行算法的研究是有帮助的。
五、结语
三对角线性方程组的直接解法,算法丰富,程序较容易实现。但计算过程要增加计算量,并且大部分算法都对系数矩阵的要求比较高。迭代解法适合于非零元素较多的情况,特别是结合预条件子的Krylov子空间迭代法已成为当前研究的热点。
尽管三对角系统并行算法的研究取得了很多成果。但是还存在一些问题:直接法中,分治策略带来计算量和通信量的增加,如何减少计算量和通信量有待于进一步的研究;目前直接算法均基于分治策略,如何把其它并行算法设计技术,如平衡树和流水线等技术应用到三对角系统的并行求解中也是需要引起重视的方向;对于非对称系统还没找到一种通用的Krylov子空间方法;Krylov子空间方法的并行实现时仅考虑系数矩阵与向量乘,对其它问题考虑不够;以往设计的并行算法缺乏对算法可扩展性的考虑和分析。
【参考文献】
[1]骆志刚,李晓梅,王正华.三对角线性方程组的一种有效分布式并行算法[J].计算机研究与发展,2000,(7)
第二篇:锅炉节能计算法论文
我公司1#机组330MW锅炉为武汉锅炉股份有限公司生产的WGZ1112/17.5-3型亚临界参数汽包炉。锅炉采用自然循环,单炉膛,双通道低NOX轴向旋流式燃烧器,前后墙对冲布置,一次中间再热,尾部双烟道布置,烟气挡板调温,三分仓容克式空气预热器,刮板式出渣装置,钢构架,全悬吊,平衡通风,全封闭岛式布置。
电厂锅炉的经济运行是一个急需得到重视的问题,这不仅牵扯企业的经济效益,而且在能源日益短缺的将来对节约能源,实现持续协调发展更具重大意义。我国煤炭60%以上消费用在发电方面,节能降耗对电站锅炉更是迫在眉睫。众所周知,在煤粉锅炉的热损失当中,排烟损失Q2是最大的一项,一般占到7~8%左右,第二是机械不完全燃烧损失Q4占到1~2%左右,而化学不完全燃烧损失Q3、散热损失Q5、灰渣物理显热损失Q6只占很少份额。所以在研究锅炉经济性时我们应重点控制Q2和Q4的损失量,而影响Q2的主要是排烟量(用排烟氧量来标志大小)和排烟温度,影响Q4的主要是飞灰可燃物含量,这三个指标是我们研究锅炉效率最应注意的。另外,主蒸汽流量和各级减温水量虽然不直接影响锅炉效率,但对循环效率有很大影响,因为主汽流量的增加使进入凝汽器的蒸汽量增加,从而使冷源损失增大。而减温水量的增加使其在锅炉内加热到额定参数需要的热量增加,从而使机组的热耗增大。所以这两项也是我们在锅炉运行时应特别关注的指标。至于主汽压力、主汽温度对经济性的影响是通过主汽流量来体现,因为主汽压力、主汽温度达不到要求时,只有通过增加主汽流量来保证电负荷,所以对主汽量的分析实际已涵盖了这些因素的影响。1. 影响锅炉效率的三个重要因素:排烟温度、排烟氧量和飞灰可燃物含量
我们分析这一问题的方法是先设定一个基准工况,然后单独变化一个影响因素,而其他数值保持不变,这时用软件计算炉效,从而得出该因素与炉效的函数关系,再通过计算机作图,进一步确定其曲线方程,得出该因素对炉效和煤耗的影响数值。确定对煤耗影响时取炉效每下降1%,煤耗增加3 g/kw.h(这一结论可用公式b=123/η g/kw.h得出)
基准工况:根据热工院1#炉燃烧调整和性能考核试验参数,煤质取设计煤种、参数取额定参数、飞灰含碳量取1%、空预器漏风率取6%、计算炉效为93.35%,具体数值如下表:
2.1蒸汽流量和其它参数不变时,确定主汽系统每增加10t/h喷水量时蒸汽在炉内吸热的增加值,也就是热耗的增加值。无喷水时是给水被加热到额定参数,有喷水后等量给水被替代,所以热耗的增加值为把减温水加热到过热器出口额定参数的吸热量与把等量给水加热到额定参数的吸热量的差值。即:
ΔQ吸=[(H主汽-H减温水)-(H主汽-H给水)]*D喷水量
代入数据ΔQ吸=[(3396-731)-(3396-1178.4)]*10000=4474000 kJ/h 对以上数据除以标准煤的低位发热量29400kj/kg折算为每小时标准煤耗量,然后再除以每小时的电负荷算出对发电煤耗率的影响即:
Δb=[(4474000/29400)*1000] /300000=0.507 g/kw.h
2. 2其它参数不变时,确定再热汽每增加10T/H喷水量(减温水或事故喷水)时蒸汽在炉内吸热的增加值,循环效率设为40%,吸热量减去可利用部分即为热耗的增加值。即: ΔQ吸=(H主汽-H减温水)*D喷水量 代入数据ΔQ吸=(3542-722)*(1-40%)*10000=16920000 kJ/h 折算出对发电煤耗率的影响为:
Δb=[(16920000/29400)*1000] /300000=1.914 g/kw.h 2. 3在其它参数不变时,当主汽流量较设计增加10t/h时,设定循环效率为40%,那么这10 t/h蒸汽在循环中的热量损失为其总焓值乘以循环效率,即:
ΔQ=H主汽*ΔD*Η循环
代入数据:ΔQ=3396*10000*(1-40%)=20376000 kJ/h 折算出对发电煤耗率的影响为: Δb=[(20376000/29400)*1000] /300000=2.3 g/kw.h 3. 结论
总结以上计算及分析数据得到锅炉各重要指标对煤耗的影响情况如下表:
所以,这些量在我们研究锅炉效率时都要十分关注,在调节汽温时,应尽量用燃烧调整的方法,如降低火焰中心、使用烟气挡板或减少烟气量的方法,而尽量避免用减温水。再有要注意监视主汽流量变化,常和设计值或相同炉型进行对比,确保经济运行,平时调节中维持汽温汽压高限运行,也可减少蒸汽量,提高经济性。对于排烟温度、氧量、飞灰可燃物含量应及时检查,当其不正常升高时也应及时查明原因予以消除,以确保锅炉燃烧的经济性。
第三篇:数据结构与算法课程论文
数据结构与算法课程小论文
10计本一班 王晓龙 1004011026 一. 内容概要:
如何合理地组织数据、高效地处理数据是扩大计算机领域、提高软件效率的关键。在软件开发过程中要求“高效地”组织数据和设计“好的”算法,并使算法用程序来实现,通过调试而成为软件,必须具备数据结构领域和算法设计领域的专门知识。
本课程主要学习在软件开发中涉及到的各种常用数据结构及其常用的算法,在此基础上,学习如何利用数据结构和算法解决一些基本的应用问题。通过数据结构的逻辑结构、存储结构、基本算法和相关应用问题来介绍其基本知识和应用知识。
二. 关键字:
数据结构:数据的逻辑结构、数据的存储结构、基本算法;算法分析
三. 课程主要内容和基本原理:
A.数据结构:
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。
(1).分类:
数据元素相互之间的关系称为结构。有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。树形结构和图形结构全称为非线性结构。集合结构中的数据元素除了同属于一种类型外,别无其它关系。线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。在图形结构中每个结点的前驱结点数和后续结点数可以任意多个。
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现。索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。
数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性结构的顺序存储结构是一种随机存取的存储结构,线性表的链式存储结构是一种顺序存取的存储结构。线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。逻辑结构与数据元素本身的形式、内容、相对位置、所含结点个数都无关。(2).四类基本结构:
⑴集合结构。该结构的数据元素间的关系是“属于同一个集合”。⑵线性结构。该结构的数据元素之间存在着一对一的关系。⑶树型结构。该结构的数据元素之间存在着一对多的关系。
⑷图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要素。一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示。
(3).常用的数据结构:
a.数组: 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。b.栈:
是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。c.队列:
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。d.链表:
是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。e.树:
是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足以下条件:
(1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
(3)K中各结点,对关系N来说可以有m个后继(m>=0)。f.图:
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。g.堆: 在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。h.散列表:
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。B.算法分析:
算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。算法是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较。
四.心得体会:
在做完这次课程论文后,让我再次加深了对数据结构与算法的理解,对数据结构的构建也有更深层次的体会。算法的每一次改进和提高,都凝聚着人类的智慧和辛勤劳动,每一次创新都给人类带来了巨大的进步。数据结构与先进的算法能够合理地组织数据、高效地处理数据,扩大计算机的应用领域,提高软件的效率。这充分体现了其重要意义。
五. 参考文献:
数据结构与算法王昆仑,李红
第四篇:多种最小二乘算法分析+算法特点总结
第一部分:程序设计思路、辨识结果分析和算法特点总结................................................2 一:RLS遗忘因子法.................................................................................................2 RLS遗忘因子法仿真思路和辨识结果.................................................................2 遗忘因子法的特点:..........................................................................................3 二:RFF遗忘因子递推算法.......................................................................................4 仿真思路和辨识结果..........................................................................................4 遗忘因子递推算法的特点:................................................................................5 三:RFM限定记忆法..................................................................................................5 仿真思路和辨识结果..........................................................................................5 RFM限定记忆法的特点:....................................................................................7 四:RCLS偏差补偿最小二乘法..................................................................................7 仿真思路和辨识结果..........................................................................................7 RCLS偏差补偿最小二乘递推算法的特点:..........................................................9 五:增广最小二乘法.................................................................................................9 仿真思路和辨识结果..........................................................................................9 RELS增广最小二乘递推算法的特点:................................................................11 六:RGLS广义最小二乘法.......................................................................................12 仿真思路和辨识结果........................................................................................12 RGLS广义最小二乘法的特点:.........................................................................14 七:RIV辅助变量法................................................................................................14 仿真思路和辨识结果........................................................................................14 RIV辅助变量法的特点:..................................................................................16 八:Cor-ls相关最小二乘法(二步法)..................................................................17 仿真思路和辨识结果........................................................................................17 Cor-ls相关最小二乘法(二步法)特点:........................................................18 九:MLS多级最小二乘法.........................................................................................19 仿真思路和辨识结果........................................................................................19 MLS多级最小二乘法的特点:...........................................................................22 十:yule_walker辨识算法.....................................................................................23 仿真思路和辨识结果........................................................................................23 yule_walker辨识算法的特点:.......................................................................24 第二部分:matlab程序..................................................................................................24 一:RLS遗忘因子算法程序.....................................................................................24 二:RFF遗忘因子递推算法.....................................................................................26 三:RFM限定记忆法................................................................................................28 四:RCLS偏差补偿最小二乘递推算法......................................................................31 五:RELS增广最小二乘的递推算法.........................................................................33 六;RGLS 广义最小二乘的递推算法..........................................................................36 七:Tally辅助变量最小二乘的递推算法................................................................39 八:Cor-ls相关最小二乘法(二步法)..................................................................42 九:MLS多级最小二乘法.........................................................................................45 十yule_walker辨识算法........................................................................................49
第一部分:程序设计思路、辨识结果分析和算法特点总结
一:RLS遗忘因子法
RLS遗忘因子法仿真思路和辨识结果
仿真对象如下:
其中,v(k)为服从N(0,1)分布的白噪声。输入信号u(k)采用M 序列,幅度为 1。M 序列由 9 级移位寄存器产生,x(i)=x(i-4)⊕x(i-9)。选择如下辨识模型:
加权阵取Λ = I。
衰减因子β = 0.98,数据长度 L = 402。辨识结果与理论值比较,基本相同。辨识结果可信: Estimate =-1.4666 0.6503 0.9736 0.3035 遗忘因子法的特点:
对老数据加上遗忘因子,以降低老数据对辨识的影响,相对增加新数据对辨识的影响,不会出现“数据饱和”现象。如模型噪声是有色噪声,则Ø是有偏估计量。常用作其他辨识方式的起步,以获得其他方式的初始值。
二:RFF遗忘因子递推算法 仿真思路和辨识结果
辨识模型与遗忘因子法所用模型相同。
其中,0 ≤µ≤1为遗忘因子,此处取0.98。始条件:
参数a1 a2 b1 b2的估计值: ans =-1.4977 0.6863 1.1903 0.4769 待估参数变化过程如图所示:
数据长度L=402,初
遗忘因子递推算法的特点:
从上面两个例子可以看出对于相同的仿真对象,一次算法和递推算法结果基本一致,但递推算法可以实现在线实时辨识,而且可以减少计算量和存储量。
三:RFM限定记忆法 仿真思路和辨识结果
辨识模型与遗忘因子法所用模型相同。
辨识结果与理论值比较,基本相同。辨识结果可信: 参数 a1 a2 b1 b2 的估计值为: Theta_a =-1.5128 0.7099 0.8393 0.4416 待估参数的过渡过程如下:
RFM限定记忆法的特点:
辨识所使用的数据长度保持不变,每增加一个新数据就抛掉一个老数据,使参数估计值始终只依赖于有限个新数据所提供的新消息,克服了遗忘因子法不管多老的数据都在起作用的缺点,因此该算法更能有效的克服数据饱和现象。
四:RCLS偏差补偿最小二乘法 仿真思路和辨识结果
辨识模型与遗忘因子法所用模型相同。
辨识结果与理论值比较,基本相同。辨识结果可信: 参数a1 a2 b1 b2的估计值为: ans =-1.4916
0.7005 1.0365 0.4271
RCLS偏差补偿最小二乘递推算法的特点:
算法思想::在最小二乘参数估计值的基础上,引进补偿项σW2C-1D Ø0,则获得了参数的无偏估计。针对模型噪声来说,RCLS算法的适应能力比RLS更好。
五:增广最小二乘法 仿真思路和辨识结果
考虑如下仿真对象:
其中,为服从N(0,1)分布的白噪声。输入信号采用 M 序列,幅度为 1。M 序列由 9 级移位寄存器产生,x(i)=x(i-4)⊕x(i-9)。
选择如下的辨识模型:
观测数据长度取L =402。加权阵取Λ=I。
辨识结果与理论值比较,基本相同,同时又能获得噪声模型的参数估计。辨识结果可信:
参数a1、a2、b1、b2、d1、d2估计结果:
ans =-1.5000 0.7000 1.0001 0.5002-0.9999 0.2000
RELS增广最小二乘递推算法的特点:
增广最小二乘的递推算法对应的噪声模型为滑动平均噪声,扩充了参数向量和数据向量H(k)的维数,把噪声模型的辨识同时考虑进去。最小二乘法只能获得过程模型的参数估计,而增广最小二乘法
同时又能获得噪声模型的参数估计,若噪声模型为平均滑动模型,则只能用RELS算法才能获得无偏估计。当数据长度较大时,辨识精度低于极大似然法。
六:RGLS广义最小二乘法 仿真思路和辨识结果
模型结构选择:
模型结构选用:
其中,各个参数的真值为:
广义最小二乘算法为:
辨识结果与理论值比较,基本相同,同时又能获得噪声传递系数的参数估计。辨识结果可信: 参数a1 a2 b1 b2的估计结果: ans =-1.5058 0.6972 0.9316 0.4833
噪声传递系数c1 c2的估计结果: ans = 0.6203 0.2210
RGLS广义最小二乘法的特点:
该算法用于自回归输入模型,是一种迭代的算法。其基本思想是基于对数据先进行一次滤波处理,后利用普通最小二乘法对滤波后的数据进行辨识,进而获得无偏一致估计。但是当过程的输出信噪比比较大或模型参数较多时,这种数据白色化处理的可靠性就会下降,辨识结果往往会是有偏估计。数据要充分多,否则辨识精度下降。模型阶次不宜过高。初始值对辨识结果有较大影响。
七:RIV辅助变量法 仿真思路和辨识结果
辨识模型与遗忘因子法所用模型相同,只不过此处噪声为有色噪声,产生过程为:e(k)=v(k)+0.5v(k-1)+0.2v(k-2),v(k)为0均值的不相关随机噪声。
按照Tally法选取辅助变量x(k)=z(k-nd), nd为误差传递函数的阶数,此处为2.则有
辅助变量法的递推公式可写成:
辨识结果与理论值比较,基本相同。辨识结果可信: 参数a1 a2 b1 b2的估计结果: ans =-1.5314 0.7461 0.9999 0.4597
RIV辅助变量法的特点:
适当选择辅助变量,使之满足相应条件,参数估计值就可以是无偏一致。估计辅助变量法的计算量与最小二乘法相当,但辨识效果却比最小二乘法好的多。尤其当噪声是有色的,而噪声的模型结构又不好确定时,增广最小二乘法和广义最小二乘法一般都不好直接应用,因为他们需要选用特定的模型结构,而辅助变量法不需要确定噪声的模型结构,因此辅助变量法就显得更为灵活,但辅助变量法不能同时获得噪声模型的参数估计。
八:Cor-ls相关最小二乘法(二步法)仿真思路和辨识结果
辨识模型与遗忘因子法所用模型相同:,e(k)=v(k)+0.5v(k-1)+0.2v(k-2),v(k)为0均值的不相关随机噪声。Cor-ls的递推公式可写成:
其中:M(k)为输入M序列。初始条件:,辨识结果与理论值比较,基本相同,辨识结果可信: 参数a1 a2 b1 b2的估计结果: ans =-1.4896
0.6858 1.0168 0.4362
Cor-ls相关最小二乘法(二步法)特点:
把辨识分成两步进行:第一步:利用相关分析法获得对象的非参数模型(脉冲响应或相关函数);第二步:利用最小二乘法、辅助变量法或增广最小二乘法等,进一步求的对象的参数模型。如果模型噪声与输入无关,则Cor-ls相关最小二乘法(二步法)可以得到较好的辨识结果。Cor-ls相关最小二乘法(二步法)实质上是先对数据进行一次相关分析,滤除了有色噪声的影响,再利用最小二乘法必然就会改善辨识结果。能适应较宽广的噪声范围,计算量不大,初始值
对辨识结果影响较小。但要求输入信号与噪声不相关。
九:MLS多级最小二乘法 仿真思路和辨识结果
仿真对象如下:
其中,u(k)是输入变量,此处为 M 序列;v(k)是零均值、方差为 1 的不相关随机噪声,通过控制λ的大小来控制信噪比。辨识模型结构选用:
其中,辨识过程如下:
第一级,辅助模型参数辨识 原模型可写为:
利用最小二乘法可获得辅助模型的参数无偏一致估计值:
数据长度 L=400,第二级,过程模型参数辨识:
根据最小二乘算法可以获得过程模型的参数估计值为:
第三级,噪声模型参数辨识:
根据最小二乘算法可以获得过程模型的参数估计值为
辨识结果与理论值比较,基本相同。辨识结果可信:
第一级 辅助模型参数 e1 e2 e3 e3 e4 f1 f2 f3 f4 辨识结果: E = 1.9062 1.4454 0.5279 0.0613-0.0026 0.7988-0.8694-1.3037-0.6318
第二级 过程模型参数 a1 a2 a3 b1 b2 辨识结果: E2 = 0.9304 0.1596 0.0113 0.7998-1.6502 第三级 噪声模型参数 c1 c2 辨识结果: E3 = 0.9750 0.3824 MLS多级最小二乘法的特点:
当信噪比较大时,采用广义最小二乘法可能会出现多个局部收敛点,解决这个问题的方法可用多级最小二乘法,一般来说多级最小二乘法包含三级辨识过程。利用输入输出数据,通过多级最小二乘法,可分别求的辅助模型,过程模型和噪声模型的参数估计值。在高噪声的情况下,多级最小二乘法明显优于广义最小二乘法,其收敛点唯一。
十:yule_walker辨识算法 仿真思路和辨识结果
仿真对象如下:,z(k)是可观测变量;v(k)是均值为零,方差为 1 的不相关随机噪声;数据长度取 L=1024。相关函数按下式计算 :
参数的估计算法按下式计算:
辨识结果与理论值比较,基本相同,同时又能获得噪声模型的参数估计。辨识结果可信: 辨识结果为: Theta = 0.8597 0.2955
-0.0034 d = 1.0025 yule_walker辨识算法的特点:
yule_walker辨识算法可以方便的辨识形如估计值。的参数第二部分:matlab程序
一:RLS遗忘因子算法程序
clear clc %========================================== %最小二乘法辨识对象
% Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+v(k)%==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%初始值 n=403;%n为脉冲数目 M=[];%存放M序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);
for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end;%产生高斯白噪声 v=randn(1,400);z=[];z(1)=-1;z(2)=0;u=0.98;% 遗忘因子 L=400;for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i-2);zstar(i)=z(i)*u^(L-i+2);end H=zeros(400,4);for i=1:400 H(i,1)=-z(i+1)*u^(L-i);H(i,2)=-z(i)*u^(L-i);H(i,3)=M(i+1)*u^(L-i);H(i,4)=M(i)*u^(L-i);
end Estimate=inv(H'*H)*H'*(zstar(3:402))' 二:RFF遗忘因子递推算法
%最小二乘遗忘因子的递推算法仿真对象
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+v(k)%======================================== clear clc %==========400 个产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声=========
v=randn(1,400);%==============产生观测序列z================= z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i-2);end %==============递推求解================= P=10*eye(4);%估计方差
Theta=zeros(4,401);%参数的估计值,存放中间过程估值 Theta(:,1)=[0.001;0.001;0.001;0.001];K=zeros(4,400);%增益矩阵 K=[10;10;10;10];u=0.98;%遗忘因子 for i=3:402 h=[-z(i-1);-z(i-2);M(i-1);M(i-2)];K=P*h*inv(h'*P*h+u);Theta(:,i-1)=Theta(:,i-2)+K*(z(i)-h'*Theta(:,i-2));P=(eye(4)-K*h')*P/u;end %==========================输出结果及作图
============================= disp('参数a1 a2 b1 b2的估计值:')Theta(:,401)i=1:401;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:))title('待估参数过渡过程')三:RFM限定记忆法
%限定记忆最小二乘的递推算法辨识对象
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+v(k)%======================================== clear clc %==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2
x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声========= v=randn(1,402);%==============产生观测序列z================= z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i);end %递推求解
P_a=100*eye(4);%估计方差 Theta_a=[3;3;3;3];L=20;%记忆长度
for i=3:L-1 %利用最小二乘递推算法获得初步参数估计值和P阵
h=[-z(i-1);-z(i-2);M(i-1);M(i-2)];K=P_a*h*inv(h'*P_a*h+1);Theta_a=Theta_a+K*(z(i)-h'*Theta_a);
P_a=(eye(4)-K*h')*P_a;end for k=0:380 hL=[-z(k+L-1);-z(k+L-2);M(k+L-1);M(k+L-2)];%增加新数据的信息
K_b=P_a*hL*inv(1+hL'*P_a*hL);Theta_b=Theta_a+K_b*(z(k+L)-hL'*Theta_a);P_b=(eye(4)-K_b*hL')*P_a;
hk=[-z(k+L);-z(k+L-1);M(k+L);M(k+L-1);];%去掉老数据的信息 K_a=P_b*hk*inv(1+hk'*P_b*hk);Theta_a=Theta_b-K_a*(z(k+L+1)-hk'*Theta_b);P_a=(eye(4)+K_a*hk')*P_b;Theta_Store(:,k+1)=Theta_a;end
%========================输出结果及作图=========================== disp('参数 a1 a2 b1 b2 的估计值为:')Theta_a i=1:381;figure(1)
plot(i,Theta_Store(1,:),i,Theta_Store(2,:),i,Theta_Store(3,:),i,Theta_Store(4,:))title('待估参数过渡过程')四:RCLS偏差补偿最小二乘递推算法
%偏差补偿最小二乘的递推算法辨识对象
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+v(k)%======================================== clear clc %==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end
%===========产生均值为0,方差为1 的正态分布噪声========= v=random('Normal',0,1,1,400);%==============产生观测序列z================= z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+v(i-2);end %===================递推求解================== %赋初值
P=100*eye(4);%估计方差
Theta=zeros(4,401);%参数的估计值,存放中间过程估值 Theta(:,1)=[3;3;3;3];K=[10;10;10;10];%增益 J=0;ThetaC=zeros(4,401);%偏差补偿后的估计值 ThetaC(:,1)=[2;3;1;3.5];D=[1 0 0 0;0 1 0 0;0 0 0 0;0 0 0 0];for i=3:402 h=[-z(i-1);-z(i-2);M(i-1);M(i-2)];J=J+(z(i-1)-h'*Theta(:,i-1))^2/(1+h'*P*h);
K=P*h*inv(h'*P*h+1);Theta(:,i-1)=Theta(:,i-2)+K*(z(i)-h'*Theta(:,i-2));P=(eye(4)-K*h')*P;end es=J/((i-1)*(1+(ThetaC(:,i-2))'*D*Theta(:,i-1)));ThetaC(:,i-1)=Theta(:,i-1)+(i-1)*es*P*D*ThetaC(:,i-2);%==============输出参数估计结果及作图================ disp('参数a1 a2 b1 b2的估计值为:')Theta(:,401)i=1:401;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:))title('待估参数过渡过程')
五:RELS增广最小二乘的递推算法
%增广最小二乘的递推算法辨识对象
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)-v(k+1)+0.2*v(k)%======================================== clear clc
%==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声========= v=randn(1,402);%==============产生观测序列z================= z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:402 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)-v(i-1)+0.2*v(i-2);end
%递推求解
P=100*eye(6);%估计方差
Theta=zeros(6,401);%参数的估计值,存放中间过程估值 Theta(:,1)=[3;3;3;3;3;3];% K=zeros(4,400);%增益矩阵 K=[10;10;10;10;10;10];for i=3:402 h=[-z(i-1);-z(i-2);M(i-1);M(i-2);v(i-1);v(i-2)];K=P*h*inv(h'*P*h+1);Theta(:,i-1)=Theta(:,i-2)+K*(z(i)-h'*Theta(:,i-2));P=(eye(6)-K*h')*P;end %========================= disp('参数a1、a2、b1、b2、d1、d2估计结果:')Theta(:,401)i=1:401;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:),i,Theta(5,:),i,Theta(6,:))title('待估参数过渡过程')
六;RGLS 广义最小二乘的递推算法
%广义最小二乘的递推算法仿真模型
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+e(k)%e(k+2)+2.1*e(k+1)-2.5*e(k)=v(k+2)%======================================== clear clc %==========400 个产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声========= v=randn(1,400);e=[];e(1)=v(1);e(2)=v(2);
for i=3:400 e(i)=0*e(i-1)+0*e(i-2)+v(i);end %==============产生观测序列z================= z=zeros(400,1);z(1)=-1;z(2)=0;for i=3:400 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+e(i);end %变换后的观测序列 zf=[];zf(1)=-1;zf(2)=0;for i=3:400 zf(i)=z(i)-0*z(i-1)-0*z(i-2);end %变换后的输入序列
uf=[];uf(1)=M(1);uf(2)=M(2);for i=3:400 uf(i)=M(i)-0*M(i-1)-0*M(i-2);end
%赋初值
P=100*eye(4);%估计方差
Theta=zeros(4,400);%参数的估计值,存放中间过程估值 Theta(:,2)=[3;3;3;3];K=[10;10;10;10];%增益 PE=10*eye(2);ThetaE=zeros(2,400);ThetaE(:,2)=[0.5;0.3];KE=[10;10];%递推Theta for i=3:400 h=[-zf(i-1);-zf(i-2);uf(i-1);uf(i-2)];K=P*h*inv(h'*P*h+1);Theta(:,i)=Theta(:,i-1)+K*(z(i)-h'*Theta(:,i-1));P=(eye(4)-K*h')*P;end he=[-e(i-1);-e(i-2)];%递推ThetaE KE=PE*he*inv(1+he'*PE*he);ThetaE(:,i)=ThetaE(:,i-1)+KE*(e(i)-he'*ThetaE(:,i-1));PE=(eye(2)-KE*he')*PE;%=====================输出结果及作图
========================= disp('参数a1 a2 b1 b2的估计结果:')Theta(:,400)disp('噪声传递系数c1 c2的估计结果:')ThetaE(:,400)i=1:400;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:))title('待估参数过渡过程')七:Tally辅助变量最小二乘的递推算法
%Tally辅助变量最小二乘的递推算法
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+e(k),e(k)为有色噪声
%e(k)=v(k)+0.5*v(k-1)+0.2*v(k-2),v(k)为零均值的不相关随机噪声
%======================================== clear clc %==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目
M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声========= v=randn(1,400);e=[];e(1)=0.3;e(2)=0.5;for i=3:400 e(i)=v(i)+0.5*v(i-1)+0.2*v(i-2);end %==============产生观测序列z================= z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:400
z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+e(i);end %递推求解
P=100*eye(4);%估计方差
Theta=zeros(4,400);%参数的估计值,存放中间过程估值 Theta(:,1)=[3;3;3;3];Theta(:,2)=[3;3;3;3];Theta(:,3)=[3;3;3;3];Theta(:,4)=[3;3;3;3];% K=zeros(4,400);%增益矩阵 K=[10;10;10;10];for i=5:400 h=[-z(i-1);-z(i-2);M(i-1);M(i-2)];hstar=[-z(i-2-1);-z(i-2-2);M(i-1);M(i-2)];%辅助变量 %递推算法
K=P*hstar*inv(h'*P*hstar+1);Theta(:,i)=Theta(:,i-1)+K*(z(i)-h'*Theta(:,i-1));P=(eye(4)-K*h')*P;end %==================结果输出及作图=================== disp('参数a1 a2 b1 b2的估计结果:')Theta(:,400)
i=1:400;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:))title('待估参数过渡过程')八:Cor-ls相关最小二乘法(二步法)
%两步法的递推算法
%Z(k+2)=1.5*Z(k+1)-0.7*Z(k)+u(k+1)+0.5*u(k)+e(k),e(k)为零均值的不相关随机噪声
%e(k)=v(k)+0.5*v(k-1)+0.2*v(k-2)%======================================== clear clc %==========产生M序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=403;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);
end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声========= v=randn(1,400);e=[];e(1)=0.3;e(2)=0.5;for i=3:400 e(i)=v(i)+0.5*v(i-1)+0.2*v(i-2);end %==============产生观测序列z=========== z=zeros(402,1);z(1)=-1;z(2)=0;for i=3:400 z(i)=1.5*z(i-1)-0.7*z(i-2)+M(i-1)+0.5*M(i-2)+e(i);end %递推求解
P=100*eye(4);%估计方差
Theta=zeros(4,400);%参数的估计值,存放中间过程估值 Theta(:,1)=[3;3;3;3];
Theta(:,2)=[3;3;3;3];Theta(:,3)=[3;3;3;3];Theta(:,4)=[3;3;3;3];K=zeros(4,400);%增益矩阵 K=[10;10;10;10];for i=5:400 h=[-z(i-1);-z(i-2);M(i-1);M(i-2)];hstar=[M(i-1);M(i-2);M(i-3);M(i-4)];%辅助变量 %递推
K=P*hstar*inv(h'*P*hstar+1);Theta(:,i)=Theta(:,i-1)+K*(z(i)-h'*Theta(:,i-1));P=(eye(4)-K*h')*P;end %==================结果输出及作图=================== disp('参数a1 a2 b1 b2的估计结果:')Theta(:,400)i=1:400;figure(1)plot(i,Theta(1,:),i,Theta(2,:),i,Theta(3,:),i,Theta(4,:))title('待估参数过渡过程')
九:MLS多级最小二乘法
clear clc %========================================== % Z(k+3)=-0.9*Z(k+2)-0.15*Z(k+1)-0.02*z(k)+0.7*u(k+2)-1.5*u(k+1)+e(k)%e(k+2)+1.0*e(k+1)+0.41*e(k)=r*v(k+2)%==========产生M 序列作为输入=============== x=[0 1 0 1 1 0 1 1 1];%initial value n=405;%n为脉冲数目 M=[];%存放M 序列 for i=1:n temp=xor(x(4),x(9));M(i)=x(9);for j=9:-1:2 x(j)=x(j-1);end x(1)=temp;end %===========产生均值为0,方差为1 的高斯白噪声============= v=randn(1,405);
e=[];e(1)=0.3;e(2)=0.7;r=0.9;%控制信噪比 for i=3:405 e(i)=-1.0*e(i-1)-0.41*e(i-2)+r*v(i);end %=================产生观测序列=================== z=[];z(1)=-1;z(2)=0;z(3)=1.5;for i=4:405 z(i)=-0.9*z(i-1)-0.15*z(i-2)-0.02*z(i-3)+0.7*M(i-1)-1.5*M(i-2)+e(i);end %================第一级辨识 辅助模型参数辨识================== H=zeros(400,9);for i=1:400 H(i,1)=-z(i+4);H(i,2)=-z(i+3);
H(i,3)=-z(i+2);H(i,4)=-z(i+1);H(i,5)=-z(i);H(i,6)=M(i+4);H(i,7)=M(i+3);H(i,8)=M(i+2);H(i,9)=M(i+1);end disp('第一级 辅助模型参数 e1 e2 e3 e3 e4 f1 f2 f3 f4 辨识结果:')E=inv(H'*H)*H'*(z(6:405))' e1=E(1);e2=E(2);e3=E(3);e4=E(4);e5=E(5);f1=E(6);f2=E(7);f3=E(8);f4=E(9);%=================第二级辨识 过程模型参数辨识====================
z2=[f1;f2;f3;f4;0;0;0];H2=[ 0 0 0 1 0;
-f1 0 0 e1 1;
-f2-f1 0 e2 e1;
-f3-f2-f1 e3 e2;
-f4-f3-f2 e4 e3;
0-f4-f3 e5 e4;
0 0-f4 0 e5;];
disp('第二级 过程模型参数 a1 a2 a3 b1 b2 辨识结果:')E2=inv(H2'*H2)*H2'*z2 a1=E2(1);a2=E2(2);a3=E2(3);b1=E2(4);
b2=E2(5);%================第三级辨识 噪声模型参数辨识======================= z3=[e1-a1;e2-a2;e3-a3;e4;e5;f2-b2;f3;f4];H3=[1 0;a1 1;a2 a1;a3 a2;0 a3;b1 0;b2 b1;0 b2;];disp('第三级 噪声模型参数 c1 c2 辨识结果:')E3=inv(H3'*H3)*H3'*z3 十yule_walker辨识算法
%Yule-Walker 辨识算法
%辨识模型:z(k)=-0.9*z(k-1)-0.36*z(k-2)-0.054*z(k-3)+v(k)%============== %产生随机噪声
v=random('Normal',0,1,1,1024);%均值为零,方差为 1
%产生观测序列 z=[];z(1)=0;z(2)=1;z(3)=1.5;for i=4:1024 z(i)=-0.9*z(i-1)-0.36*z(i-2)-0.054*z(i-3)+v(i);end %计算 z(k)的自相关函数 Rz0=0;Rz1=0;Rz2=0;Rz3=0;for i=1:1024 Rz0=Rz0+z(i)^2;end Rz0=Rz0/1024;for i=1:1023 Rz1=Rz1+z(i+1)*z(i);end Rz1=Rz1/1024;for i=1:1022
第五篇:论文抄袭检测算法及修改
论文抄袭检测算法:
1.论文的段落与格式
论文检测基本都是整篇文章上传,上传后,论文检测软件首先进行部分划分,上交的最终稿件格式对抄袭率有很大影响。不同段落的划分可能造成几十个字的小段落检测不出来。因此,我们可以通过划分多的小段落来降低抄袭率。
2.数据库
论文检测,多半是针对已发表的毕业论文,期刊文章,还有会议论文进行匹配的,有的数据库也包含了网络的一些文章。这里给大家透露下,很多书籍是没有包含在检测数据库中的。之前朋友从一本研究性的著作中摘抄了大量文字,也没被查出来。就能看出,这个方法还是有效果的。
3.章节变换
很多同学改变了章节的顺序,或者从不同的文章中抽取不同的章节拼接而成的文章,对抄袭检测的结果影响几乎为零。所以论文抄袭检测大师建议大家不要以为抄袭了几篇文章,或者几十篇文章就能过关。
4.标注参考文献
参考别人的文章和抄袭别人的文章在检测软件中是如何界定的。其实很简单,我们的论文中加了参考文献的引用符号,但是在抄袭检测软件中。都是统一看待,软件的阀值一般设定为1%,例如一篇文章有5000字,文章的1%就是50字,如果抄袭了多于50,即使加了参考文献,也会被判定为抄袭。
5.字数匹配
论文抄袭检测系统相对比较严格,只要多于20单位的字数匹配一致,就被认定为抄袭,但是前提是满足第4点,参考文献的标注。
论文查重修改技巧大全:
方法一:外文文献翻译法
查阅研究领域外文文献,特别是高水平期刊的文献,比如Science,Nature,WaterRes等,将其中的理论讲解翻译成中文,放在自己的论文中。
优点:
1、每个人语言习惯不同,翻译成的汉语必然不同。因此即使是同一段文字,不同人翻译了之后,也 不会出现抄袭的情况。
2、外文文献的阅读,可以提升自身英语水平,拓展专业领域视野。
缺点:英文不好特别是专业英文不好的同学实施起来比较费劲。
方法二:变化措辞法
将别人论文里的文字,或按照意思重写,或变换句式结构,更改主被动语态,或更换关键词,或通过增减。当然如果却属于经典名句,还是按照经典的方法加以引用。
优点:1.将文字修改之后,按照知网程序和算法,只要不出现连续13个字重复,以及关键词的重复,就不会被标红。2.对论文的每字每句都了如指掌,烂熟于心,答辩时亦会如鱼得水。
缺点:逐字逐句的改,费时费力。
方法三:减头去尾,中间换语序
将别人论文里的文字,头尾换掉中间留下,留下的部分改成被动句,句式和结构就会发生改变,再自行修改下语病后,即可顺利躲过论文查重。
优点:方便快捷,可以一大段一大段的修改。
缺点中文没学好的,会很费劲,要想半天。
方法四:转换图片法
将别人论文里的文字,截成图片,放在自己的论文里。因为知网论文查重系统目前只能查文字,而不能查图片和表格,因此可以躲过论文查重。
优点:比改句序更加方便快捷。
缺点:用顺手了容易出现整页都是图片的情况,会影响整个论文的字数统计。方法五:插入文档法
将某些参考引用来的文字通过word文档的形式插入到论文中。
优点:此法比方法四更甚一筹,因为该方法日后还可以在所插入的文档里进行重新编辑,而图片转换法以后就不便于再修改了。
缺点:还没发现。
方法六:插入空格法
将文章中所有的字间插入空格,然后将空 格 字 间距调到最小。因为论文查重的根据是以词为基础的,空格切断了词语,自然略过了论文查重系统。
优点:从论文查重系统的原理出发,可靠性高。
缺点:工作量极大,课可以考虑通过宏完成,但宏的编制需要研究。
方法七:自己原创法
自己动手写论文,在写作时,要么不原文复制粘贴;要么正确的加上引用。
优点:基本上绝对不会担心论文查重不通过,哪怕这个查重系统的阈值调的再低。缺点:如果说优缺点的话,就是写完一篇毕业论文,可能会死掉更多的脑细胞。论文查重修改的规律:
论文查重是一个匹配的过程,是以句为单位,如果一句话重复了,就很容易判定重复了,所以:
1)如果的确是经典的句子,就用上标的尾注的方式,在参考文献中表达出来。
2)如果是一般的引用,就采用罗嗦法,将原句中省略的主语、谓语、等等添加全,反正哪怕多一个字,就是胜利。
3)也可以采用横刀法,将一些句子的成分,去除,用一些代词替代。
4)或者是用洋鬼子法,将原文中的洋名,是中文的,就直接用英文,是英文的直接用中文,或是中文的全姓名,就用中文的名,如果是中文的名,就找齐了,替换成中文的姓名。
5)故意在一些缩写的英文边上,加上(注释)(画蛇添足法),总之,将每句话都可以变化一下,哪怕增加一个字或减少一个字,都是胜利了。
6)如果是引用,在引用标号后,不要轻易使用句号,如果写了句号,句号后面的就是剽窃了(尽管自已认为是引用),所以,引用没有结束前,尽量使用分号。有些人将引用的上标放在了句号后面,这是不对的,应该在句号之前。
7)可以将文字转换为表格、表格基本是论文查重不了的,文字变成图形、表格变成图形,一目了然,绝对不会检查出是重复剽窃了。