[讨论]非线性振动方程m(d(dx/dt)/dt)+f(dx/dt)+g(x)=h(t)数值解
m(d(dx/dt)/dt)+f(dx/dt)+g(x)=h(t)其中f(dx/dt),g(x),f(t)均为已知函数,
针对这样的非线性振动方程,目前的解析法无法分析,
那么,数值分析呢?
目前的wilson,newmark,中心差分法等均是针对线性系统推导的,
而对于非线性的解法国内的书籍基本没有介绍.
偶尔几篇期刊里有部分介绍,明明是引用的国外的东东,自己又偏偏不把其列入参考文献.:(
在此,想和大家讨论一下以上方程的数值解法.
欢迎大家发表意见.谢谢 这个题目真的好大,个人认为现在最常用的算法也就牛顿迭代法、Runge-Kutta法、伪弧长算法以及打靶法吧,其他的算法提出来倒是很多,但是基本都不怎么常用。 改为
m(d(dx/dt)/dt)+c*dx/dt+k*x=h(t)
后,大家都可进行分析了.
因为是常微分方程.
改为
m(d(dx/dt)/dt)+f(dx/dt)+k*x=h(t)
问题又难起来了,
由于是二阶非线性微分方程,首先的作差分格式,及其稳定性适定兴,关键难度在此.
newton法一般是非线性方程的解法.微分方程得先作格式再迭代求解的.欢迎讨论. 看楼主的描述指的应该是含非线性阻尼力的非线性振动系统。
实际上对于这类问题,如果是单自由度系统的话并不一定非要采用数值解法,采用KMB法之类的还是可以获得近似解的。
对于高维系统系统现在也就只能采用数值算法,一般最常用的也就是RK法,打靶法以及Wilson-法等一些常规的算法,但是普遍都存在着稳定性、收敛性以及计算量达等等一系列的问题。
不过前一段时间看到了一个篇基于结式法的Hopf分岔条件的导出方面文章,感觉很不错,一次为基础说不定能构造出良好的计算方法来,有兴趣的话大家可以研究研究。 Gross和Feudel去年提出了一种算法挺有前途的,不过是那篇文章忘记了 单自由度系统振动分析的定量分析法(如,kbm法,等效线性化法,慢变参数法,坐标变换法等)
很多均是针对小参数/弱非线性分析的,
系统为弱非线性的话,这些方法基本可用,
系统非线性较强时便不再适合了.
谐波平衡法理论上可以分析较强非线性的问题,
但是,用它作数值计算时会出现无法回避的问题,
aspen所说的------------RK法,打靶法以及Wilson-法等一些常规的算法
不知可否提供一下求解上述方程的这些算法(是针对多自由度系统的更好)
或其相关资料.
据偶所知:rk法大多用来作常微数值,wilson法基本用作线性系统及一些材料/几何非线性问题中.
打靶法没有关注过.
谢谢. 确实kbm法,等效线性化法,慢变参数法,坐标变换法等等都主要是针对弱非线方面的问题,但是各自都存在的一定的缺陷。
谐波平衡法不仅对弱非线性问题,对强非线性问题也是很有效的,大部分情况下都能得到较为满意的结果,对于具有非线性耗散特性的弹性体振动也是适用的。但是谐波平衡法也存在着一个很大的缺陷,就是要获得较为准确的解必须包含解中所有的谐波成分。
rk法fortran函数库中有自带的,打靶法我倒是写了一个,不过是和其他程序集成在一起的,一直没有单独抽出来。wilson法我具体没有怎么用过,它是假设加速度在一个微小的时间段内是线性变化的,然后计算出该时间区间内的近似解,但进取前半部分作为正式解略去了后半部分。从其思想上来说,应该是适用于一定的非线性问题的求解的。
除了上述的方法,伪弧长法现在好像用得也挺多。
另外我不知道你一直强调的常微是什么意思?难道上述方程不是常微的吗?
你所说的常微是指常系数微分方程吗? 谢谢aspen,
偶概念发生了混淆,
去图书馆查阅了相关书籍,上述方程可以用rk法求解的,打靶法偶没试过,
有人根据implicit newmark法,导出了此类方程的近似解法,
只是偶没有找到其算法推导,以及相关稳定性,适定性的证明.
以其算法,做了一个小程序,计算结果从图像上来看效果还不错,
只是无法判别其近似程度,
目前正进一步用高阶rk法试试. 呵,newmark法也是很好的方法,近今年流行起来的,最大的优点就是计算稳定性好,计算结果精确。
打靶法主要是用来求解常微方程的边值问题 m(d(dx/dt)/dt)+f(dx/dt)+g(x)=h(t)
用h(t)=sin(5t)时,效果还可以.同时用wilson法也可.
而将h(t)换成复杂数据点时,发现用标准四阶runge-kutta求解结果一塌糊涂.
wilson法就不收敛了.
估计原因:标准四阶rk法为explicit算法.
目前在研究rk的implicit算法.
另外,上面提到的wilson算法,偶一直怀疑是别人给的算法不全(杂志上面印较为模糊),
哪位手头有与wilson算法相关的资料可以提供一下.谢谢.
(不是常规的求解线性动力方程的wilson法,估计该是改进的) 本帖最后由 VibInfo 于 2016-4-18 15:55 编辑
rk法除了稳定性不太好之外,一般都不会有什么问题。
个人估计还是你的程序有问题。
wilson方法可以参考一下
《Wilson-θ方法在结构动力分析中的应用研究》
这篇文章
本帖最后由 VibInfo 于 2016-4-18 15:55 编辑
文章刚粗略看了一下,
里面就是一般的单自由度的线性动力分析(仅分析了受谐波作用的响应),
可能是程序的问题,再看看。谢谢。
本帖最后由 VibInfo 于 2016-4-18 15:55 编辑
个人感觉现在普遍有一个误区就是,什么东西如果有点不一样大家觉得没有太大价值,其实很多东西虽然有很多的理论之类的都有很多不一样,但是关键是要掌握其基本思想,然后再把这种思想深化应用,我想这应该是科研的一个基本能力之一。
比如这个问题,实际上说的就是wilson算法的问题,文章中具体对象确实也是单自由度的,但是我想把他对广到多自由度的应该不难。
偶不是要做线性多自由度的wilson分析(很早以前就编过)。<BR><BR>应该是有改进的wilson算法的。<BR>目前,偶是在将上述单自由度化为二维的微分方程组来分析的,<BR>该是fortran不太熟悉,再看看。 应该是有改进的wilson算法的。
目前,偶是在将上述单自由度化为二维的微分方程组来分析的,
该是fortran不太熟悉,再看看。
你要改进算法?这工作可不好做,这需要灵感还有很深的理论基础。
现在普遍一点的方法就是将原有的两个或者若干个算法巧妙地结合起来
让他们相互弥补各自的缺陷,如果你要做这方面工作的话
我想这可能是比较有效的途径,纯属个人体会。
页:
[1]
2