病态系统也称刚性系统,其定义如下。
考虑一般形式的常微分方程组初值问题
假设系统雅可比矩阵器的特征值为λi(i=0,1,…,n),如果系统的特征值均具有负实部,而且其实部的绝对值相差很大,数学上表示为
则式(2.1.34)描述的线性或非线性系统称为病态系统。
由定义可知,病态系统的时间常数(定义为)差别很大,在数值上可能相差几百甚至几万倍。这样,采用一般的方法进行仿真考虑到稳定性的限制,积分步长h必须选得使
小于某个常数,如欧拉法要求
。换句话说,步长受到最小时间常数的限制,只能取得很小,但是,系统的过渡过程要由最大时间常数决定。因此,整个仿真过程要花费大量的计算时间,而且往往由于小步长导致很大的舍入误差而使仿真失败。例如,一个系统的
,则用4阶龙格-库塔法求解步长
,即积分1 s需要的步数
,这样大的计算工作量将带来很大的舍入误差。为了克服上述困难,已经研究出不少有效的算法,如适合线性系统的缩方与乘方算法、蛙跳算法等,这里介绍仿真非线性系统比较有效的吉尔法。
吉尔法为隐式线性多步法,其形式为
式中,αi、βi为待定系数。
当k=1时,得到隐式欧拉法Yn+1=Yn+f(Yn+1,tn+1),其他2~6阶吉尔法的系数如表2.1.3所示。
表2.1.3 2~6阶吉尔法的系数
(www.xing528.com)
吉尔法的稳定区域如图2.1.10所示。可以看出,它的稳定区域不是在整个左半复平面,而是由左半复平面中的R1、R2两个区域组成(见图2.1.11),称为刚性稳定。
对于不同阶的吉尔法,可求出相应的D、θ值。虽然吉尔法放宽了恒稳的稳定性条件,但实际上对大多数病态系统的仿真步长并没有加以限制。
图2.1.10 吉尔法的稳定区域(区域外部)
图2.1.11 刚性稳定区域
由于吉尔法是隐式的,因此采用迭代方法求解式(2.1.36)。若考虑自治方程,则迭代公式可以写为,其中C代表式(2.1.36)中的线性项,它不依赖于迭代次数i,而迭代初值由吉尔法的预估公式得到。式(2.1.36)迭代收敛条件为
,这一条件正是算法稳定性的条件。可见,对于病态非线性系统的仿真,仍然要受制于步长h,所以应采用更有效的迭代方法,如可以使用牛顿迭代方法。为此,需要计算雅可比矩阵
,这要增加很多工作量。但是,雅可比矩阵不必每次迭代都重新计算,只有达到所规定的迭代次数仍未满足给定精度的情况下才重新赋值。在实际的程序实现当中,为了便于变阶、变步长,吉尔法通常表示为向量形式:
式中,解向量,吉尔法系数L=[l0l1…lk]T由表2.1.4给出;P为帕斯卡(Pascal)矩阵;
(i=0,1,2,…,M),i为每步迭代次数。
对非线性病态系统,采用吉尔法通常比采用一般变步长方法可节省大量仿真时间,而且病态程度越高,非线性越强,吉尔法的优越性也就越明显。另外,根据吉尔法编制的程序是通用的,既可以处理病态系统,也可以有效地仿真非病态系统。因此,吉尔法得到了比较广泛的应用。
表2.1.4 向量形式吉尔法的系数
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。