精华内容
下载资源
问答
  • 显式欧拉法 隐式欧拉法 中点欧拉法 梯形欧拉法 误差 例子

    显式欧拉法

    隐式欧拉法

    中点欧拉法

    梯形欧拉法

     

    误差

     

    例子

    展开全文
  • 什么叫做隐式迭代?

    2018-07-28 14:47:00
    方法的内部会为匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用,这就叫做隐式迭代  我想把ul下的每个li都加个样式jquery写法就是:$("ul li").addClass(...
    1. 在方法的内部会为匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用,这就叫做隐式迭代  
      1. 我想把ul下的每个li都加个样式jquery写法就是:$("ul li").addClass("test"),就是把ul下的每一个li都加了test的样式,我们并没有去取得所有li然后循环加样式
    2. 如果获取的是多元素的值,大部分情况下返回的是第一个元素的值
    3. each方法:大部分情况下是不需要使用each方法的,因为jquery有隐式迭代的特性,但是如果要对每个元素做不同的处理就要用到each方法了

    转载于:https://www.cnblogs.com/chennanxiangbei/p/9381988.html

    展开全文
  • 显式方法隐式方法

    万次阅读 多人点赞 2013-10-18 14:48:03
     显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。过多和过小的时间步往往导致求解时间非常漫长,但总能给出一个计算结果。解题费用非常昂贵。因此在建模划分网格时要非常注意。...

    简介

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

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

            两者求解问题所耗时间的长短理论上无法比较。实际应用中一般感觉来说显式耗时多些。由于两者解题的出发点,所以一般来说显式用于求解和时间相关的动力学问题。隐式用来求解和时间无关的静力学问题。但也不是绝对的。比如,用隐式求解时,为了克服迭代不收敛,改用显式算,但是要多给点时间,这样虽然克服了不收敛的问题,但是求解的时间费用也是相当客观的。另外,隐式也可以求解动力学问题。
            显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如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

    展开全文
  • 借助计算机编程,数值积分可以快速而有效地计算复杂的积分。 欧拉方法 欧拉方法是一种数值积分方法,又称为欧拉折线法,是用折线来逼近曲线的一种方法。 例如dydx=f(x,y)\frac{dy}{dx}=f(x,y)dxdy​=

    本人初学者,零基础入门(大二数学基础),因此本教程还算比较舒适,但是也免不了有错误,还请批评指正。


    数值积分

    数值积分,是用于求定积分的近似值的一种方法。在数学分析中,有很多计算给定函数的定积分是不可行的,而数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。借助计算机和编程,数值积分可以快速而有效地计算复杂的积分。


    欧拉方法

    欧拉方法是一种数值积分方法,又称为欧拉折线法,是用折线来逼近曲线的一种方法。

    例如 d y d x = f ( x , y ) \frac{dy}{dx}=f(x,y) dxdy=f(x,y),可以转化为 y n + 1 − y n = f ( x n , y n ) h y_{n+1}-y_n=f(x_n,y_n)h yn+1yn=f(xn,yn)h,其中h则为折线的步长。

    由泰勒公式 y ( x + h ) = y ( x ) + y ′ ( x ) h + o ( h ) y(x+h)=y(x)+y^{'}(x)h+o(h) y(x+h)=y(x)+y(x)h+o(h),可以看出欧拉公式实际上是泰勒公式的离散形式。很显然,h越小,欧拉方法的结果越精确,h越大,结果越不精确。

    但是h较大时,除了不精确之外,还会导致使用欧拉方法得到的值不收敛,即不稳定。

    欧拉方法分为显式积分和隐式积分两种形式,其中显式积分条件稳定,隐式积分无条件稳定:
    在这里插入图片描述


    弹簧质点系统

    在清楚了数值积分的解决方法之后,我们使用它来解决一个最简单的物理模拟问题——弹簧质点系统。

    弹簧质点系统中主要有弹力和阻力。
    在这里插入图片描述
    在这里插入图片描述
    总结弹力和阻力的计算公式如下:

    { f ( x a ) s = − k s x a − x b ∣ ∣ x a − x b ∣ ∣ ( ∣ ∣ x a − x b ∣ ∣ − l ) f ( x a ) d = − k d x a − x b ∣ ∣ x a − x b ∣ ∣ ( x a ′ − x b ′ ) ⋅ x a − x b ∣ ∣ x a − x b ∣ ∣ \left\{ \begin{array}{c} \LARGE f(x_a)_s=-k_s\frac{x_a-x_b}{||x_a-x_b||}(||x_a-x_b||-l) \\ \\ \LARGE f(x_a)_d=-k_d\frac{x_a-x_b}{||x_a-x_b||}(x_a^{'}-x_b^{'})·\frac{x_a-x_b}{||x_a-x_b||} \end{array} \right. f(xa)s=ksxaxbxaxb(xaxbl)f(xa)d=kdxaxbxaxb(xaxb)xaxbxaxb

    显式方法

    { f t = ∑ b = 0 n f ( x a ) s + ∑ b = 0 n f ( x a ) d v t + d t = v t + d t ∗ f t m x t + d t = x t + d t ∗ v t \left\{ \begin{array}{c} \LARGE f_t=\sum_{b=0}^n f(x_a)_s+\sum_{b=0}^nf(x_a)_d \\ \\ \LARGE v_{t+dt}=v_t+dt*\frac{f_t}{m} \\ \\ \LARGE x_{t+dt}=x_t+dt*v_t \end{array} \right. ft=b=0nf(xa)s+b=0nf(xa)dvt+dt=vt+dtmftxt+dt=xt+dtvt

    显式方法直接实现即可。

    半隐式方法

    { v t + d t = v t + d t ∗ f t m x t + d t = x t + d t ∗ v t + d t \left\{ \begin{array}{c} \LARGE v_{t+dt}=v_t+dt*\frac{f_{t}}{m} \\ \\ \LARGE x_{t+dt}=x_t+dt*v_{t+dt} \end{array} \right. vt+dt=vt+dtmftxt+dt=xt+dtvt+dt

    可以直接实现,求速度时使用显式,求位移时使用隐式。

    隐式方法

    { v t + d t = v t + d t ∗ f t + d t m x t + d t = x t + d t ∗ v t + d t \left\{ \begin{array}{c} \LARGE v_{t+dt}=v_t+dt*\frac{f_{t+dt}}{m} \\ \\ \LARGE x_{t+dt}=x_t+dt*v_{t+dt} \end{array} \right. vt+dt=vt+dtmft+dtxt+dt=xt+dtvt+dt

    隐式方法需要进行特殊的推导。

    由泰勒公式的一阶展开,可以得到f的近似:

    f t + d t = f t + ∂ f ∂ x △ x + ∂ f ∂ v △ v \LARGE f_{t+dt}=f_t+\frac{∂f}{∂x}△x+\frac{∂f}{∂v}△v ft+dt=ft+xfx+vfv

    代入上式,可以求得△v的表示形式为:

    △ v = v t + d t − v t = d t ∗ f t + d t m \LARGE △v=v_{t+dt}-v_t=dt*\frac{f_{t+dt}}{m} v=vt+dtvt=dtmft+dt

    △ v = d t m ∗ ( f t + ∂ f ∂ x △ x + ∂ f ∂ v △ v ) \LARGE △v=\frac{dt}{m}*(f_t+\frac{∂f}{∂x}△x+\frac{∂f}{∂v}△v) v=mdt(ft+xfx+vfv)

    将△x也表示为△v的式子:

    △ x = x t + d t − x t = d t ∗ v t + d t = d t ∗ ( v t + △ v ) \LARGE △x=x_{t+dt}-x_t=dt*v_{t+dt}=dt*(v_t+△v) x=xt+dtxt=dtvt+dt=dt(vt+v)

    代入上式,消去△x:

    △ v = d t m ∗ ( f t + d t ∗ ∂ f ∂ x ( v t + △ v ) + ∂ f ∂ v △ v ) \LARGE △v=\frac{dt}{m}*(f_t+dt*\frac{∂f}{∂x}(v_t+△v)+\frac{∂f}{∂v}△v) v=mdt(ft+dtxf(vt+v)+vfv)

    展开括号:

    △ v = d t m ∗ f t + d t 2 m ∂ f ∂ x v t + d t 2 m ∂ f ∂ x △ v + d t m ∂ f ∂ v △ v \LARGE △v=\frac{dt}{m}*f_t+\frac{dt^2}{m}\frac{∂f}{∂x}v_t+\frac{dt^2}{m}\frac{∂f}{∂x}△v+\frac{dt}{m}\frac{∂f}{∂v}△v v=mdtft+mdt2xfvt+mdt2xfv+mdtvfv

    移项:

    △ v − d t 2 m ∂ f ∂ x △ v − d t m ∂ f ∂ v △ v = d t m ∗ f t + d t 2 m ∂ f ∂ x v t \LARGE △v-\frac{dt^2}{m}\frac{∂f}{∂x}△v-\frac{dt}{m}\frac{∂f}{∂v}△v=\frac{dt}{m}*f_t+\frac{dt^2}{m}\frac{∂f}{∂x}v_t vmdt2xfvmdtvfv=mdtft+mdt2xfvt

    整理:

    ( 1 − d t 2 m ∂ f ∂ x − d t m ∂ f ∂ v ) △ v = d t m ( f t + d t ∗ ∂ f ∂ x v t ) \LARGE (1-\frac{dt^2}{m}\frac{∂f}{∂x}-\frac{dt}{m}\frac{∂f}{∂v})△v=\frac{dt}{m}(f_t+dt*\frac{∂f}{∂x}v_t) (1mdt2xfmdtvf)v=mdt(ft+dtxfvt)

    别忘了我们操作的是一个矩阵:

    ( I − d t 2 M ∂ f ∂ x − d t M ∂ f ∂ v ) △ v = d t M ( f t + d t ∗ ∂ f ∂ x v t ) \LARGE (I-\frac{dt^2}{M}\frac{∂f}{∂x}-\frac{dt}{M}\frac{∂f}{∂v})△v=\frac{dt}{M}(f_t+dt*\frac{∂f}{∂x}v_t) (IMdt2xfMdtvf)v=Mdt(ft+dtxfvt)

    两边乘以M:

    ( M − d t 2 ∂ f ∂ x − d t ∂ f ∂ v ) △ v = d t ( f t + d t ∗ ∂ f ∂ x v t ) \LARGE (M-dt^2\frac{∂f}{∂x}-dt\frac{∂f}{∂v})△v=dt(f_t+dt*\frac{∂f}{∂x}v_t) (Mdt2xfdtvf)v=dt(ft+dtxfvt)

    解隐式积分需要求解上述的线性方程组,并解出△v。

    其中 ∂ f ∂ x \frac{∂f}{∂x} xf ∂ f ∂ v \frac{∂f}{∂v} vf的计算方法在参考文献中写的很清楚,这里直接给出结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    雅克比迭代

    在隐式方法中,最终需要求解的线性方程组往往是一个巨大的稀疏矩阵,因此很难通过矩阵求逆的方式求解,这里介绍最简单的迭代求解线性方程组的方法——雅克比迭代。

    在这里插入图片描述
    在这里插入图片描述


    实例代码

    弹簧质点系统的显式方法

    弹簧质点系统的隐式方法

    代码由python语言以及taichi框架编写而成。

    单击鼠标添加质点,相邻质点自动添加弹簧,其中红色弹簧表示伸长中,绿色弹簧表示收缩中。
    在这里插入图片描述


    公式和求导部分参考
    隐式方法推导部分参考
    雅克比迭代部分参考

    展开全文
  • 考虑到LU-SGS迭代法已经在基于非结构网格的有限...通过对NACA0012翼型ONERA M6机翼跨声速无粘流动进行数值模拟,计算结果表明:与TVD-RKDG显式时间格式相比,隐式格式所需的迭代步数CPU时间均得到了很大程度上的减少
  • 学习模式上的记录之数值计算篇-显式隐式 之前理解的是,未知数(所要求解的变量)...显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。过多和过小的时间步往往导致求解时间非常漫
  • 显示和隐式区别在于,求解偏微分方程时所采用的数学策略的区别,具体而言,显示是差分,隐式是牛顿迭代。求解方式的差异,必然会有不同的优缺点。 隐式 -- 优点是准确,对步长无要求(即,对网格无要求),但存在...
  • 主要介绍了Java设计模式之迭代模式(Iterator模式)介绍,本文用一个老师点名的现象描述了迭代模式的使用,需要的朋友可以参考下
  • 隐式显式有限元算法

    千次阅读 2020-12-08 17:30:10
    采用隐式迭代求解平衡方程(位移、速度加速度)、而不管是否用隐式与显式方法(前向或者后向欧拉求解方法)求解本构方程(应力应变)叫做隐式有限元;用显式时间积分的方法求解叫做显式有限元。 首先,对于本...
  • 显式算法与隐式算法的区别 1显式算法 最大优点是有较好的稳定性 动态显式算法采用动力学方程的一些差分格式如广泛使用的 中心差分法线性加速度法Newmark 法 wilson 法等不用直 接求解切线刚度不需要进行平衡迭代...
  • 显式算法和隐式算法的并行化比较

    千次阅读 2012-03-26 11:17:23
    显式算法 显式算法基本假定为:在一微小时间段内,模型任意点速度、加速度为常数。ABAQUS软件Explicit模块应用中心差分法对运动方程进行显式时间积分, 运动方程的解为 ¨u(i)=M-1·(F...
  • 前两天,同事研究Dyna的显/隐式时间积分的差异基本原理。想来自己也有三、四年没做这方面的编程了,对同事问的一些问题也一时犯迷瞪,索性就又看了一遍书,网上找了些资料,写了点代码,理了理思路,以备不时之需...
  • Qt隐式共享与显式共享

    千次阅读 2017-04-10 13:43:55
    Qt中的很多C++类都使用了隐式数据共享来最大化资源使用最小化拷贝代价。隐式共享类在作为参数传递时,不仅安全而且高效,因为只是指向数据的指针被传递了,底层的数据只有在函数向它执行写动作时才会发生拷贝,即...
  • RTM充模分析的隐式方法需要迭代来决定树脂注满的区域。为了改善隐式方法迭代过程,在本文中提出了一种基于界面更新的隐式方法。该方法只对已注满结点进行求解,然后更新界面结点的体积函数以便决定是否要更新界面...
  • C++中生成对象有两种方法显式和隐式的。
  • 【计算软件】ABAQUS平台【算例说明】掌握Abaqus显式和隐式联合分析(1)隐式算法和显式算法介绍(2)显式和隐式顺序耦合分析(3)实例—钣金成形显式隐式顺序耦合回弹分析(4)隐式和显式直接耦合分析【工程案例】冲击悬臂的...
  • 二维瞬态导热时间隐式格式ADI迭代MATLAB程序 代码改编自计算传热学–17-ADI迭代-数值传热学 计算传热学–17-ADI迭代的源程序 下面是代码 %ADI implicit time 2d clc clear %% LengthX = 3; LengthY = 2; Tleft = 3.5...
  • 因你精彩即刻关注“通俗讲动力数值算法” 随着科学研究工程技术的不断发展,出现了诸如航天飞机、空间站、海洋石油钻井平台等大型或超大型的复杂结构,它们不但自由度高,而且...
  • fastpcr通过矩阵多项式方法(通过Lanczos方法显式隐式)完全避免了这一步骤。 为此,它需要访问standard的算法。 它使用对该算法的一些调用来构造主成分回归问题的解决方案。 用法 输入: fastpcr(A, b, lambda, ...
  • synchronized隐式Lock显式
  • 上一节讲了常微分方程的三种离散...目录§2 欧拉(Euler)方法2.1 向前 Euler 公式、向后 Euler 公式 2.2 Euler 方法的误差估计§3 改进的 Euler 方法3.1 梯形公式 3.2 改进 Euler 法§2 欧拉(Euler)方法2.1 向前 Eul...
  • 特殊方法特殊方法的存在是为了给 Python 解释器调用的,通常自己并不需要直接调用它们。也就是说不应该使用 my_object.__len__() 这种写法,而应该使用 len(my_object)调用。在执行 len(my_object) 的时候,如果 my_...
  • 什么是迭代器模式:这个模式主要是基于迭代器的扩展设计而形成的一种模式,迭代器的常用方法是hasNext()next()方法,前者判断有没有下一个元素,后者表示取出下一个元素,在Java集合框架中,我们可以发现,其实...
  • 这两天要用Pytorch做一些分布式SGD的复现,...这里就重点介绍Python中迭代生成器的使用方法。 如何创建一个迭代器对象? 如何从非迭代器对象中得到迭代器对象? 生成器:另一种创建的迭代器对象的方式 ...
  • 我有一个偏微分方程组(PDE),特别是应用于传热对流的扩散-平流-反应方程,我用有限差分法求解。在我的模拟环境中,我有很多不同的部分,比如管道,储能器,热交换器等等。。。根据零件的不同,每个零件的PDE可以是...
  • 而静态隐式算法基于虚功原理,一般需要迭代计算2、显式算法最大优点是有较好的稳定性。动态显式算法采用动力学方程的一些差分格式,不用直接求解切线刚度,不需要进行平衡迭代,计算速度快,时间步长只要取的足够小...
  • Adams隐式4阶方法解常微分方程,由4阶Runge-Kutta方法提供初值,隐式方法显式复杂一些,主要是因为需要解方程。这里使用弦截法解微分方程。 import math import numpy as np import matplotlib.pyplot as plt ...
  • C++迭代显示类型转换

    千次阅读 2018-11-12 16:19:28
    其实迭代器很简单,没有我们想象中的那么复杂。以前要读写数据结构中的数据,一般是通过移动指针来进行的,但是在编写指针的过程中难免会出现野指针等情况出现,这时候,神奇的迭代器出现了。 迭代器是指针的一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,351
精华内容 8,940
关键字:

显式迭代方法和隐式迭代

友情链接: DS1302.zip