显式方法与隐式方法

发布时间:2020-07-14 02:01:02 作者:拳四郎
来源:网络 阅读:772

简介

     所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。并不是说显式只能求动力学问题,隐式只能求静力学问题,只是求解策略不通。
     显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。过多和过小的时间步往往导致求解时间非常漫长,但总能给出一个计算结果。解题费用非常昂贵。因此在建模划分网格时要非常注意。

  隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就的不到结果。

        两者求解问题所耗时间的长短理论上无法比较。实际应用中一般感觉来说显式耗时多些。由于两者解题的出发点,所以一般来说显式用于求解和时间相关的动力学问题。隐式用来求解和时间无关的静力学问题。但也不是绝对的。比如,用隐式求解时,为了克服迭代不收敛,改用显式算,但是要多给点时间,这样虽然克服了不收敛的问题,但是求解的时间费用也是相当客观的。另外,隐式也可以求解动力学问题。
        显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。


隐式积分求解有限元问题

      假设现在一个物体已经被离散成有点个单元。

       显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。

      有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。


      首先定义几个变量:

      x : 当前物体位置;则 显式方法与隐式方法表示速度,显式方法与隐式方法表示加速度。

      显式方法与隐式方法为物体的质量矩阵,显式方法与隐式方法


对于牛顿第二定律: F=ma,用矩阵的形式表示的话:显式方法与隐式方法

其中:显式方法与隐式方法表示物体在X位置下,速度为X导的情况下的受力。


首先问题的初始条件是初始位移显式方法与隐式方法和初始速度显式方法与隐式方法

目的是求得h时间后的位移显式方法与隐式方法和速度显式方法与隐式方法


对于式子:

显式方法与隐式方法


若用显示欧拉求解,记显式方法与隐式方法显式方法与隐式方法,则可得到:

显式方法与隐式方法

这样,就利用欧拉前向方法在小步长的条件下求得当前状态的位置和速度。


对于欧拉隐式解法,上式就变成了

显式方法与隐式方法

前向解法和后向解法的区别就是前向的求解只依赖于前一时刻的状态量,而后向求解则不仅依赖于前一时刻的状态,还依赖于当前时刻的状态。

上式是一个非线性方程,不好直接求解,先对 f 进行泰勒级数展开:

显式方法与隐式方法

代入原式:

显式方法与隐式方法


显式方法与隐式方法


I 表示单位矩阵,对上式进行移项,有

显式方法与隐式方法


通过这个式子很容易求得 detaV,然后detaX也可以求出,那么当前时刻的状态就求出来了。


参考

Large Steps in Cloth Simulation

推荐阅读:
  1. make 的隐式规则(十一)
  2. makefile(06)_隐式规则

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:C# DataTable去除某列重复的数据

下一篇:在CentOS8下安装Python3和ansible

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》