找回密码
 注册
Simdroid-非首页
查看: 2008|回复: 23

[显式/隐式] 我对显式算法和隐式算法的理解

[复制链接]
发表于 2011-7-18 11:43:19 | 显示全部楼层 |阅读模式 来自 湖南长沙
本帖最后由 magicwolf 于 2011-7-19 00:19 编辑

学习lsdyna的时候经常能看到隐式算法和显式算法的提法,由于理论的匮乏,此前也就没有去深究到底是个怎么回事。最近看了一些有限元理论方面的书,结合别人的看法,谈一谈自己对其的理解:
    k文件手册APPENDIX P:  Implicit Solver 中的第一句这么说 "The terms implicit and explicit refer to time integration algorithms.",也就是说“隐式”和“显式”是涉及时间积分算法的术语。如果按照这么说,dyna所指的显式与隐式则是单指动力学分析中的显示积分算法--中心差分法与隐式积分算法--newmark迭代法,因为只有动力学方程才涉及到时间积分,静力分析与时间无关。
    一般有限元教材中也只有在结构动力学分析那一章会讲到直接积分法中的显式算法和隐式算法,这里有个限定语“直接积分法中的”,所以教材里的显式、隐式算法应该也只是指动力学分析这一块。
    所以,有人在这个帖子里(http://bbs.simwe.com/viewthread.php?tid=743224)总结说:
1)求解线性静力学问题,虽然求解线性方程组,但是没有时步的关系,所以不应将其看作隐式算法。
2)求解非线性静力学问题,虽然求解过程需要迭代,或者是增量法,但是没有明显的时步问题,所以不应将其看作隐式算法。

    但是,dyna中的确是把静力分析归到implicit这一块,这也与"The terms implicit and explicit refer to time integration algorithms."这句话矛盾了。
    避开这个矛盾不谈,dyna把静力分析归到implicit可以按照隐式与显式的数学意义理解:
    例如求解一个一元二次方程X^2-2=0,直接用求根公式X=[-b±sqrt(b^2-4ac)]/2a计算,公式等号右边不包含X,这就是显式算法;如果采用牛顿迭代法计算,那么方程转化为X=(X+2/X)/2进行迭代逼近,不能直接求解X,就是隐式算法。也就是说显式或者隐式只是求解策略上的区别,跟方程本身并无太大关系。比如线性静力问题,求[K]{D}=[R]的位移{D},如果这么计算:{D}=[K]'[R](单引号 ' 表示-1,即[K]逆 乘以[R]),就是显式算法;如果采用计算机里求解大型线性方程组常用的迭代法计算,那么就是隐式算法。所以,显式和隐式与静力分析或者动力学分析没有直接关系。
    dyna在求解静力问题时采用的应该是迭代法,属于隐式的范畴,所以把它归到implicit这一类。
    以上是我对显式和隐式的理解,欢迎指正

评分

1

查看全部评分

发表于 2011-7-18 22:35:43 | 显示全部楼层 来自 安徽芜湖
Simdroid开发平台
高手!学习中!
回复 不支持

使用道具 举报

发表于 2011-7-19 01:14:40 | 显示全部楼层 来自 美国
显示积分算法 - Rugge-Kutta
simi-implicit  -  Eular (backward & Forward)
implicit         - crank-Nicoson & newmark & HHT
That is it

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-9-8 16:46:19 | 显示全部楼层 来自 北京
学习学习!
回复 不支持

使用道具 举报

发表于 2011-9-8 21:28:17 | 显示全部楼层 来自 吉林长春
受教:)
回复 不支持

使用道具 举报

发表于 2011-9-29 17:46:00 | 显示全部楼层 来自 新加坡
我的理解是一般不涉及非线性的静力问题只是动力方程中没有质量阵,没有阻尼阵,没有速度项,没有加速度相,荷载也和时间无关的一种特殊的形式,你非的把它当成动力问题也可以用显示或隐示积分去做,只要加个常量的荷载就可以了,但没有这个必要,因为隐示积分一般就可以迭代出结果。
不知道我理解的对不对!
回复 不支持

使用道具 举报

发表于 2011-12-7 20:54:32 | 显示全部楼层 来自 北京
受用无穷
回复 不支持

使用道具 举报

发表于 2011-12-8 09:04:34 | 显示全部楼层 来自 山东青岛
以前只是理解显示是不需要迭代的,有精确解;隐式是需要迭代的,无精确解!大概就是这么个意思!
回复 不支持

使用道具 举报

发表于 2012-1-10 17:02:45 | 显示全部楼层 来自 四川德阳
理解中,学习中..................
回复 不支持

使用道具 举报

发表于 2012-2-6 16:55:55 | 显示全部楼层 来自 台湾
感謝分享~原本以為IMPLICIT就是求解靜力學....
學習了~
回复 不支持

使用道具 举报

发表于 2012-2-23 22:11:49 | 显示全部楼层 来自 甘肃兰州
隐式是不能求解,那么最终是得到结果吗?还是在求解过程中一边求解,一边得到结果呢?
回复 不支持

使用道具 举报

发表于 2012-2-23 23:46:32 | 显示全部楼层 来自 北京
高手,厉害!!!
回复 不支持

使用道具 举报

发表于 2012-5-31 13:46:23 | 显示全部楼层 来自 江苏无锡
很给力,学习了。
回复 不支持

使用道具 举报

发表于 2012-9-26 02:51:18 | 显示全部楼层 来自 德国
这个都搞不明白,不要做有限元了!
回复 不支持

使用道具 举报

发表于 2012-10-9 14:17:40 | 显示全部楼层 来自 台湾
学习中,厉害!!!!
回复 不支持

使用道具 举报

发表于 2012-11-9 09:23:44 | 显示全部楼层 来自 吉林长春
学习了,谢谢
回复 不支持

使用道具 举报

发表于 2013-1-4 18:09:59 | 显示全部楼层 来自 黑龙江哈尔滨
本帖最后由 superuirui 于 2013-1-9 17:05 编辑

我个人的理解:隐式算法就是在计算的过程中需要求解类似[K']{x}=[F']的方程组(包括迭代求解、直接求解等),像NEWMARK法就属于这类方法;而显式算法并不需要求解方程组,算法本身可以写成递推格式。显式、隐式类型与分析类型(静力问题或动力问题)无关。
回复 不支持

使用道具 举报

发表于 2013-1-7 15:30:38 | 显示全部楼层 来自 北京海淀
superuirui 发表于 2013-1-4 18:09
我个人的理解:隐式算法就是在计算的过程中需要求解类似[K']{x}=[F']的方程组(包括迭代求解、直接求解等) ...

您说的靠谱,显式就是可以直接得到结果不需要求逆矩阵过程的,隐式需要解逆矩阵。隐式不代表结果不精确,反而是显式结果可能不够精确,这与时间步长有关
回复 不支持

使用道具 举报

发表于 2013-1-7 19:44:59 | 显示全部楼层 来自 北京
分析的很深入,受教了
回复 不支持

使用道具 举报

发表于 2013-3-10 11:52:40 | 显示全部楼层 来自 上海
经过看了楼主的帖子受益匪浅,但是有个具体的问题想请教,比如一个销钉插入销孔的例子,大家都会选择隐式算法而没有使用显示算法,使用显示算法精度不高还是因为什么?请指教!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 20:05 , Processed in 0.061279 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表