李级数算法和显式辛算法的相位分析
1 引言
动力学方程描述了系统的运动学特性和动力学特性。经典的动力学算法如RK方法等都存在累加的能量耗散和相位误差问题,它们既不保运动学特性也不保动力学特性。冯康等[1-3]从理论上清楚地阐明了经典的动力学算法导致能量耗散的根本原因,并建立了哈密尔顿系统辛几何算法。无论对于线性还是非线性哈密顿系统,辛算法都解决了能量耗散问题,但其存在相位误差累积,因此动力学特性得不到保证。
王顺金等[4]提出了代数动力学算法,其本质是李级数算法[5]。代数动力学算法在可预期和可控制的精度下兼顾运动学保真和动力学保真,但其不是绝对保运动学特性和保动力学特性的,也存在相位误差和能量耗散的累积问题。
钟万勰[6]提出了齐次动力学系统解析解中的指数矩阵的精细算法,对线性定常齐次动力学系统的解析解进行了精确数值计算。文献[7]又给出了载荷为多项式、指数和简谐形式时的非齐次动力方程解析解中Duhamel项的精细计算方法。
任意激励作用下的线性系统动态响应和非线性系统的动态响应的求解问题,对算法的精度和效率提出了更高的要求。李级数方法适用于任意线性和非线性系统的自由振动和受迫振动问题。
文分析了李级数法在求解动力学方程时的幅值和相位误差,分析了显式辛格式的相位误差,并把同类算法(如各阶李级数算法)之间和不同类算法(如李级数算法和辛算法)之间的相位精度进行了比较。
2 李级数法的幅值和相位误差分析
考虑如下线性可分哈密尔顿系统正则方程
2·1 四阶李级数算法的幅值精度
下面以四阶李级数算法为例,讨论李级数算法幅值精度及其改进方法。对于四阶李级数算法,根据表1和式(6),有
于是,经过修正后算法(3)保辛到7阶精度,此时相当于去掉了式(9)或式(10)中的6阶项-τ6/72;同理若在算法(3)添加-h6L6zk/144+h8L8zk/1152,则可以使算法(3)保辛到9阶精度。对于任意阶李级数算法,都可以按照上述方法判断其保辛的精度,也可以采用类似的方法来提高保辛的精度,如二阶李级数算法保辛到3阶精度,通过修正可以把保辛精度提高到5阶。
图1为根据式(9)绘出的r与τ关系曲线,从中可以看出,当步长满足τ=2·828,r=1,此时算法保幅值,但因为τ=2·828相当于一个周期内选取2π/τ个点进行差分,这时算法已经没有使用价值;当τ>2·828时,r >1,此时算法是发散的;当τ<2·828,r <1,此时算法稳定但却是耗散的。
相关文章
- 2024-08-06接触测量中测头半径误差的修正
- 2023-01-0412Cr1MoVg短期高温冲击断裂有限元分析
- 2024-09-19多波长辐射温度计最少波长数确定的理论依据
- 2024-07-22彩色CCD摄像机三基色代表波长的试验研究
- 2023-08-11表面三维形貌参数及其评定
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。