基本概念
有限元计算微分方程由于计算机本身的从存储限制及方程的复杂性,采用数值方法来逼近真实解。有限元算法基础——欧拉法、拉格朗日算法,以欧拉法为例,主要分为forward Euler Method及backward Euler Method Forward Euler Method——显示算法,也即Explicit Method。 Backward Euler Method——隐式算法,也即Implicit Method。
算法区别
1.概述
在显式算法中,
T
(
n
+
1
)
T(n+1)
T(n+1)时刻的值由
T
(
n
)
T(n)
T(n)时刻决定,也就是说当前时刻的值由上一时刻的值决定。1、求解常微分方程:
d
y
d
t
=
f
(
t
,
y
)
\frac{dy}{dt}=f(t,y)
dtdy=f(t,y) 2、初始条件:
y
(
t
0
)
=
y
0
y(t_0)=y_0
y(t0)=y0 3、设
h
h
h为每一步的时间步长,在tn时刻:
t
n
=
t
0
+
n
h
t_n=t_0+nh
tn=t0+nh 4、
T
(
n
+
1
)
T(n+1)
T(n+1)时刻数值:
y
n
+
1
=
y
n
+
h
f
(
t
n
,
y
n
)
y_{n+1}=y_n+hf(t_n,y_n)
yn+1=yn+hf(tn,yn)在隐式算法中,
T
(
n
+
1
)
T(n+1)
T(n+1)时刻的值不仅由
T
(
n
)
T(n)
T(n)时刻决定,还由当前时刻
T
(
n
+
1
)
T(n+1)
T(n+1)决定;也就是说当前时刻的值由上一时刻和当前时刻的值共同决定;隐式算法往往需要求解二次方程。1、求解常微分方程:
d
y
d
t
=
f
(
t
,
y
)
\frac{dy}{dt}=f(t,y)
dtdy=f(t,y) 2、初始条件:
y
(
t
0
)
=
y
0
y(t_0)=y_0
y(t0)=y0 3、设
h
h
h为每一步的时间步长,在tn时刻:
t
n
=
t
0
+
n
h
t_n=t_0+nh
tn=t0+nh 4、
T
(
n
+
1
)
T(n+1)
T(n+1)时刻数值:
y
n
+
1
=
y
n
+
h
f
(
t
n
+
1
,
y
n
+
1
)
y_{n+1}=y_n+hf(t_{n+1},y_{n+1})
yn+1=yn+hf(tn+1,yn+1)
2.收敛性
显示算法不存在收敛性的问题(因为不进行收敛计算),每个时刻的值由上一时刻所确定,但当时间步取得较大时,就会脱离真实值。隐式算法是无条件收敛的,在隐式算法中,在求解二次方程的同时,会通过牛顿法对每一步进行迭代收敛,直至收敛到指定的偏差。
3.时间步长的依赖性
显示算法的准确性严重依赖于计算时间步长,要想获得比较准确的结果,时间步需要非常小,但是显式算法是绝对收敛的,对时间步长要求不高。
4.计算效率
显示动力学由于是间接求得位移
x
x
x的,要取得足够的精度,需要取很短的时间步长,所以需要进行很多步计算,但每一步计算需要的时间很短。隐式动力学由于直接求得位移
x
x
x,所以不存在收敛性问题,但由于动力学分析往往涉及非线性(几何非线性、材料非线性等),可能每一步都要进行刚度的求逆,非常耗时,但时间步长相对显示算法可以取得很大。
5.适用范围
显式算法:一般用于作用时间短,非线性程度高的动力学分析、准静态分析。如爆炸、碰撞、跌落及倒塌等。隐式算法:一般用于作用时间较长、非线性程度不高的动力学、静力学分析及准静态分析。
|