yxshen 发表于 2006-7-19 22:03

想问一下Runge Kutta法和Newmark,中心差分法的区别

好像经常看到把newmark法,中心差分法等列为一类,而不提及newmark法,请问它们的应用范围区别在哪里。谢谢

feifeifool 发表于 2006-7-21 10:10

  问的是不是:“好像经常看到把newmark法,中心差分法等列为一类,而不提及Runge Kutta法”?
  中心差分法一般不适合用于求解结构动力学问题,因为结构动力学分析中常以低频为主,从计算精度的角度考虑,是可以取较大步长的,而实际上中心差分法,为了保证算法的稳定性对步长是有要求的:频率越小,其步长也越小,有个关系式可以查书。这种方法更适合求解波的传播等问题;而nemark方法只要满足一定的条件(这个条件可以查阅相关书籍),是无条件稳定的,而步长的选择只是根据计算精度的要求来确定的.所以通常求解的时候多采用newmark方法而很少使用中心差分法.还有一个威尔逊-theta法也是用来求解结构动力学响应的,这个方法是线性加速度方法的推广,只是在时间步长上引入了一个theta。
  Runge Kutta法是一种更普遍的用于求解常微分方程的数值计算方法,而中心差分法、newmark方法是求解结构动力学响应中的方法,好多问题我们可以用它们求解,Runge Kutta法计算精度可能要比newmark方法高一些,但是同样也是以牺牲计算时间为代价的。
  错误的地方,请大家指正。

why_not 发表于 2006-11-5 21:42

feifeifool在帖中提到:......而实际上中心差分法,为了保证算法的稳定性对步长是有要求的:频率越小,其步长也越小,有个关系式可以查书。......
窃以为并非如此。我所知道的解偏微分方程的时域有限差分法的稳定性条件要求空间步长小于最小波长的1/n,低频对应波长变大,空间步长是可以增加的,时间步长也可相应增加。

dana 发表于 2007-4-7 10:55

能问一下对空间步长有什么理论研究吗

空山长风 发表于 2007-4-7 23:15

原帖由 dana 于 2007-4-7 10:55 发表
能问一下对空间步长有什么理论研究吗

先估计大概频率,然后香农采样定理保证频率信号不丢失

Seventy721 发表于 2007-4-8 05:24

支持2楼!另外补充一点

newmark方法是针对多自由度的线性系统的简化方法。一般的结构振动问题都是线性的或弱非线性的,用此法可以做到“多快好省”。但是如果系统是高度非线性的,您就老老实实用Runge Kutta法吧。如果自由度很多,考虑一下动态子结构之类的缩减方法。

推荐看一篇论文:
Comparison of several numerical methods for mechanical systems with impacts
O. Janin and C. H. Lamarque;
INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN ENGINEERING
Int. J. Numer. Meth. Engng 2001; 51:1101–1132

Seventy721 发表于 2007-4-8 05:35

原帖由 dana 于 2007-4-7 10:55 发表
能问一下对空间步长有什么理论研究吗

空间步长的研究一直就是数值算法的重点。主要围绕两个问题:

1,计算精度问题,就是步长大小对解的精度的影响,一般的数值方法教材里都有。
2,数值稳定性问题,就是步长大小是否会让算法发散,随着计算时间的增长最终得到完全不正确的解。这个理论研究非常多,一般的算法都有这个问题。有些算法是无条件稳定的,不过一般都限于线性系统。对于R-K方法,一般步长不大于系统最小固有周期的1/2.5才能保证稳定。Newmark算法在一定条件下可以做到无条件稳定(稳定性和步长没关系),不过也是有其它代价的。

建议看
Stability of Runge–Kutta–Nyström methods
I. Alonso-Mallo, B. Cano, M.J. Moreta
Journal of Computational and Applied Mathematics 189 (2006) 120–131

dana 发表于 2007-4-11 20:41

感谢Seventy721和空山长风热心回答

dana 发表于 2007-4-12 14:47

问题是这样的:已知位移曲线我们可以根据中心差分法求曲率曲线,
可是目前位移也只能测一些离散点,又想较好的识别曲率,我想问一下步长至少是多少呢,有理论的解吗?

也就是至少位移曲线知道多少个点

请大家指点,非常感谢!!!!!!

appleseed05 发表于 2007-5-7 15:33

再补充一点,采用RK方法虽然计算精度比较高,但是计算时间很长,收敛条件也比较苛刻。对动力学方程,节点一般超过10个,就不太算得动了。另外,RK方法对刚性方程一般是不收敛的。

心灯 发表于 2007-5-8 19:19

原帖由 appleseed05 于 2007-5-7 15:33 发表
再补充一点,采用RK方法虽然计算精度比较高,但是计算时间很长,收敛条件也比较苛刻。对动力学方程,节点一般超过10个,就不太算得动了。另外,RK方法对刚性方程一般是不收敛的。
RK方法适合求解刚性方程,我记得刚性微分方程的书上介绍过的,不过不记得是否对方法的形式做过处理了。

mxtfirst 发表于 2007-5-10 09:35

原帖由 心灯 于 2007-5-8 19:19 发表
RK方法适合求解刚性方程,我记得刚性微分方程的书上介绍过的,不过不记得是否对方法的形式做过处理了。
普通的RK方法是不适合求解刚性微分方程的,隐式RK方法可以,

cansuidefeng 发表于 2009-4-6 13:16

谁有这方面的算法资料!!谢谢各位了!!

xhj 发表于 2009-4-25 11:37

虽然目前有很多算法可以求解非线性联立方程组,如Newton Raphson迭代算法是一种最常用的方法,但是从计算效率考虑,在结构动力响应分析中一般对它的计算过程加以修正提高计算收敛性和效率,各种改进算法中Newmark - beta法和Wilson -theta法是结构地震响应分析中最常用的两种方法。
   Runge-Kutta法作为微分方程式的数值积分法虽然是一种有代表性的计算方法,该方法具有计算精度高、误差容易估计的优点,但是对于高频率的振动用Runge-Kutta法计算容易发生不稳定和发散的现象,而且计算所需的时间也相对比较长,因此在结构地震响应分析中Runge-Kutta法的应用不如Newmark法和Wilson法普遍.

ttwwooblueyes 发表于 2009-8-28 18:50

回复 13楼 cansuidefeng 的帖子

MATLAB帮助是很好的资料。在帮助中搜索ode或者Runge-Kutta即可。
页: [1] 2
查看完整版本: 想问一下Runge Kutta法和Newmark,中心差分法的区别