显式(explicit)和隐式(implicit)这两个词在有限元分析中大家可能经常看到,特别是涉及到动力学分析时。但其实广义的说他们分别对应着两种不同的算法:显式算法(explicit method)和隐式算法(implicit method)。所以不论在动力学或者静力学中都有涉及到。显式算法:不直接求解切线刚度,不进行平衡迭代,计算速度快,时间步长只需要足够小,一般不存在收敛问题,需要的内存也小。隐式算法:每一增量步都需要对静态方程进行平衡迭代,且每次迭代需要求解大量的线性方程组,这一特点使之占用大量的资源。但该算法增量步可以很大,至少比显式算法大的多,实际计算中会受到迭代次数及非线性程度的影响我们都知道有限元分析 FEA 在计算微分方程(differential equations)时,由于计算本身的局限,比如计算机储存的位数有限,以及方程本身的复杂性,计算机运用的是数值算法(numerical algorithm)来逼近真实解的。有限元分析中数值算法的基础是欧拉法(Euler method),欧拉法又分为 forwardEuler method和 backward Eulermethod,这两种方法被简称为显式法(explicit method)和隐式法(implicit method)。中心差分法:(动力学分析)用有限差分代替位移对时间的求导,将运动方程中的速度与加速度用位移的某种组合来标示,这样就将常微分方程组的求解问题转化为代数方程组的求解问题,并假设在每个小的时间间隔内满足运动方程。首先我们来看看这两种算法的区别。显式算法(explicit method)(forwardEuler method)考虑常微分方程:初始条件:设 为每一步的时间步长, 在 Tn 时刻,时刻有:. (n=0,1,2,3...),在 T(n+1)所以在显式算法中,T(n+1)时刻的值由 T(n)时刻决定,也就是说当前时刻的值由上一时刻的值决定。隐式算法(implicit method)(backward Euler method)考虑同一个方程,在 T(n+1)时刻有:所以在隐示算法中,T(n+1)时刻的值不光由 T(n)时刻决定,还由当前时刻 T(n+1)决定。也就是说当前时刻的值由上一时刻和当前时刻的值共同决定。隐式算法往往需要求解二次方程。我们来看看一个具体事例:设常微分方程:根据上面的方法,对于显示算法有:得出:对于隐式算法有:导出二次方程:求解得:所以很明显,在隐式算法中,要求得 K+1 时刻的值,就需要求解二次方程的根。关于收敛性o显式算法不存在收敛性的问题(因为不进行收敛计算),从方程中可以看出来,每个时刻的值由上一时刻所确定,所以一步...