简谐振动响应方程的数值解法!!
本帖最后由 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 编辑 ]
可以参考一下fortra程序算法汇编。差不多的 我是对算法和语言都不太了解啊,能不能给我点帮助啊??感谢万分!! 本帖最后由 VibInfo 于 2016-4-22 14:32 编辑
做数值计算的话,建议用matlab,对你所说的单自由度振动方程求响应,用龙格—库塔法,可归结为常系数微分方程的初值问题,用四阶龙格—库塔法很好的
首先谢谢关注!如果用四阶龙格—库塔法的话将使计算复杂度大大增加,因为相当于做两个一阶微分方程解的相乘。有没有计算复杂度较小而精度不错的方法呢?
回复:(skyboyliu)首先谢谢关注!如果用四阶龙格—库...
本帖最后由 VibInfo 于 2016-4-22 14:33 编辑以下是引用skyboyliu在2006-4-14 14:36:50的发言:
首先谢谢关注!如果用四阶龙格—库塔法的话将使计算复杂度大大增加,因为相当于做两个一阶微分方程解的相乘。有没有计算复杂度较小而精度不错的方法呢?
不知道你说的计算复杂度是什么意思
现在用rk发非常方便,没什么困难的,都有现成的函数,调用一下就行
至于计算量问题,你的系统这么简单,用rk法也不慢
rk发可以算是最简单常用的方法了
用matlab软件比较简单,我做的就是简谐振动分析
fei001hong
本帖最后由 VibInfo 于 2016-4-22 14:33 编辑看来
fei001hong 你的确可以帮我们大家的忙了!!
[此贴子已经被yejet于2006-4-27 8:39:46编辑过]
本帖最后由 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编辑过]
可以考虑试试用matlab 本帖最后由 VibInfo 于 2016-4-22 14:33 编辑
如flybaly所说,
如果方程系刚性的那么用rk法求解是十分危险的,
由于事先没法知道方程的收敛步长,
因而如果才用rk法,那么建议用几个不同的步长计算,
对比结果,再判断结果的合理性。
单步法不理想,可以考虑用adams的预估-校正格式;
显示的rk法结果不如意时,可以采用implicit的rk法,gear法等等。
探讨
页:
[1]