第4讲 免疫算法概要

第4讲  免疫算法概要
第4讲  免疫算法概要

第4讲免疫算法

学习目的:了解和掌握免疫算法的基本思想和流程,解决优化等实际问题

学校要点:一般免疫算法、免疫克隆选择算法、免疫网络算法,免疫调度算法,其他改进的免疫算法。免疫算法在调度等优化问题方面的应用。

内容概述:免疫算法没有统一的模式,即使在生物学基础上也不是统一的。它与遗传算法等传统自然计算或计算智能方法的差别在于,遗传算法、人工神经网络等方法是基于单一的生物学理论而发展,比如进化论、人脑的神经网络结构。而免疫算法的生物学基础是多样的,比如免疫网络、克隆选择理论、阴性选择等,基于这些免疫学理论或机制已经开发出多种形式的算法模型。它是人工免疫系统的主要研究内容,也是免疫计算的主要形式。免疫算法是面向问题的方法,因此从人工免疫系统发展以来,已经有许多用于不同领域的免疫算法开发出来[3][4][5][6][7],多数利用免疫系统的某一方面机制或原理设计新算法,或者改进现有技术。所依据的原理基本是传统的免疫学理论,因此免疫算法从启发源角度大致大致可以分为三类:免疫网络模型(分连续和离散两种形式)、克隆选择、阴性选择。代表性的主要有一般免疫算法[8]、早期的骨髓模型[9]、De Castro提出的克隆选择算法[10]、Forrest提出阴性选择算法[11],De Castro提出的人工免疫网络算法(aiNet)等[12]。此外,文献[13]中提出了B细胞算法,文献[14]最早提出了基于疫苗概念的免疫算法。文献[15][16]分别对免疫算法进行了较为深入的研究。多数免疫算法都是针对优化问题展开研究,具体见第9、10章。

上述免疫算法可进一步分为两类:基于群体的和基于网络的。第一类包括所有不考虑免疫网络的免疫算法,如阴性选择、克隆选择算法等,基于网络的算法是所有受免疫系统网络理论启发的算法。一般免疫算法本质上是基于网络的算法。

图4.1 免疫算法与搜索算法

4.1 一般免疫算法

一般免疫算法描述

定义7.1 一般免疫算法是基于免疫网络理论而开发的一种优化算法。

与遗传算法在算子设计上有类似之处。其基本要素和流程等可以描述如下:

),,,,,,,,,(τζΩB A ∑M S f G IA

∑:搜索空间(形态空间)(抗体 );

G :表示空间 (抗体抗原表示方法);

A :抗体集合;

B :抗原集合;

f :亲合力函数;

S :相似度函数;

M :记忆机制;

Ω:免疫算子(变异、重组等);

ζ:选择百分比;

τ:终止条件。

在使用免疫算法解决问题时,一般各个步骤有对应形式:抗原对应要解决问题数据输入如目标、约束;抗体对应优化问题的最优解;亲合力对应解的评估、结合强度的评估;记忆细胞分化对应保留优化解,抗体促进和抑制对应优化解促进,非优化解的删除等;抗体产生对应优化解的出现等。对应内容因解决问题对象不同而内容各异。

为了叙述算法方便,定义B 为输入抗原;A 为包含有n 个网络单元(抗体)的集合;A M ∈为N 个记忆单元;Af 为抗原、抗体之间的亲合力向量函数;S 为抗体抗体之间的相似度矩阵;ζ为选择成熟分子的比率;ds σ为相对自然死亡或衰减的阈值。

则算法具体过程描述如下[18]:

1.抗原输入

输入待解问题抗原,抗原输入一般将目标函数和各种约束作为算法的抗原B

2.产生初始抗体群体()A t

3.计算亲合力

群体未变,分别计算抗原和抗体之间的亲合力及抗体和抗体之间的相似度。抗体和抗体相似度的度量一般采用解空间中的距离:

||||,1,2,...,ij i j s a a i n =-= (4.1)

12|,,...,|n Af Af Af Af = (4.2)

4.记忆细胞分化

更新记忆单元选择ζ%个与抗原的亲合性高的抗体加入到记忆单元中。由于记忆单元数目有

限,清除那些与抗原亲合力低于ds σ 以及较大密度的记忆单元(抗体的自然死亡)

5.抗体促进和抑制

6.抗体产生 ()A t →Ω→(1)A t +

7.终止条件一般设置为最大迭代次数或求解精度或者二者的结合,获得问题解

图4.2 一般免疫算法

第2步中,初始抗体通常是在解空间中用随机的方法产生。与进化算法相似,一般需要对抗体进行编码,并且遵循完备性、健全性、和非冗余性要求。

第3步中,比如二进制编码情况,一般采用海明距离表示,实数编码采用欧氏距离等,其他各种距离方法可参见第15章。抗原和抗体之间的亲合力则采用抗体对抗原的适应程度(即候选解和目标函数的匹配程度).

其中步骤4中定义抗体记忆矩阵与抗原的平均适应度为

∑==n i i Af

M AAf 1)( (4.3)

因此,

))(())1((t M AAf t M AAf ≥+ (4.4)

第5步中,高亲合力抗体受到促进,高浓度抗体受到抑制。群体分化产生新抗体。一般来讲,与抗原亲合性高的抗体和低密度的抗体生存机率较大,但是,为了有利于优化过程的进行,某些与抗原有较高亲合性的抗体也必须受到抑制,从而体现了抗体克隆控制机制的多样性。可以再随机产生新的抗体,也可以通过变异和交叉产生进入下一代的抗体,并将M 加入新抗体群落,祛除那些亲合力低于的记忆单元。

第6步通过交叉等算子变异产生多种抗体。

上述步骤5、6实现了对抗体产生过程的控制,如果步骤6没有采用遗传操作,则该一般免疫算法仅体现免疫网络理论;若通过变异和交叉产生新的抗体,则是进化算法的改进

[18]。

在上述算法中,如果抗体也采用类似进化算法的编码方法,而且新抗体的产生也主要通过交叉和变异来实现,则同样有类似进化算法的模板理论[18]:

)]((*)(1

)(1[)(),()1,(S Af G P P S O l S P Af S Af t S t S s m C ?----≥+δξξ (4.5) 式中,S 为抗体模式,l 为模式长度,O 为模式阶,δ为模式的定义距,Af 为抗体与抗原的亲合力,c P 为交叉概率,m P 为变异概率,为抗体选择时因为保持多样性而促进或抑制时形成的选择概率,G 为与亲合力有关的函数。

在应用中,根据具体问题,研究人员对上述免疫算法进行不同的改进或变化,比如与遗传算法结合,利用遗传算子产生多样抗体等,以符合解决具体问题需要,从而发展出多种形式的免疫算法,但基本上都遵循这六个步骤。

注意免疫细胞识别抗原的不完全匹配性,即免疫细胞识别抗原的过程就是与抗原匹配并结合的过程,这种匹配不要求二者的完全匹配,只要这种匹配所导致的亲合力大于某一固定的阈值即可。基于不完全匹配性,一种免疫细胞可以识别多种不同的抗原。形态空间理论可以对识别多样性作出合理解释。

与遗传算法主要区别在于:生物启发机制不同,一个是免疫学,一个是进化论。解的进化方式不同,包括解的适应性度量、进化解的算子等。

文献[19]对一般免疫算法的优缺点进行了较详细的分析,文献[20]针对一般免疫算法中基于信息熵的浓度计算缺陷提出了四点改进。一般免疫算法可分为两种形式,一种是基于信息熵度量亲合力,保持多样性的免疫算法,以下简称为信息熵免疫算法,另一种为基于距离矢量度量抗体浓度,保持多样性的免疫算法,简称为矢量矩免疫算法,本质上都是基于距离

的一般免疫算法。

4.2信息熵免疫算法

基于信息熵的免疫算法的突出特点是利用信息熵度量和保持候选解的多样性,这种操作方式与遗传算法有明显区别。

4.2.1 算法描述[21]

该算法实现步骤如图7.4下:

1.识别抗原(问题)

对问题及其解的特性进行分析和了解,进行抗体编码。初始群体的产生,在记忆库空的情况下,即随机产生;否则就以记忆库为基础产生

2.产生群体解

第一次迭代时,在解空间中随机产生N 个抗体,并从记忆库中提取k N 个抗体构成初始抗体群体,

其中k N 为记忆库中抗体的数量,如果记忆库中没有抗体,则随机产生k N N 个初始抗体构成初始

群体。如果不是首次迭代,则对原有抗体群体进行选择、交叉、变异操作得到新群体,再从记忆库中取出记忆的抗体共同构成新一代抗体群体

3.对各抗体进行评价

4.抗体促进和抑制

5.判断暂时解集是否已满

若还没有达到N 个,则转到步骤3,对剩余的解群体重新评价。由于前面消除了两个极端抗体,所以再次评价解群体才能体现真实性和动态性。若暂时解集已满,则进行下一步操作

6.记忆细胞产生

这一步形成父代群体,由于暂时解集中暂存了经过动态选择的较优群体,所以此时抛弃剩余解群体,而将暂时解集更新到解群体。同时从暂时解集取其前k N 个较优抗体存入记忆库中。最后,清除

暂时解集

7.抗体解产生

最后判断是否满足约束条件若满足,则结束;否则,转到步骤2

图4.3 信息熵免疫算法

步骤4对应抗体的促进和抑制。为了防止浓度较高的较优解一次性全部被消除所导致的后期收敛速度下降,该算法引入一个新的群体——暂时解集,其容量为N 。将解群体按v e 降序排列,消除v e 值最小的一个抗体,同时把v e 值最大的抗体作为暂时最优解转移到暂时解集中,这样每次使解群体减少两个极端抗体,分多次动态促进和抑制抗体群体。

步骤7中,抗体解产生操作一般采用变异和选择算子,与遗传算法类似。但是,免疫系统中抗体是基于单个细胞内基因库的重组、变异而产生多样性的。因而,采用父代交叉算子并不符合免疫原理,许多改进算法加入该算子可看作是免疫算法中结合遗传算法的交叉算子。

关于算法的参数设定比如变异率等,对算法性能的影响是值得研究的问题,尤其是对于参数不断变化的免疫算法,更为复杂。

其中步骤3中,如果以抗体的亲合力评价为标准,当群体中的某个抗体占据了相当规模,而又不是最优解时,就极易导致过早收敛。为此,当有些抗体的规模达到一定程度后,就要对其进行限制,以防过早收敛。同时,也要相应提高规模小的抗体的产生,把算法引向全局

搜索。该算法采用抗体浓度来抑制规模比较大又不是最优解的抗体,并且以信息熵作为度量亲合力的指标,以抗体的期望繁殖率作为评价抗体的标准。

抗体1

抗体

抗体N

图4.4 抗体基因的平均信息量(熵)

免疫系统中的抗体多样性可以利用信息熵的概念表现[228]。设一个免疫系统由具有M 个基因的N 个抗体组成,}1,0{∈j k ,如图7.5所示。根据信息学理论,第j 个基因的平均信息量(entropy ))(N E j 可以计算为:

)1log(

)(1ij

N i ij j P P N E ∑== (4.6) 其中ij P 是第i 个等位基因(allele )来自第j 个基因的概率。注意在第j 个基因的所有等位基因都是同样形式,平均信息量等于零。平均信息量由此可以看做一种度量免疫系统中认知多样性的方法。

利用信息熵的概念情况下,一个说明抗原和抗体之间的关系,即目标和解之间结合强度;另一个负责抗体之间的协同关联程度,表达如下:

)

2(11)(E A ij b += (4.7) 其中ij b A )(是第i 个抗体和第j 个抗体之间的亲合力。)2(E 是抗体i 和抗体j 的平均信息量。)2(E 等于0表示第i 个抗体和第j 个抗体基因相同。

同样,抗体和抗原之间的亲合力定义为:

)1/(1,,w v w v E ay += (4.8)

w v E ,是抗体v 和抗体w 的信息熵。w v E ,=0说明抗体v 和w 的基因完全匹配,这种情况下,w v ay ,=1。w y a ,表示抗体之间的相似程度。

抗体v 和抗原之间的亲合力为:

)10(≤≤=v v v opt opt ax (4.9)

这里,v opt 是抗原和抗体v 之间的结合强度,可根据具体问题,利用抗体对抗原的适应度fitness 计算,fitness 表示抗原(问题)和抗体(解)之间的适应值函数。如果是二进制,1=v ax 时,说明抗体和抗原非常匹配,抗体是最优解。

抗体的浓度用于表示某个抗体以及与其很相似的抗体的规模。评价解的浓度:

∑==N

w vw v ac N c 11其中 ???≥=otherwise ay ac vw vw ,0,11σ,1σ为阈值。 (4.10) 采用浓度概念或期望值[3]来调节抗体的促进和抑制。在免疫系统中,当一种抗体受到抗原刺激或其它抗体刺激或抑制时,这种抗体的数量将发生变化。在群体更新中,亲合力大的抗体浓度提高,高到一定值就要受到抑制,反之相应提高浓度低的抗体的产生和选择概率。这与实际免疫系统中的抗体产生的促进和抑制是一致的。这种机制确保抗体群体更新的抗体多样性,避免未成熟收敛。

抗体v 的期望繁殖率(选择率)定义:

∑∏==-=N i i v N s s v v v ax c as ax e 11,)

1( (4.11)

???≥=otherwise

ay ay as s v s v s v ,0,2,,,σ (4.12) 其中2σ为阈值。

4.2.2 算法的特点

1. 抗体的评价、促进和抑制采用多次、动态方式,引入了暂时解集的概念。通过动态循环评价、促进和抑制,更客观地对解群体进行更新,加快免疫算法在后期的收敛速度。

2. 把产生初始抗体和产生新抗体统一成一步,即步骤2(产生解群体),使算法更具有规整性。

3. 在算法过程中不断利用记忆库中的记忆元素,而不是仅在产生初始解群体时使用一次,进一步保证免疫算法的收敛性。

4. 抗体浓度选用匹配程度在某个区间范围的抗体数目计算,且参数可以灵活调整,有利于限制浓度大的抗体。

5. 抗体期望繁殖率选用亲合力与浓度的非线性组合来计算,更能体现每个因素对期望繁殖率的实际影响。

6. 利用信息熵或距离作为评价抗体相似度的指标比直接用目标函数(求最大值)、目标函数的倒数(求最小值)更有效地表达了候选解所包含的信息。

4.3 克隆选择算法

4.3.1 克隆选择算法的发展

克隆选择算法是一种基于克隆选择理论设计的免疫算法。Castro最早提出了用于优化和学习的克隆选择算法CLONALG[1]。为了与后来开发的基于克隆选择的算法区别,本文将Castro提出的CLONALG称为基本克隆选择算法(BCSA)。克隆选择算法主要用于解决优化问题。本章介绍关于基本克隆选择算法及其改进的思想和方法。

1.优化

国内外许多研究人员针对用于优化的克隆选择算法从不同角度提出了许多改进措施,主要分以下几个方面:

1) 新算法

文献[2]提出了一种用于动态函数优化的克隆选择算法。与进化策略在不同维数的函数问题进行了性能比较,发现所提出的克隆选择算法对低维(2维、5维)问题比进化策略效果更好。对高维(10维)问题,进化策略性能更好。

文献[3]提出了自适应动态克隆选择算法。该算法将局部搜索与全局搜索以及随机概率进化搜索结合起来。与改进遗传算法比较,该算法能够更有效防止早熟,具有更快的收敛速度。

文献[4]基于免疫克隆选择和形状空间理论,提出了一种基于形状空间的克隆选择算法。并用积木块假设对该算法的收敛性进行了分析。

文献[5]提出了用于连续全局优化的免疫克隆选择算法(opt-IA),与多种生物启发的算法比较,显示所提出的算法适合于数值优化问题,在准确率方面,具有更好的性能,也能解决大规模问题。

文献[6]提出了用于多模式函数优化的克隆选择算法,主要研究多模式函数的所有峰值(全局和局部),提出了克隆选择算子。实验证明该算法在处理全局和局部峰值的多模式函数优化方面更有效。

文献[7]提出了提出一种基于生物免疫系统克隆选择机理和免疫网络理论的免疫算法。该算法通过抗体的克隆选择和变异过程,完成对入侵抗原的清除,实现免疫防御的功能;利用免疫络调节的思想选择抗体记忆细胞,完成知识的学习和积累,实现免疫自稳的功能;利用所建立的抗体记忆矩阵实现对类似入侵抗原的快速应答,行使免疫监视识别功能.该算法利用生物变异机制实现抗体的自适应调节,使系统具有自适应、自学习能力。

2) 算子

文献[8]提出了基于克隆选择的标准免疫算法,研究所设计的超变异算子的搜索能力。在陷阱函数等NP完全问题上的实验证明,一些设计的超变异算子能够得到满意结果。文献[9]基于细胞克隆选择学说,系统地阐述了用于人工智能的抗体修正克隆算子,提出了相应

的人工免疫抗体修正克隆算法;利用Markov链的有关性质,证明了该算法的收敛性。针对0一l背包问题的试验结果表明,人工免疫抗体修正克隆算法解决组合优化问题是有效的,与相应的进化算法相比,该算法有效克服了早熟问题、保持了抗体的多样性,而且收敛速度快。

文献[10]借鉴生物免疫学的有关理论,该文阐述了用于人工免疫系统的免疫优势概念,包括抗体免疫优势和抗原免疫优势。进一步地,构造了不同的免疫优势算子,并结合抗体克隆选择机理,提出了一种新的混合人工免疫系统算法一免疫优势克隆算法,0—1背包问题和复杂函数优化问题的仿真试验表明,新算法具有处理类似复杂问题的能力,且性能要优于相应的遗传算法。

3) 编码方式

文献[11]将克隆选择算法的二进制编码改为实数编码,即直接用实数进行编码,利用了免疫学Ag-Ab的相互作用和细胞进化现象,通过免疫记忆机制,保存各个局部最优解,克服早熟现象。通过几个模拟实验,验证了本算法的有效性。

文献[12]提出利用基本克隆选择算法解决约束全局优化问题。按照二进制和十进制两种编码方式评价了算法性能,另外,评价了变异算子在性能上的影响,提出了新的变异算子,改进基本克隆选择算法处理约束优化问题的能力。

4)与其他计算智能结合

文献[13]利用免疫系统的克隆选择机制,结合粒群优化算法的进化方程,提出一种用于函数优化的算法。算法的主要特点是利用免疫处理操作,提高种群的多样性,利用进化方程提高收敛速度。仿真程序表明,该算法能以较快速度完成给定范围的搜索和全局优化任务。

文献[14]提出了结合克隆选择和思维进化的新算法。利用抗原抗体多样性原理提出了克隆思维进化算法(CEMA),仿真结果显示GA和思维进化的退化现象得到有效克服。收敛速度更快。

文献[15]出了免疫克隆选择进化策略,用于约束优化问题。新算法利用随机排序约束处理技术,利用克隆扩增和克隆选择实现局部搜索,利用克隆选择实现全局搜索。实验结果显示,该算法比采用随机排序和动态惩罚函数的进化策略性能更好,在收敛性速度和精确度方面都能显著改进搜索性能。文献[16]提出了基于克隆选择和免疫记忆的免疫记忆克隆规划算法(IMCPA),与其他进化规划算法比较,更能有效解决复杂的机器学习问题,比如高维函数优化,保持群体多样性和避免某种程度的早熟,有更高的收敛速度。

文献[17]基于抗体克隆选择学说及免疫记忆理论,系统阐述了免疫记忆克隆规划,并基于Markov链的有关性质,证明了该算法的收敛性。

5) 其他

文献[18]采用克隆和自适应变异等操作,提高收敛速度和种群的多样性。文献[19] 向基本克隆选择算法中加入了超变异算子和自适应调节步长机制。解决了基本克隆选择算法容易陷入局部最优的弱点,以及算法在迭代后期易出现停止不前的现象。文献[20]基于一个压缩阈值和新的收敛标准,能够动态确定种群大小,解决了Castro基本克隆选择算法中存在的种群规模需根据经验确定、多峰搜索能力弱、训练时间长的问题。文献[21]提出了基于克隆选择多样性的函数优化算法。

目前,基于免疫克隆选择算法的函数优化研究得较全面、系统的是西安电子科技大学的焦李成教授所在的研究团队。他们以Castro提出的基本克隆选择算法为基础,构造新的免疫克隆选择算子及相关的免疫克隆选择计算,同时将免疫克隆选择计算划分为免疫克隆选择算法、免疫克隆选择规划、免疫克隆选择策略。系统地探讨免疫克隆选择算法的性能,主要是收敛性,并分析了单克隆算子与多克隆算子,以及免疫选择计算与进化计算的区别和联系[22]。由于免疫克隆选择机理的复杂性、多样性,很多内容(改进算法的能解性、有效性、算法收敛速度分析)还缺乏证明,很多新的计算性能有待形成。

上述克隆优化算法主要用于处理多目标优化、约束优化或者函数优化等问题。在处理中,一般将优化目标,如最大值或者约束问题抗原抗原,抗体表示为问题的候选解。之后在克隆算子上针对具体问题提出各种改进措施。

2.分类

文献[23]提出了一种新的数据挖掘分类方法——免疫克隆分类算法(Immune Clonal Algorithm for Classification,ICAC)。ICAC是一种基于免疫克隆算法的搜索机制和Michigan 方法模型的规则提取和分类方法。与遗传分类算法不同,ICAC是一种自下而上的分类算法.ICAC虽然着眼于规则的进化,但是从编码到免疫算子的设计都立足于训练样本,可避免进化过程中产生无意义规则,且产生的规则是可解释的。文巾将算法用于UCI数据集,并与现有的基于非遗传算法、遗传算法和分布式遗传算法的分类方法进行了比较实验。结果表明,ICAC是-一种有效的分类算法。

3.特征选择

文献[16]提出了一种基于免疫克隆选择算法的特征选择方法。特征选择可以被看成是一个组合优化问题,利用免疫克隆选择算法快速收敛于全局最优的特性,加快搜索到最优特征子集的速度,为后续模式分类提供良好的判别依据.实验结果表明算法在保持甚至提高分类精度的同时,有效地降低了特征维数。与基于遗传算法特征选择的结果相比较,在有限代数内,该算法能收敛到更优的特征子集,从而验证了算法的有效性及其应用潜力。文献[25]提出了基于克隆选择的属性选择算法,提高了数据挖掘的效率。

4.图象处理

文献[26]基于阈值分割方法,将免疫克隆选择优化算法应用到图像分割中,提出了一种新的图像分割算法。详细叙述了算法机理,并对算法复杂度进行了理论分析以及实验数据比较。在仿真实验中,将遗传算法和免疫克隆选择算法分别独立运行10次,对l0次得到的阈值以及均值方差进行了比较,并将函数评价次数作为算法复杂度的评价指标。该文算法不仅能够对图像进行准确的分割,而且在同样的种群规模下能够以较少的迭代代数和较低的函数评价次数得到最优阈值。仿真结果表明,该方法应用在图像分割中是可行的、有效的。

文献[27]提出基于多小波变换和克隆选择算法的像素水平多焦图象融合优化算法,4个图象首先分解成低频粗信息和高频细信息图象,然后利用克隆选择算法优化融合4个低频粗子带的权值。实验结果证明所提出的图象融合算法有清晰的边缘,丰富的细节。

5.调度

文献[28]提出了能够有效克服早熟并具有较快收敛速度的免疫克隆选择调度算法,用于调度输入队列包调度,与其他方法比比叫表明,在平均延迟和最大交换吞吐量方面有突出的表现。

6.关联规则

文献[29]提出了用于动态数据库的关联规则挖掘免疫克隆选择算法,使动态数据库下的关联规则挖掘的效率比遗传算法的挖掘效率有所提高。

7.生物信息

文献[22]提出了一种混合克隆选择算法,具有插入-清除间隙和块可以排列多个蛋白质序列,称为排列器。通过优化成对目标函数的加权和来搜索候选排列群体中的排列集合。

本章只介绍涉及克隆选择算法的基本理论和方法。有关克隆选择算法的系统理论和方法可参见文献[22]。

4.3.2基本克隆选择算法

De Castro 最早提出了基于克隆选择原理的克隆选择算法CLONALG [1] 。为了与以后的改进及其他基于克隆选择的免疫算法区分,这里称其为基本克隆选择算法(BCSA )。

9.2.1 算法过程

算法工作过程如下(图4.5):

1.产生一组(P)侯选解,组成记忆细胞的子集(M ,subset),加到剩余群体(r P )(r

P P M =+); 2.基于亲合力成熟,确定群体P 中的n 个最佳个体n P ;

3.克隆这n 个最佳个体,产生一个暂时的克隆群体(C )。克隆规模是抗原亲合力测量的递增函数;

4.把克隆群体提交到高频变异模式,其中高频变异与抗体亲合力成比例,一个成熟的抗体群体产生

(*

C );

5.从*C 中重选择改进个体组成记忆集合。P 集合的一些成员能够被*C 的其他改进的成员取代; 取代群体中的d 个低亲合力抗体,保持多样性。

图4.5 基本克隆选择算法

对提出的每一个问题,分别讨论编码和所采用的亲合力测量方法。步骤2和3是算法的关键。如果在步骤2选择n=N ,最高亲合力个体数等于侯选个体数,群体的每一个成员会组成一个潜在的局部侯选解,表示形状空间的局部开采(exploitation ),以贪婪搜索为表征。另外,如果局部考虑所有个体,其克隆(步骤3)将具有同样规模。在所有示例中,采用本段讨论的步骤2和3。

克隆选择算法产生那些具有较高亲合力的抗体,选择其中改进的成熟的后代。这种策略表明算法执行贪婪搜索,其中单个成员会局部优化,新成员产生搜索空间的更广泛的探索。这个特征使CSA 非常适合解决多模式优化任务。

De Castro 提出的CLONALG 利用了克隆选择过程的另两个特征,也没有考虑免疫应答的局部性。开始用于实现模式识别,后来用于多模式函数优化。

9.2.2 不同用途的基本克隆选择算法

基本克隆选择算法可用于优化和模式识别,用于模式识别的克隆选择算法伪代码如图

9.2。

其中P 是个体群体,S 是要识别的模式。Max _it 是最大循环数,N 是群体规模,1n 是要选择克隆的高亲合力抗体数,2n 是在每个循环被取代的低亲合力抗体数(1n +2n N ≤)。算法是于模式识别的克隆选择过程。

Procedure [M]=CLONALG_PR(S,max_it,n1,n2)

Initialize P

t ←1

While t<=max_it do // 对最大循环数

For every s of S do //对所有模式

aff ←affinity(s,P) //确定亲合力

P1←select(P,n1,aff) //n1 最高亲合力

C ←clone(P1,aff) //与亲合力成比例

C1←mutate(C,aff) // 反比例

aff ←affinity(s,C1) //s 个最高亲合力克隆成为记忆细胞

m ←select(C1,aff)

//m 取代当前记忆细胞,如果它有更高亲合力

M ←insert(M,m)

//取代n2个低亲合力细胞

P ←replace(P,n2)

End for

t ←t+1

end while

end procedure

图4.6 用于模式识别的 CLONALG

Procedure [P]=CLONALG_OPT(max_it,n1,n2)

Initialize P

t ←1

While t<=max_it do // 对最大循环

f ←eval(P) //确定适应度

P1←select(P,n1,f) //选择n1个最高适应度

C ←clone(P1,f) //与亲合力成比例

C1←mutate(C,f) //成反比例

f1←eval(C1,n1,f1) //克隆的适应度

P1←select(C1,n1,f1) //选择 n1个最好的克隆

P ←replace(P,n2) //取代n2个低亲合力克隆

t ←t+1

end while

end procedure

图4.7 用于优化的基本克隆选择算法

对上述算法进行改进,可用于多模式优化。即算法中要识别抗原群体换成要优化的目标函数。这样,一个抗体亲合力对应对给定抗体的目标函数的评价,也就是对应抗体的亲合力。图9.3给出用于优化的克隆选择算法。

克隆选择算法是免疫算法中与进化算法最为类似的方法,其基本特征也可以使其归为进化计算。

Castro提出的克隆选择算法存在以下问题:

1.生物免疫系统获得多样性的主要机制之一为克隆选择,即有选择地产生能够有效地与抗原反应的克隆抗体。BCSA在抗体为了匹配抗原而快速变异进化期间,没有抗体基因交叉现象,而研究表明,一些情况下交叉能够比变异提供更高水平的基因重组,从而产生多样抗体。

2.对于抗体克隆过程,BCSA提出了依照抗体亲合力大小,来决定抗体克隆规模的思想。抗体亲合力越大,则抗体克隆的数量就越多。这样克隆的结果,导致在种群多代进化后会出现大量的抗体亲合力非常近似甚至相同,生物现象反映为抗体浓度增大的现象。这种现象,使种群内的抗体缺乏多样性,算法容易早熟。

4.3 免疫网络算法

4.3.1 概述

为了有效的识别外部抗原,免疫系统必须是完备的,这意味着它必须从本质上识别(迄今)未知的抗原所展现出来的所有化学形态。Jerne提到,在一个完备的免疫系统中,不同的抗体之间也可以产生作用。因而,个体基因型与反个体基因型之间形成了一个网络[1]。

在20世纪90年代早期网络模型的研究对于人们熟悉免疫系统的运行起了非常重要的作用[2]。这些模型强调了网络的动力学及亚动力学,并形成了免疫系统以有机体为中心的观点。该观点认为,免疫系统的首要任务是体细胞的身份识别,其次担当防卫的角色,已有人研究了避免渗透和通过激励网络的相互作用可以维持免疫记忆的条件,这些研究用的是渗透

理论和随机图理论。

随着计算机技术和人工智能领域的进步,免疫学领域越来越多的借助这些领域的成果来开展研究,免疫网络的研究也逐渐随着免疫学的不断深入而成为嵌入许多免疫系统模型中的一个概念。

图4.8 基于Hunt 和Cooke 的人工免疫网络发展 人工免疫网络是一种受免疫网络理论概念和和思想生物启发的计算模型。主要是B 细胞之间的相互作用、克隆和变异过程。围绕免疫网络理论开发的模型主要有三个方面,如图8.1所示。主要包括aiNet [4]和AINE 模型[5]以及其他模型。这些模型一般采用二进制和实数编码方式。其他方面,文献[6]提出了一种B 细胞独特型网络的最小化模型,用编码网络节点的位符串表示独特型。网络模拟骨髓连续产生B 细胞的过程,已经受刺激B 细胞克隆,未受刺激的将清除。通过随机进化最终得到一个高度组织的B 细胞网络,从中可以观察到复杂结构网络如何从简单的模式通过简单的规则建立起来。文献[7]对实数值形态空间中的独特型网络成长情况进行了分析,与生物学上的网络进行了对比。文献[8]重点研究了多样性对aiNet 优化性能的影响,通过引入多样性算子改进了aiNet 的搜索能力。文献[9]则利用亲和力研究二维形态空间中独特型网络的耐受性,通过网络的聚类拓扑结构发现独特型网络对抗原的耐受性是一致的,要么耐受所有抗原,要么排斥所有抗原。文献[10]提出了免疫网络系统新规范,在二进制形态空间可以建立稳定网络,并学习新模式。文献[11]提出用于多模态优化的离散独特型免疫网络算法。基于人工免疫网络广泛用于数据挖掘[12]、机器人控制[13][14]、函数优化[15]、机器人导航[16]等方面。图8.1给出了基于Hunt 和Cooke 提出的免疫网络学习算法发展而来的多种人工免疫网络算法之间的关系[17]。

4.3.2 人工免疫网络模型的基本框架

上述各类人工免疫网络具有共同的特征和相似的性能。图8.2给出一般人工免疫网络模型[17]。

算法输入为抗原集合A ,提呈给网络后,返回由一个由B 细胞及其互相连接组成的免疫网络。注意一些模型没有明确的网络拓扑结构表示。

模型第一步是建立B 细胞初始集合。采用抗原集合的子集或者随机形式产生B 细胞。Jerne Farmer varela perelson other Models Ishiguro Mi chelan & Reactive V on zuben IN CLARINET Hunt & Cooke RLAIS Fuzzy AIS TECNO-STREAMS Meta-Stable IN

IN

aiNet aiNet Hierarchy IPD aiNet Opt-aiNet

之后,通过将抗原提呈给网络开始循环过程。对每个抗原和每个B 细胞,计算刺激程度。可通过如下函数表示:

:A s t i m u t a t i o

n f A B ?→? (8.1) 在多数模型中,刺激是定义在形态空间中一个亲和力度量函数,B 细胞和抗原在该空间中用二进制或其他形式表示。一般刺激度量定义如下:

()()(),:,,A stimutation affinity f a b g f a b

= (8.2)

其中:and :.affinity affinity f B A B A g f ?→??→?度量形态空间中的元素之间的相似性和互补性。多数情况,g 利用B 细胞的亲和力计算抗原产生的刺激量。

GAIN(A:抗原集合)

1.初始化

1.1评价B ,一个初始B 细胞集合

1.2初始化网络结构 L

2.重复直到停止条件满足

2.1抗原提呈

2.1.1对所有,a A b B ∈∈计算亲合力

2.1.2对所有,a A b B ∈∈计算(,)A stimulation f b a

2.2 B 细胞相互作用

2.2.1: 对 ,b b B '∈计算 (,)B stimulation f b b '和 sup pression (,)B

f b b ' 2.3:亲合力成熟

2.3.1:计算 F(b):=()()()suppression ,,,,,,A B B

stimulation stimulation a A b B b b f a b f b b f b b b B ''∈∈≠''++∈∑

2.3.2:产生B 细胞的fcloning(b)个克隆并变异

2.4:亚动力学:

删除/产生B 细胞并连接

2.4.1:更新网络结构 L

返回免疫网络

3:return (B,L )

图4.9 一般人工免疫网络算法

下一步,B 细胞相互作用,这通过计算它们之间的刺激和抑制作用实现,计算如下:

:and :B B stimutation stimutation f B B f B B ?→??→? (8.3)

类似抗原/B 细胞刺激,B 细胞/B 细胞刺激可以用B 细胞/B 细胞亲和力函数计算。B 细胞的总刺激:F B →?通过抗原和网络相互作用引起的总效果获得:

()()

()(),suppression ,,,,,A stimutation a A

B stimutation b B b b B b B b b

F b f a b f b b f b b b B ∈''∈≠''∈≠='+

'+∈∑∑∑ (8.4)

基于总的刺激程度,一些B细胞被选择,产生fcloning(b)个克隆,这些以一定变异率经历变异过程。在亚动力学中,一些受刺激程度低的B细胞被从网络清除,随机产生新B细胞,结合进入网络。

最后,当停止条件满足,返回当前网络。

免疫算法设计与应用有一般规律,免疫算法解决问题的一般过程如图7.2:

1.确定应用领域(隐喻)

2.确定免疫实体

2.1表示法

2.2亲合力度量

2.3免疫机制应用

2.4 算法循环

3.获得问题解(一个或多个抗体)

图4.10 免疫算法实现和解决问题的一般过程

表7.1 给出最基本的免疫学概念与免疫算法的对应隐喻关系。

表4.1 免疫学概念与免疫算法的关系[17]

常微分方程和偏微分方程的数值解法教学大纲

上海交通大学致远学院 《常微分方程和偏微分方程的数值解法》教学大纲 一、课程基本信息 课程名称(中文):常微分方程和偏微分方程的数值解法 课程名称(英文):Numerical Methods for Ordinary and Partial Differential Equations 课程代码:MA300 学分 / 学时:4学分 / 68学时 适用专业:致远学院与数学系相关专业 先修课程:偏微分方程,数值分析 后续课程:相关课程 开课单位:理学院数学系计算与运筹教研室 Office hours: 每周二19:00—21:00,地点:数学楼1204 二、课程性质和任务 本课程是致远学院和数学系应用数学和计算数学方向的一门重要专业基础课程,其主要任务是通过数学建模、算法设计、理论分析和上机实算“四位一体”的教学方法,使学生掌握常微分方程与偏微分方程数值解的基本方法、基本原理和基本理论,进一步提升同学们利用计算机解决实际问题的能力。在常微分方程部分,将着重介绍常微分方程初值问题的单步法,含各类Euler方法和Runge-Kutta方法,以及线性多步法。将简介常微分方程组和高阶常微分方程的数值方法。在偏微分方程部分,将系统介绍求解椭圆、双曲、抛物型方程的差分方法的构造方法和理论分析技巧,对于椭圆型方程的边值问题将介绍相应变分原理与有限元方法。将在课堂上实时演示讲授的核心算法的计算效果,以强调其直观效果与应用性。本课程重视实践环节建设,学生要做一定数量的大作业。 三、教学内容和基本要求 第一部分:常微分方程数值解法 1 引论 1.1回顾:一阶常微分方程初值问题及解的存在唯一性定理

常微分方程边值问题的数值解法

第8章 常微分方程边值问题的数值解法 引 言 第7章介绍了求解常微分方程初值问题的常用的数值方法;本章将介绍常微分方程的边值问题的数值方法。 只含边界条件(boundary-value condition)作为定解条件的常微分方程求解问题称为常微分方程的边值问题(boundary-value problem). 为简明起见,我们以二阶边值问题为 则边值问题(8.1.1)有唯一解。 推论 若线性边值问题 ()()()()()(),, (),()y x p x y x q x y x f x a x b y a y b αβ'''=++≤≤?? ==? (8.1.2) 满足 (1) (),()p x q x 和()f x 在[,]a b 上连续; (2) 在[,]a b 上, ()0q x >, 则边值问题(8.1.1)有唯一解。 求边值问题的近似解,有三类基本方法: (1) 差分法(difference method),也就是用差商代替微分方程及边界条件中的导数,最终化为代数方程求解; (2) 有限元法(finite element method);

(3) 把边值问题转化为初值问题,然后用求初值问题的方法求解。 差分法 8.2.1 一类特殊类型二阶线性常微分方程的边值问题的差分法 设二阶线性常微分方程的边值问题为 (8.2.1)(8.2.2) ()()()(),,(),(), y x q x y x f x a x b y a y b αβ''-=<

时间序列分析讲义 第01章 差分方程

第一章 差分方程 差分方程是连续时间情形下微分方程的特例。差分方程及其求解是时间序列方法的基础,也是分析时间序列动态属性的基本方法。经济时间序列或者金融时间序列方法主要处理具有随机项的差分方程的求解问题,因此,确定性差分方程理论是我们首先需要了解的重要内容。 §1.1 一阶差分方程 假设利用变量t y 表示随着时间变量t 变化的某种事件的属性或者结构,则t y 便是在时间t 可以观测到的数据。假设t y 受到前期取值1-t y 和其他外生变量t w 的影响,并满足下述方程: t t t w y y ++=-110φφ (1.1) 在上述方程当中,由于t y 仅线性地依赖前一个时间间隔自身的取值1-t y ,因此称具有这种结构的方程为一阶线性差分方程。如果变量t w 是确定性变量,则此方程是确定性差分方程;如果变量t w 是随机变量,则此方程是随机差分方程。在下面的分析中,我们假设t w 是确定性变量。 例1.1 货币需求函数 假设实际货币余额、实际收入、银行储蓄利率和商业票据利率的对数变量分别表示为t m 、t I 、bt r 和ct r ,则可以估计出美国货币需求函数为: ct bt t t t r r I m m 019.0045.019.072.027.01--++=- 上述方程便是关于t m 的一阶线性差分方程。可以通过此方程的求解和结构分析,判断其他外生变量变化对货币需求的动态影响。 1.1.1 差分方程求解:递归替代法 差分方程求解就是将方程变量表示为外生变量及其初值的函数形式,可以通过以前的数据计算出方程变量的当前值。 由于方程结构对于每一个时间点都是成立的,因此可以将(1.1)表示为多个方程: 0=t :01100w y y ++=-φφ 1=t :10101w y y ++=φφ t t =:t t t w y y ++=-110φφ 依次进行叠代可以得到: 1011211010110101)()1()(w w y w w y y ++++=++++=--φφφφφφφφ 0111122113121102)1(w w w y y φφφφφφφ++++++=- i t i i t t i i t w y y ∑∑=-=++=0 111 1 0φφφφ (1.2) 上述表达式(1.2)便是差分方程(1.1)的解,可以通过代入方程进行验证。上述通过叠代将 t y 表示为前期变量和初始值的形式,从中可以看出t y 对这些变量取值的依赖性和动态变化 过程。 1.1. 2. 差分方程的动态分析:动态乘子(dynamic multiplier) 在差分方程的解当中,可以分析外生变量,例如0w 的变化对t 阶段以后的t y 的影响。假设初始值1-y 和t w w ,,1 不受到影响,则有:

第1章 算法概述

第1章算法概述 ●理解算法的概念。 ●理解什么是程序,程序与算法的区别和内在联系。 ●掌握算法的计算复杂性概念。 ●掌握算法渐近复杂性的数学表述。 ●掌握用C++语言描述算法的方法。 1.1算法与程序 1.1.1 算法(Algorithm) 算法是指解决问题的一种方法或一个过程。 算法是若干指令的有穷序列,满足性质: ①输入(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0 个输入是指算法本身定出了初始条件。 ②输出(Output):一个算法有一个或多个输出,以反映对输入数据加工后的结果, 没有输出的算法是毫无意义的。 ③确定性(Definiteness):组成算法的每条指令是清晰,无歧义的。 ④有限性(Finiteness):算法中每条指令的执行次数是有限的,执行每条指令的时 间也是有限的。 ⑤可行性(Effectiveness):算法中执行的任何计算步都是可以被分解为基本的可执行 的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。 1.1.2 程序(Program) ●程序是算法用某种程序设计语言的具体实现。 ●程序可以不满足算法的性质(4)。 ●例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。 ●操作系统的各种任务可看成是单独的问题,每一个问题由操作系统中的 一个子程序通过特定的算法来实现。该子程序得到输出结果后便终止。 1.1.3 问题求解(Problem Solving) ●例:编写判断存放在单链表L中的字符串是否为回文的函数。 存放字符串的单链表L的长度已知,L的示意图如下:

算法: ①定义一个栈(栈的元素类型为char ),并初始化;(SqStack S; initStack(S);) ②将单链表存储的字符串中的前一半字符进栈; ③将栈中的字符逐个与单链表中后半部分的字符进行比较,如果字符全部相等,则判断字符串是回文,如果有一个字符不相等,则判断不是回文。 bool HuiWen(LinkList L,int n){ int i=1; SqStack s; initStack(s); LinkList p=L->next; while(i<=(n/2)){ push(S,p->data); p=p->next; i++; } if((n%2)==1) p=p->next; while(p!=NULL){ if(pop(S)==p->data) p=p->next; else return false; } return true; } 1.2 算法复杂性分析 算法复杂性 = 算法所需要的计算机资源 算法的时间复杂性T(n); 算法的空间复杂性S(n)。 其中n 是问题的规模(输入大小)。 1.2.1 算法的时间复杂性 算法的时间复杂性应该集中反映算法的时间效率,并从算法的实际计算机中抽象出来。这个量应该只依赖于要解的问题的规模(N )、算法的输入(I )和算法本身(A )。 算法的时间复杂性可表示为如下的三元函数:T=T(N, I, A) 由于A 隐含于函数名当中,T 可简化为:T=T(N, I) 根据T(N, I)的概念,它应该是算法在一台抽象的计算机上运行所需的时间。 设此抽象计算机所提供的元运算有k 种,分别为O 1, O 2, …, O k ,又设每执行一次这些运算的时间分别为t 1, t 2, …, t k 。 对于给定的算法A ,用到元运算O i 的次数为e i ,显然e i 为N 和I 的函数,因此有: 一般我们只讨论三种情况下的时间复杂性,即最坏情况、最好情况和平均情况 ()()∑ ==k i i i I N e t I N T 1 ,,

差分方程方法

第四章 差分方程方法 在实际中,许多问题所研究的变量都是离散的形式,所建立的数学模型也是离散的,譬如,像政治、经济和社会等领域中的实际问题。有些时候,即使所建立的数学模型是连续形式,例如像常见的微分方程模型、积分方程模型等等,但是,往往都需要用计算机求数值解。这就需要将连续变量在一定条件下进行离散化,从而将连续型模型转化为离散型模型,因此,最后都归结为求解离散形式的差分方程解的问题。关于差分方程理论和求解方法在数学建模和解决实际问题的过程中起着重要作用。 下面就不同类型的差分方程进行讨论。所谓的差分方程是指:对于一个数列{}n x ,把数列中的前1+n 项()n i x i ,2,1,0=关联起来所得到的方程。 4.1常系数线性差分方程 4.1.1 常系数线性齐次差分方程 常系数线性齐次差分方程的一般形式为 02211=+?+++---k n k n n n x a x a x a x (4.1) 其中k 为差分方程的阶数,()k i a i ,,2,1 =为差分方程的系数,且()n k a k ≤≠0。对应的代数方程 02 211=++++--k k k k a a a λ λλ (4.2) 称为差分方程的(4.1)的特征方程,其特征方程的根称为特征根。 常系数线性齐次差分方程的解主要是由相应的特征根的不同情况有不同的形式。下面分别就特征根为单根、重根和复根的情况给出差分方程解的形式。 1. 特征根为单根 设差分方程(4.1)有k 个单特征根 k λλλλ,,,,321 ,则差分方程(4.1)的通解为 n k k n n n c c c x λλλ+++= 2211, 其中k c c c ,,,21 为任意常数,且当给定初始条件 () 0 i i x λ= ()k i ,,2,1 = (4.3) 时,可以唯一确定一个特解。 2. 特征根为重根 设差分方程(4.1)有l 个相异的特征根()k l l ≤≤1,,,,321λλλλ 重数分别为 l m m m ,,,21 且k m l i i =∑=1 则差分方程(4.1)的通解为

差分方程方法

第三章 差分方程方法 3.1 差分方程的平衡点及其稳定性 设有未知序列{}n x ,称 0),,,;(1=++k n n n x x x n F (3.1) 为k 阶差分方程。若有)(n x x n =,满足 0))(,),1(),(;(=++k n x n x n x n F 则称)(n x x n =是差分方程(3.1)的解,包含k 个任意常数的解称为(3.1)的通解, 110,,,-k x x x 为已知时,称其为(3.1)的初始条件,通解中的任意常数都由初始条件确定后 的解称为(3.1)的特解。 形如 )()()(11n f x n a x n a x n k k n k n =+++-++ (3.2) 的差分方程,称为k 阶线性差分方程。)(n a i 为已知系数,且0)(≠n a k 。 若差分方程(3.2)中的0)(=n f ,则称差分方程(3.2)为k 阶齐次线性差分方程,否则称为k 阶非齐次线性差分方程。 若有常数α是差分方程(3.1)的解,即0),,,;(=ααα n F ,则称α是差分方程(3.1)的平衡点,又对差分方程(3.1)的任意由初始条件确定的解)(n x x n =,都有 )(∞→→n x n α,则称这个平衡点α是稳定的。 若110,,,-k x x x 已知,则形如),,,;(11-+++=k n n n k n x x x n g x 的差分方程的解可以在计算机上实现。下面给出理论上需要的一些特殊差分方程的解。 一阶常系数线性差分方程 b x x n n =++α1, (3.3) (其中b ,α为常数,且0,1-≠α)的通解为 )1()(++-=a b C x n n α (3.4) 易知)1(+αb 是方程(3.3)的平衡点,由(3.4)式知,当且仅当1<α时,)1(+αb 是稳定的平衡点。

差分方程模型的理论和方法

第九章 差分方程模型的理论和方法 引言 1、差分方程: 差分方程反映的是关于离散变量的取值与变化规律。通过建立一个或几个离散变量取值所满足的平衡关系,从而建立差分方程。 差分方程就是针对要解决的目标,引入系统或过程中的离散变量,根据实际背景的规律、性质、平衡关系,建立离散变量所满足的平衡关系等式,从而建立差分方程。通过求出和分析方程的解,或者分析得到方程解的 特别性质(平衡性、稳定性、渐近性、振动性、周期性等),从而把握这个离散变量的变化过程的规律,进一步再结合其他分析,得到原问题的解。 2、应用:差分方程模型有着广泛的应用。实际上,连续变量可以用离散变量来近似和逼近,从而微分方程模型就可以近似于某个差分方程模型。差分方程模型有着非常广泛的实际背景。在经济金融保险领域、生物种群的数量结构规律分析、疾病和病虫害的控制与防治、遗传规律的研究等许许多多的方面都有着非常重要的作用。可以这样讲,只要牵涉到关于变量的规律、性质,就可以适当地用差分方程模型来表现与分析求解。 3、差分方程建模: 在实际建立差分方程模型时,往往要将变化过程进行划分,划分成若干时段,根据要解决问题的目标,对每个时段引入相应的变量或向量,然后通过适当假设,根据事物系统的实际变化规律和数量相互关系,建立每两个相邻时段或几个相邻时段或者相隔某几个时段的量之间的变化规律和运算关系(即用相应设定的变量进行四则运算或基本初等函数运算或取最运算等)等式(可以多个并且应当充分全面反映所有可能的关系),从而 建立起差分方程。或者对事物系统进行划分,划分成若干子系统,在每个子系统中引入恰当的变量或向量,然后分析建立起子过程间的这种量的关系等式,从而建立起差分方程。在这里,过程时段或子系统的划分方式是非常非常重要的,应当结合已有的信息和分析条件,从多种可选方式中挑选易于分析、针对性强的划分,同时,对划分后的时段或子过程,引入哪些变量或向量都是至关重要的,要仔细分析、选择,尽量扩大对过程或系统的数量感知范围,包括对已有的、已知的若干量进行结合运算、取最运算等处理方式,目的是建立起简洁、深刻、易于求解分析的差分方程。在后面我们所举的实际例子中,这方面的内容应当重点体会。 差分方程模型作为一种重要的数学模型,对它的应用也应当遵从一般的数学建模的理论与方法原则。同时注意与其它数学模型方法结合起来使用,因为一方面建立差分方程模型所用的数量、等式关系的建立都需要其他的数学分析方式来进行;另一方面,由差分方程获得的结果有可以进一步进行优化分析、满意度分析、分类分析、相关分析等等。 第一节 差分方程的基本知识 一、 基本概念 1、 差分算子 设数列{}n x ,定义差分算子n n n x x x -=??+1:为n x 在n 处的向前差分。 而1--=?n n n x x x 为n x 在n 处的向后差分。 以后我们都是指向前差分。 可见n x ?是n 的函数。从而可以进一步定义n x ?的差分: n n x x 2)(?=?? 称之为在n 处的二阶差分,它反映的是的增量的增量。 类似可定义在n 处的k 阶差分为:

双曲方程基于matlab的数值解法

双曲型方程基于MATLAB 的数值解法 (数学1201,陈晓云,41262022) 一:一阶双曲型微分方程的初边值问题 0,01,0 1.(,0)cos(),0 1. (0,)(1,)cos(),0 1. u u x t t x u x x x u t u t t t ππ??-=≤≤≤≤??=≤≤=-=≤≤ 精确解为 ()t x cos +π 二:数值解法思想和步骤 2.1:网格剖分 为了用差分方法求解上述问题,将求解区域{}(,)|01,01x t x t Ω=≤≤≤≤作剖分。将空间区间[0,1]作m 等分,将时间[0,1]区间作n 等分,并记 1/,1/,,0,,0j k h m n x jh j m t k k n ττ===≤≤=≤≤。分别称h 和τ为空间和时 间步长。用两簇平行直线,0,,0j k x x j m t t k n =≤≤=≤≤将Ω分割成矩形网格。 2.2:差分格式的建立 0u u t x ??-=?? 2.2.1:Lax-Friedrichs 方法 对时间、空间采用中心差分使得 2h 1 1111)(2 1u u x u u u u u t u k j k j k j k j k j k j -+-++-= +=-= ????τ τ 则由上式得到Lax-Friedrichs 格式 1 11111()202k k k k k j j j j j u u u u u h τ+-+-+-+-+=

截断误差为 ()[]k k k j h j j R u L u Lu =- 1 11111()22k k k k k k k j j j j j j j u u u u u u u h t x τ+-+-+-+-??=+-+?? 23222 3 (),(0,0)26k k j j u u h O h j m k n t x ττ??= -=+≤≤≤≤?? 所以Lax-Friedrichs 格式的截断误差的阶式2()O h τ+ 令/s h τ=:则可得差分格式为 1111 11(),(0,0)222 k k k k k j j j j j s s u u u u u j m k n +--++=-+++≤≤≤≤ 0cos()(0)j j u x j m π=≤≤ 0cos(),cos(),(0)k k k m k u t u t k n ππ==-≤≤ 其传播因子为: ()()()e e G h i h i s h i h i σσσστσ---=-+e e 221, 化简可得: ()()()()()h s G h is h G στσσστ σsin 11,sin cos ,2 2 2--=-= 所以当1s ≤时,()1,≤τσG ,格式稳定。 * 2.2.2:LaxWendroff 方法 用牛顿二次插值公式可以得到LaxWendroff 的差分格式,在此不详细分析,它的截断误差为() h 2 2 +O τ ,是二阶精度;当2s ≤时,()1,≤τσG , 格式稳定。在这里主要用它与上面一阶精度的Lax-Friedrichs 方法进行简单对比。 2.3差分格式的求解

常微分方程数值解法

i.常微分方程初值问题数值解法 常微分方程初值问题的真解可以看成是从给定初始点出发的一条连续曲线。差分法是常微分方程初值问题的主要数值解法,其目的是得到若干个离散点来逼近这条解曲线。有两个基本途径。一个是用离散点上的差商近似替代微商。另一个是先对微分方程积分得到积分方程,再利用离散点作数值积分。 i.1 常微分方程差分法 考虑常微分方程初值问题:求函数()u t 满足 (,), 0du f t u t T dt =<≤ (i.1a ) 0(0)u u = (i.1b) 其中(,)f t u 是定义在区域G : 0t T ≤≤, u <∞上的连续函数,0u 和T 是给定的常数。我们假设(,)f t u 对u 满足Lipschitz 条件,即存在常数L 使得 121212(,)(,), [0,]; ,(,)f t u f t u L u u t T u u -≤-?∈∈-∞∞ (i.2) 这一条件保证了(i.1)的解是适定的,即存在,唯一,而且连续依赖于初值0u 。 通常情况下,(i.1)的精确解不可能用简单的解析表达式给出,只能求近似解。本章讨论常微分方程最常用的近似数值解法-差分方法。先来讨论最简单的Euler 法。为此,首先将求解区域[0,]T 离散化为若干个离散点: 0110N N t t t t T -=<< <<= (i.3) 其中n t hn =,0h >称为步长。 在微积分课程中我们熟知,微商(即导数)是差商的极限。反过来,差商就是微商的近似。在0t t =处,在(i.1a )中用向前差商 10()()u t u t h -代替微商du dt ,便得 10000()()(,())u t u t hf t u t ε=++ 如果忽略误差项0ε,再换个记号,用i u 代替()i u t 便得到 1000(,)u u hf t u -= 一般地,我们有 1Euler (,), 0,1, ,1n n n n u u hf t u n N +=+=-方法: (i.4) 从(i.1b) 给出的初始值0u 出发,由上式可以依次算出1,,N t t 上的差分解1,,N u u 。

大连理工大学 高等数值分析 偏微分方程数值解(双曲方程书稿)

双曲型方程的有限差分法 线性双曲型方程定解问题: (a )一阶线性双曲型方程 ()0=??+??x u x a t u (b )一阶常系数线性双曲型方程组 0=??+??x t u A u 其中A ,s 阶常数方程方阵,u 为未知向量函数。 (c )二阶线性双曲型方程(波动方程) ()022=?? ? ??????-??x u x a x t u ()x a 为非负函数 (d )二维,三维空间变量的波动方程 0222222=???? ????+??-??y u x u t u 022222222=???? ????+??+??-??z u y u x u t u §1 波动方程的差分逼近 1.1 波动方程及其特征 线性双曲型偏微方程的最简单模型是一维波动方程: (1.1) 22 222x u a t u ??=?? 其中0>a 是常数。 (1.1)可表示为:022 222=??-??x u a t u ,进一步有

0=??? ????+?????? ????-?? u x a t x a t 由于 x a t ?? ±??当a dt dx ±=时为()t x u ,的全导数 (=dt du dt dx x u t u ???+??x u a t u ??±??=),故由此定出两个方向 (1.3) a dx dt 1±= 解常微分方程(1.3)得到两族直线 (1.4) 1C t a x =?+ 和 2C t a x =?- 称其为特征。 特征在研究波动方程的各种定解问题时,起着非常重要的作用。 比如,我们可通过特征给出(1.1)的通解。(行波法、特征线法) 将(1.4)视为),(t x 与),(21C C 之间的变量替换。由复合函数的微分法则 2 12211C u C u x C C u x C C u x u ??+ ??=?????+?????=?? x C C u C u C x C C u C u C x u ????? ? ????+????+?????? ????+????=??2 212121122 2 22122212212C u C C u C C u C u ??+???+???+??= 22 22122122C u C C u C u ??+???+??= 同理可得 a t t a t C -=??-=??1,a t C =??2 ???? ????-??=?????+?????=??21 2211C u C u a t C C u t C C u t u

常微分方程差分解法、入门、多解法

毕业论文 题目抛物型方程的差分解法学院数学科学学院 专业信息与计算科学 班级计算0802 学生王丹丹 学号20080901045 指导教师王宣欣 二〇一二年五月二十五日

摘要 偏微分方程的数值解法在数值分析中占有重要的地位,很多科学技术问题的数值计算包括了偏微分方程的数值解问题【1】。近三十多年来,数值解法的理论和方法都有了很大的发展,而且在各个科学技术的领域中应用也愈来愈广泛。本文的研究主要集中在依赖于时间的问题,借助于简单的常系数扩散方程,介绍抛物型方程的差分解法。本文以基本概念和基本方法为主,同时结合算例实现算法。 第一部分介绍偏微分方程及差分解法的基本概念,引入本文的研究对象——常系 数扩散方程: 2 2 ,,0 u u a x R t t x ?? =∈>?? 第二部分介绍上述方程的几种差分格式及每种格式的相容性、收敛性与稳定性。 第三部分通过算例检验每种差分格式的可行性。 关键词:偏微分方程;抛物型;差分格式;收敛性;稳定性;算例

ABSTRACT The numerical solution of partial differential equation holds an important role in numerical analysis .Many problems of compution in the field of science and techology include the numerical solution of partial differential equation. For more than 30 years, the theory and method of the numerical computation made a great development and its applications in various fields of science and technology are more and more widely. This paper focuses on the problems based on time. I will use object-constant diffusion equation to introduces the finite difference method of parabolic equation. This paper mainly focus on the basic concept ,basic method and simple numerical example. The first part of this paper introduces partial differential equations and basic concepts of finite difference method.I will introduce the object-constant diffusion equation for the first time. 2 2 ,,0 u u a x R t t x ?? =∈>?? The second part of this paper introduces several difference schemes of the above equation and their compatibility ,convergence and stability. The third part tests the accuracy of each scheme. Key words:partial differential equation;parabolic;difference scheme;convergence;stability;application

差分方程的解法

第三节 差分方程常用解法与性质分析 1、常系数线性差分方程的解 方程)(...110n b x a x a x a n k k n k n =+++-++ ( 8) 其中k a a a ,...,,10为常数,称方程(8)为常系数线性方程。 又称方程0...110=+++-++n k k n k n x a x a x a (9) 为方程(8)对应的齐次方程。 如果(9)有形如 n n x λ=的解,带入方程中可得: 0 ...1110=++++--k k k k a a a a λλλ (10) 称方程(10)为方程(8)、(9)的特征方程。 显然,如果能求出(10)的根,则可以得到(9)的解。 基本结果如下: (1) 若(10)有k 个不同的实根,则(9)有通解: n k k n n n c c c x λλλ+++=...2211, (2) 若(10)有m 重根λ,则通解中有构成项: n m m n c n c c λ )...(121----+++

(3)若(10)有一对单复根 βαλi ±=,令:?ρλi e ±=, αβ?βαρarctan ,22=+=,则(9)的通解中有构成项: n c n c n n ?ρ?ρsin cos 21--+ (4) 若有m 重复根:βαλi ±=,φρλi e ±=,则(9)的通项中有成 项: n n c n c c n n c n c c n m m m m n m m ?ρ?ρsin )...(cos )...(1221121---++---+++++++ 综上所述,由于方程(10)恰有k 个根,从而构成方程 (9)的通解中必有k 个独立的任意常数。通解可记为:-n x 如果能得到方程(8)的一个特解:*n x ,则(8)必有通解: =n x -n x +* n x (11) (1) 的特解可通过待定系数法来确定。 例如:如果)(),()(n p n p b n b m m n =为n 的多项式,则当b 不是特征 根时,可设成形如)(n q b m n 形式的特解,其中)(n q m 为m 次多项式;如 果b 是r 重根时,可设特解:r n n b )(n q m ,将其代入(8)中确定出系 数即可。

常微分方程的差分方法

第五章 常微分方程的差分方法 一、教学目标及基本要求 通过对本节课的学习,使学生掌握常微分方程、常微分方程方程组的数值解法。 二、教学内容及学时分配 本节课主要介绍常微分方程的数值解法。具体内容如下: 讲授内容:欧拉公式、改进的欧拉公式。 三、教学重点难点 1.教学重点:改进的欧拉公式、龙格库塔方法、收敛性与稳定性。 2. 教学难点:收敛性与稳定性。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解。 五、正文 基于数值积分的求解公式:欧拉公式、改进的欧拉公式 引 言 1.主要考虑如下的一阶常微分方程初值问题的求解: 00()(,)()y x f x y y x y '=??=? 微分方程的解就是求一个函数y=y(x),该函数满足微分方程并且符合初值条件。 2. 例如微分方程: xy'-2y=4x ;初始条件: y(1)=-3。 于是可得一阶常微分方程的初始问题 24(1)3y y x y ?'=+???=-?。 显然函数y(x)=x 2-4x 满足以上条件,因而是该初始问题的微分方程的解。

3. 但是,只有一些特殊类型的微分方程问题能够得到用解析表达式表示的函数解,而大量的微分方程问题很难得到其解析解,有的甚至无法用解析表达式来表示。因此,只能依赖于数值方法去获得微分方程的数值解。 4. 微分方程的数值解: 设微分方程问题的解y(x)的存在区间是[a,b],初始点x 0=a ,将[a,b]进行划分得一系列节点x 0 , x 1 ,...,x n ,其中a= x 0< x 1<…< x n =b 。y(x)的解析表达式不容易得到或根本无法得到,我们用数值方法求得y(x)在每个节点x k 的近似值y(x k ),即 y≈y(x k ),这样y 0 , y 1 ,...,y n 称为微分方程的数值解。 如果计算y n 时,只利用y n-1,称这种方法为单步法;如果在计算y n 时不仅利用y n-1,而且还要利用y n-2, y n-3,…, y n-r ,则称这种方法为r 步方法,也称多步法。 §5.1 欧拉方法 §5.1.1 欧拉格式 方程()(,)n n n y x f x y '=中,1()()()n n n y x y x y x h +-'≈ 1()()(,())n n n n y x y x hf x y x +≈+?1(,)n n n n y y hf x y +=+ 称为解一阶常微分方程初值问题的欧拉公式,也称显示欧拉公式。 欧拉公式的几何意义非常明显,因为微分方程的解在xoy 平面上表示一族积分曲线。用欧拉公式求数值解的几何意义如图: 容易验证,该折线各个顶点的纵坐标(1,2...)n y n =就是欧拉公式算得的近似值解,所以,欧拉方法又称为折线法。 算例:P98

差分方程基本概念和方法

差分方程基本概念和方法 考察定义在整数集上的函数,(),,2,1,0,1,2, n x f n n ==-- 函数()n x f n =在n 时刻的一阶差分定义为: 1(1)()n n n x x x f n f n ?+=-=+- 函数()n x f n =在n 时刻的二阶差分定义为一阶差分的差分: 21212n n n n n n x x x x x x ???+++=-=-+ 同理可依次定义k 阶差分 k n x ? 定义1.含有自变量n ,未知函数n x 以及n x 的差分2,, n n x x ??的函数方程, 称为常 差分方程,简称为差分方程。出现在差分方程中的差分的最高阶数,称为差分方 程的阶。 k 阶差分方程的一般形式为 (,,, ,)0k n n n F n x x x ??= 其中(,,,,)k n n n F n x x x ??为,,, k n n n n x x x ??的已知函数,且至少k n x ?要在式中出 现。 定义2.含有自变量n 和两个或两个以上函数值1,, n n x x +的函数方程,称为(常) 差分方程,出现在差分方程中的未知函数下标的最大差,称为差分方程的阶。 k 阶差分方程的一般形式为 1(,,, ,)0n n n k F n x x x ++= 其中1(,,,,)n n n k F n x x x ++为1,,, n n n k n x x x ++的已知函数,且n x 和n k x +要在式中一定 要出现。 定义3.如果将已知函数()n x n ?=代入上述差分方程,使其对0,1,2, n =成为恒 等式,则称()n x n ?=为差分方程的解。如果差分方程的解中含有k 个独立的任意

必修3知识点总结:第一章_算法初步

高中数学必修3知识点总结 第一章算法初步 1.1.1算法的概念 1、算法概念: 在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成. 2. 算法的特点: (1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的. (2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可. (3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题. (4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法. (5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决. 1.1.2程序框图 1、程序框图基本概念: (一)程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。 一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。(二)构成程序框的图形符号及其作用

学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下: 1、使用标准的图形符号。 2、框图一般按从上到下、从左到右的方向画。 3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的唯一符号。 4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。 5、在图形符号内描述的语言要非常简练清楚。 (三)、算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。 1、顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 顺序结构在程序框图中的体现就是用流程线将程序框自上而 下地连接起来,按顺序执行算法步骤。如在示意图中,A 框和B 框是依次执行的,只有在执行完A 框指定的操作后,才能接着执 行B 框所指定的操作。 2、条件结构: 条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。 条件P 是否成立而选择执行A 框或B 框。无论P 条件是否成立,只能执行A 框或B 框之一,不可能同时执行A 框和B 框,也不可能A 框、B 框都不执行。一个判断结构可以有多个判断框。 3、循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类: (1)、一类是当型循环结构,如下左图所示,它的功能是当给定的条件P 成立时,执行A 框,A 框执行完毕后,再判断条件P 是否成立,如果仍然成立,再执行A 框,如此反复执行A 框,直到某一次条件P 不成立为止,此时不再执行A 框,离开循环结构。 (2)、另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P 是否成立,

抛物型方程差分方法

偏微分方程数值解复习提纲 一.基本内容:(1)椭圆型方程差分方法;(2)抛物型方程差分方法;(3)双曲型方程差分方法;(4)椭圆型方程的有限元方法. 二.基本概念: (1)显式和隐式差分格式,网格比和加密路径; (2)差分格式的截断误差、相容性、稳定性、收敛性、逼近精度阶和收敛阶; (3)双曲型方程(组)的特征与Riemann不变量,差分格式的依赖区域和CFL条件; (4)差分格式的增长因子和增长矩阵、振幅误差与相位误差、耗散与色散、群速度; (5)双曲守恒方程的弱解与激波传播速度; (6)守恒性与守恒型差分格式、有限体积法; (7)差分格式的Fourier分析与L2稳定性、最大值原理与L∞稳定性、实用稳定性和强稳 定性、网格的P`e clet数; (8)椭圆边值问题的变分形式与弱解、强制边界条件与自然边界条件; (9)Galerkin方法与Ritz方法,协调与非协调有限元方法; (10)有限元与有限元空间,有限元插值算子与插值函数,有限元方程与有限元解; (11)有限元的仿射等价与等参等价,有限元剖分的正则性和拟一致性. 三.基本方法与技巧: (1)比较函数与利用最大值原理的误差分析; (2)Taylor展开、Fourier分析、最大值原理; (3)修正方程分析、能量法分析; (4)充分利用解的守恒性和特征,以及适当处理初始条件与边界条件; (5)Sobolev空间及其基本性质,如嵌入定理、迹定理,Poincar′e-Friedrichs不等式; (6)仿射等价、多项式不变算子、商空间与商范数、Sobolev空间半范数的关系; (7)Aubin-Nische技巧,bramble-Hilbert引理,双线性引理. 四.基本格式: (1)二维Poisson方程的五点差分格式; (2)抛物型方程的显式差分格式、隐式差分格式、Crank-Nicolson格式和θ-方法; (3)具有热守恒性质的格式; (4)ADI格式与LOD格式; (5)双曲型方程的迎风格式、Lax-Wendro?格式、盒式格式和蛙跳格式;

相关文档
最新文档