声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: oneonly

[综合讨论] 龙格库塔ode45 解二阶微分方程组

[复制链接]
发表于 2015-10-4 18:16 | 显示全部楼层
oneonly 发表于 2015-10-4 17:42
你好,我的时间t是[0,1]  有办法把这个时间分开吗,比如输出t=0.1时的Y(:,107)  谢谢谢谢。

不可以的,只有整个函数执行完之后才能输出,除非你能修改matlab的源代码,不过有点不现实
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2015-10-8 21:30 | 显示全部楼层
happy 发表于 2015-10-4 18:16
不可以的,只有整个函数执行完之后才能输出,除非你能修改matlab的源代码,不过有点不现实

哎。。。一天又是没有任何结果,您之前说调很麻烦,我编的这个程序如果调的话   调什么地方,劳烦指导下  谢谢谢谢
发表于 2015-10-9 10:06 | 显示全部楼层
oneonly 发表于 2015-10-8 21:30
哎。。。一天又是没有任何结果,您之前说调很麻烦,我编的这个程序如果调的话   调什么地方,劳烦指导下  ...

初始值,不过这只是在碰运气
 楼主| 发表于 2015-10-9 10:36 | 显示全部楼层
happy 发表于 2015-10-9 10:06
初始值,不过这只是在碰运气

额。。我的初始值是零呢,您的联系方式或邮箱方便留一下吗,想和您进一步的讨论下,不会白白让你费心的  谢谢谢谢  
发表于 2015-10-9 10:37 | 显示全部楼层
oneonly 发表于 2015-10-9 10:36
额。。我的初始值是零呢,您的联系方式或邮箱方便留一下吗,想和您进一步的讨论下,不会白白让 ...

看我的签名
发表于 2015-10-9 10:38 | 显示全部楼层
oneonly 发表于 2015-10-9 10:36
额。。我的初始值是零呢,您的联系方式或邮箱方便留一下吗,想和您进一步的讨论下,不会白白让 ...

个人致使至终都不太看好你采用ode去求解这个方程组
 楼主| 发表于 2015-10-9 10:54 | 显示全部楼层
happy 发表于 2015-10-9 10:38
个人致使至终都不太看好你采用ode去求解这个方程组

额。。。以前师兄是用newmark方法做的,现在呢 是换一种算法,然后在进行后续的分析。现在单单是解这一个方程就进行不下去了  很是郁闷啊
发表于 2015-10-9 12:54 | 显示全部楼层
oneonly 发表于 2015-10-9 10:54
额。。。以前师兄是用newmark方法做的,现在呢 是换一种算法,然后在进行后续的分析。现在单单是解这一个 ...

我有个师弟,以前用ode求解一个十八方程的方程组,从写程序到算出来花了3个多月
龙哥库塔法一般用于计算数量较小的方程组比较好,精度高
但是对于大量方程的,经常是心有余而力不足。

当然从理论上来讲多少方程都应该能够求解,但实际使用的时候,大型方程组能解出来的实例不多
发表于 2015-10-9 15:37 | 显示全部楼层
本帖最后由 mxlzhenzhu 于 2015-10-9 15:41 编辑

你可以参考   盛宏玉的书《结构动力学》,部分非线性的问题,也涉及怎么求;实际这个问题,比较难的是数值阻尼,计算中你会遇到数值阻尼,教材这方面就没有再深入下去了。
 楼主| 发表于 2015-10-10 09:07 | 显示全部楼层
mxlzhenzhu 发表于 2015-10-9 15:37
你可以参考   盛宏玉的书《结构动力学》,部分非线性的问题,也涉及怎么求;实际这个问题,比较难的是数值 ...

恩恩,我去图书馆借借或去网上下载试试,非常感谢...
发表于 2015-10-10 09:18 | 显示全部楼层
mxlzhenzhu 发表于 2015-10-9 15:37
你可以参考   盛宏玉的书《结构动力学》,部分非线性的问题,也涉及怎么求;实际这个问题,比较难的是数值 ...

早期有人做非线性动力学问题模拟的时候就通过认为增加系统阻尼来达到收敛的目的。

引入算法阻尼也会带来一定的问题,比如相位滞后,峰值衰减等
newmark法也是因为具有一定的算法阻尼,所以收敛性比较好
 楼主| 发表于 2015-10-13 16:26 | 显示全部楼层
mxlzhenzhu 发表于 2015-10-9 15:37
你可以参考   盛宏玉的书《结构动力学》,部分非线性的问题,也涉及怎么求;实际这个问题,比较难的是数值 ...


这就是那本结构动力学,我的方程以化成书上的这种形式,
   k1=h*(C*y(:,n)+F);
   k2=h*(C*(y(:,n)+k1/2)+F);
   k3=h*(C*(y(:,n)+k2/2)+F);
   k4=h*(C*(y(:,n)+k3)+F);

y(:,n+1)=y(:,n)+(1/6)*(k1+2*k2+2*k3+k4);
最后得出的数据全是0.
现在也不知道该调哪里了。。。
IMG_20151013_145801.jpg

 楼主| 发表于 2015-10-13 16:31 | 显示全部楼层
happy 发表于 2015-10-10 09:18
早期有人做非线性动力学问题模拟的时候就通过认为增加系统阻尼来达到收敛的目的。

引入算法阻尼也会带 ...

谢谢happy老师,我是做弹性动力学的,我们这边就我一个在做了,没人商量探讨,一个人搞了很长时间也没结果,几乎灰心了。我是自己编得龙格库塔程序 ,可以出来,但是全是0   这是什么原因呢
我没有用ode的原因是我后面方程的系数太多了,感觉应该有for循环来表达y(113)=。。。。。
 楼主| 发表于 2015-10-13 20:28 | 显示全部楼层
本帖最后由 oneonly 于 2015-10-13 20:30 编辑
mxlzhenzhu 发表于 2015-10-9 15:37
你可以参考   盛宏玉的书《结构动力学》,部分非线性的问题,也涉及怎么求;实际这个问题,比较难的是数值 ...
。。。。。。
 楼主| 发表于 2015-10-13 20:29 | 显示全部楼层
本帖最后由 oneonly 于 2015-10-13 20:30 编辑
happy 发表于 2015-10-10 09:18
早期有人做非线性动力学问题模拟的时候就通过认为增加系统阻尼来达到收敛的目的。

引入算法阻尼也会带 ...

happy老师,晚上我出了一组数据y(107,:)=0        -1129183048.93119        1.48637526202825e+32        5.48061893661531e+57        1.74813868737058e+83        5.55176334583749e+108        1.75612320526261e+134        5.53398445418734e+159        1.73762752500282e+185        5.43722481604998e+210        1.69572996936634e+236  就出了十一组数据 , 您看下  我的数量级好大好大,相差的也比较大。。。。就是这个图。。。
15.jpg
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 12:00 , Processed in 0.060404 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表