显式算法基于动力学方程,分为静态显式算法和动态显式算法。显式算法最大优点是有较好的稳定性。动态显式算法采用动力学方程的一些差分格式(如广泛使用的中心差分法、线性加速度法、Newmark法和wilson法等),不用直接求解切线刚度,不需要进行平衡迭代。
隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存。
该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。
特别注意
一、“差分法”本身是一种“精算法”而非“估算法”,得出来的大小关系是精确的关系而非粗略的关系;
二、“差分法”与“化同法”经常联系在一起使用,“化同法紧接差分法”与“差分法紧接化同法”是资料分析速算当中经常遇到的两种情形。
三、“差分法”得到“差分数”与“小分数”做比较的时候,还经常需要用到“直除法”。
四、如果两个分数相隔非常近,我们甚至需要反复运用两次“差分法”,这种情况相对比较复杂,但如果运用熟练,同样可以大幅度简化计算。
显式算法基于动力学方程,因此无需迭代;而静态隐式算法基于虚功原理,一般需要迭代计算。显式算法最大优点是有较好的稳定性。
动态显式算法采用动力学方程的一些差分格式,不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小,一般不存在收敛性问题。因此需要的内存也比隐式算法要少。并且数值计算过程可以很容易地进行并行计算,程序编制也相对简单
隐式算法中,在每一增量步内都需要对静态平衡方程进行迭代求解,并且每次迭代都需要求解大型的线性方程组,这以过程需要占用相当数量的计算资源、磁盘空间和内存。该算法中的增量步可以比较大,至少可以比显式算法大得多,但是实际运算中上要受到迭代次数及非线性程度的限制,需要取一个合理值。
显式与隐式的辨析
使用显式方法,计算成本消耗与单元数量成正比,并且大致与最小单元的尺寸成反比,应用隐式方法,经验表明对于许多问题的计算成本大致与自由度数目的平方成正比,因此如果网格是相对均匀的,随着模型尺寸的增长,显式方法表明比隐式方法更加节省计算成本。
显式算法是建立在i时刻的运动平衡方程,不需要迭代,运算简单但是对步长要求很高,因为其影响精度和稳定性;而隐式算法是建立在i+1时刻的,因此需要迭代,过程复杂些,但是更加精确。
如:
dim d,r,t
d=1
r=3
t=d+r
以上就显式申明了变量d,r,t
再如:
d=1
r=3
t=d+r
以上就没有申明变量d,r,t,但这些变量的类型与其第一次赋值的类型有关.可以在VB中强制申明,在模块首部加入Option Explicit即可!
char a='a';
int b = (int)a;
这就是显示
隐士就是系统帮你做了
int b = a;
相反。与之对应的就是显式。。举个例子:
char a=123;
string b=a;
这就是隐式的例子;
char a =123;
int b=(int)a;就是一个显式的例子 了。。