skyboyliu 发表于 2006-4-13 17:17

简谐振动响应方程的数值解法!!

本帖最后由 VibInfo 于 2016-4-22 14:32 编辑

  在简谐激励下的单自由度的正弦振动响应方程,运用c语言进行数值求解,希望各位ggjj,ddmm能帮下忙,本人对c不熟悉~~~先谢过各位达人了!!!!
  可发到我邮箱: liushipingood@163.com
  [此贴子已经被作者于2006-4-13 17:22:30编辑过]
  [ 本帖最后由 supervb 于 2006-12-4 12:37 编辑 ]

Hawaii-pig 发表于 2006-4-13 17:19

可以参考一下fortra程序算法汇编。差不多的

skyboyliu 发表于 2006-4-13 17:47

我是对算法和语言都不太了解啊,能不能给我点帮助啊??感谢万分!!

阿H 发表于 2006-4-14 14:21

本帖最后由 VibInfo 于 2016-4-22 14:32 编辑

  

做数值计算的话,建议用matlab,对你所说的单自由度振动方程求响应,用龙格—库塔法,可归结为常系数微分方程的初值问题,用四阶龙格—库塔法很好的

skyboyliu 发表于 2006-4-14 14:36

首先谢谢关注!如果用四阶龙格—库塔法的话将使计算复杂度大大增加,因为相当于做两个一阶微分方程解的相乘。有没有计算复杂度较小而精度不错的方法呢?

yejet 发表于 2006-4-15 20:36

回复:(skyboyliu)首先谢谢关注!如果用四阶龙格—库...

本帖最后由 VibInfo 于 2016-4-22 14:33 编辑

  

以下是引用skyboyliu在2006-4-14 14:36:50的发言:
首先谢谢关注!如果用四阶龙格—库塔法的话将使计算复杂度大大增加,因为相当于做两个一阶微分方程解的相乘。有没有计算复杂度较小而精度不错的方法呢?

  
不知道你说的计算复杂度是什么意思
现在用rk发非常方便,没什么困难的,都有现成的函数,调用一下就行
至于计算量问题,你的系统这么简单,用rk法也不慢

rk发可以算是最简单常用的方法了

fei001hong 发表于 2006-4-21 17:33

用matlab软件比较简单,我做的就是简谐振动分析

lflflyer 发表于 2006-4-22 12:47

fei001hong

本帖最后由 VibInfo 于 2016-4-22 14:33 编辑

  看来

  fei001hong 你的确可以帮我们大家的忙了!!

  [此贴子已经被yejet于2006-4-27 8:39:46编辑过]

flybaly 发表于 2006-4-22 13:00

本帖最后由 VibInfo 于 2016-4-22 14:33 编辑

  以下是引用yejet在2006-4-15 20:36:10的发言:

  不知道你说的计算复杂度是什么意思

  现在用rk发非常方便,没什么困难的,都有现成的函数,调用一下就行

  至于计算量问题,你的系统这么简单,用rk法也不慢

  rk发可以算是最简单常用的方法了

  不可否认,rk方法在matlab中易于实现,但是rk方法是一不保守的数值方法,其几万步之后的结果已经是面目全非了(相关请参考秦孟姚和冯康院士关于此方法的探讨)。而我以为matlab中还没有把保辛的数值格式引入。所以不赞同遇到一个问题都采用rk方法,不要以为在matlab中采用一个函数(如ode45等)就万事大吉了!建议楼主尽量采用保守的数值差分格式,c语言编程我想对楼主是不成问题的。(可以参考计算数值算法在c语言中的实现)!

  [此贴子已经被作者于2006-4-22 13:03:50编辑过]

yingjie328 发表于 2006-4-22 20:09

可以考虑试试用matlab

linqus 发表于 2006-4-23 16:49

本帖最后由 VibInfo 于 2016-4-22 14:33 编辑

  如flybaly所说,

  如果方程系刚性的那么用rk法求解是十分危险的,

  由于事先没法知道方程的收敛步长,

  因而如果才用rk法,那么建议用几个不同的步长计算,

  对比结果,再判断结果的合理性。

  单步法不理想,可以考虑用adams的预估-校正格式;

  显示的rk法结果不如意时,可以采用implicit的rk法,gear法等等。

  探讨
页: [1]
查看完整版本: 简谐振动响应方程的数值解法!!