资源描述:
《刚性常微分方程初值问题的一种算法及其程序实现_下_》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一九八八年第二期天津商学院学报酗。2,1988刚性常微分方程初值问题的一种算法及其程序实现(下)高福成、四程序流程图:本算法程序实现过程为、。1=。i令t早t+h,、,xp。,。十,;2利用(5)式递推计算各阶差分由(4)和(6)式同时得到不和X、n,,,xp。,3将X不代入微分方程(1)得到一组隐式方程用乳作为初值预报用eonasonxC。十:。十、;Nwt一Rph迭化求得校正值即为t处的数值解、K,rr,4用(15)式计算截断误差E并与用户规定的最大容许误差E比较若超过最,,,t:,,大容许误差则积分
2、失败重选步长或降阶退回t返回步骤2;否则由(18)式计k一1+1阶截断误差:二工二+,,;算阶和kE和E并求得下一步最佳步长和阶数、n=n+,。5令z返回步骤i。其程序流程图为图1所示、五程序实现中的自适应技术,由于实际间题的多样性尤其是刚性特别严重的问题及具有靠近虚轴的非实特征值的,用刚,;,问题性稳定的数值方法求解也会出现不稳定现象同时由于这类方法都是隐式,,,方法每个积分点都存在多次迭代求解非线性方程组的问题计算量较大舍入误差比较。,严重为了进一步提高算法的有效性和可靠性除了从构造公式的根本原理上加
3、以变更以、递,、及从计算技术(如信息的存贮形式推算法等)上加以改进之外还可以从迭代技术。,aucr误差控制及自适应技术等方面使算法进一步完善1980年Gmbart一Dos等人通过BDF算法时,证明了控制积分步数和牛顿迭代次数,减少重算aco实验验证Jbi矩阵及其,。它一些参数的次数可以有效地节省计算时间及减少附加误差和不稳定现象〔4〕本文还通过,{,采用自适应技术即根据具体情况自动调整某些参数以和实际问题相适应的技术提、、。,高程序的应变能力并防止出现不稳定现象减少计算量及保证计算精度;本程序采用的主要自
4、适应技术有开凌台定片又狱数用姐远.开骑入用户夕束穿碧留暮讨并线性代.教方粗部分钟几cooi奴阵计称残性徽分玄握了a‘。‘;矩阵抑分劝计并昨线性洲失分代权娜嘟分伪几cooJ’翅解{.}”’:二用神跳担辉技术求解方粗城迭代次教喊凭一d伪d舀坷一因手一胆IT毛R>斗ITER讨软1::,,洁矛二步升姑截劫谈1返代失效次软饰吸,、、料’瑞海。一差吵偶次K十,阶和K-.阶截断曦积分步长减李差{la图、1程序自起步技术期汾失欣次教那R计林选用一阶公式主选步长积分步狡州计数:处理奴分阅断入计祥预报积分公式系狡的扒分、确史
5、材卢图lb,,。并山截断误差计算出合适的步长退回初始点重新积分,。这样作的结果使程序具有更大的通用性、2误差控制技术BDF和PBD算法的误差控制采用每单位积分步的绝对误差为常数的方式,即ERR··ERh作为每一积分步允许的最大误差(ERR为用户规定,TT为的总体误差TT,,整个积分区间长度h为当前积分步长)其理论依据是基于总体截断误差比局部截断误。,,,〔”〕差低一阶但后来一些分析和数值计算表明对刚性问题每个积分步取常数误差,。即ER=a.ERR(其中a为一系数)的方式优于按每单位步取常数误差的方式〔6〕
6、笔者。,在程序调试中证实了这一结论采用每步取常数误差的方式减少了失败次数增加了稳定。,,性本程序在采用每个积分步取常数误差方式的同时还采取了以下一些调节措施收到:了更好的效果。,,¹前两步积分的误差控制从严因为积分起点往往是被积函数的间断点这时解曲,。,;线变化迅速初始步长不宜过大初始步长过大一方面会使解曲线失真另一方面由于,过大的初始步长会导致后续步长也较大,后续步长改变的连续相依性极易造成以后的失。,,败次数增多因此程序规定前两个积分步的最大容许误差为整体误差的十分之一以迫。使初始步长不致过大。,º高
7、阶公式的误差控制从严由于每一彩铸)步的误差除了截断误差之外还有舍入误。,、、差而舍入误差一般是无法计算的它与计算机的字长数据安排顺序数据分布情况以。,,及计算量大小等因素有关一般来说高阶公式的舍入误差大于低阶公式且稳定性低于低,,二阶公式对高阶公式的误差控制从严是必要的程序取ER(其中K为积分公式,,。阶数)来实现这一点K越大最大容许误差越小,笔者曾用本程序求解几个严重刚性或振荡的电路问题每一积分步的计算解与理论值,。之间的误差都在规定的整体误差范围内说明这种误差控制是合理的、3限制积分失败次数,,。从第
8、三步积分开始当截断误差超过最大容许误差时则积分失败由于我们希望尽,,量使用较大的步长进行积分以减少计算时间但是实际问题中某些被积函数的性态变化剧,。,烈时就不能使用大步长因而造成积分失败是难免的若完全没有积分失败往往说明步,,。;长的选取比较保守从而相应增加计算时间但失败太频繁也会使计算时间加长尤其,,是多次连续失败或者意味着被积函数性态的急剧变化或者意味着遇到了具有虚轴特征值,,这的问题(即寄生振荡)或者意味着本阶公式己进入