声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3798|回复: 19

[编程技巧] 用ODE45求解一个二阶微分方程组

[复制链接]
发表于 2008-12-5 22:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近在用ODE45求解一个二阶微分方程组,共94个方程.因为用数值方法求解时,是需要把二阶的化成一阶的,所以方程数增加一倍为188个. 我想请问一下,用ODE45能够求解由这么多方程组成的方程组吗? 谢谢!
回复
分享到:

使用道具 举报

发表于 2008-12-5 22:34 | 显示全部楼层

回复 楼主 greatchina 的帖子

能解

具体解法搜索论坛
以前有讨论过
发表于 2011-11-28 14:07 | 显示全部楼层
这么厉害啊   都是牛人啊
发表于 2011-12-2 21:21 | 显示全部楼层
应该能解。试试看。
发表于 2011-12-4 15:11 | 显示全部楼层
请问有人搞混沌么?
发表于 2011-12-7 15:27 | 显示全部楼层
比我还惨!!!!
发表于 2011-12-15 11:21 | 显示全部楼层
应该可以,计算量的问题。。。
发表于 2015-9-24 15:57 | 显示全部楼层
您好,我最近也在研究ode45解二阶微分方程组的,我的方程是67个,化成一阶后变成134个,请问一下,用ODE45能够求解由这么多方程组成的方程组吗,不知您那有没有源程序,非常感谢
发表于 2015-9-25 09:23 | 显示全部楼层
oneonly 发表于 2015-9-24 15:57
您好,我最近也在研究ode45解二阶微分方程组的,我的方程是67个,化成一阶后变成134个,请问一下,用ODE45能 ...

你这个方程数量太大了,不是很适合用ode45来做,主要问题是比较难收敛
可以考虑采用newmark一类的方法
发表于 2015-9-25 12:10 | 显示全部楼层
happy 发表于 2015-9-25 09:23
你这个方程数量太大了,不是很适合用ode45来做,主要问题是比较难收敛
可以考虑采用newmark一类的方法

你好,这个方程以前师兄有用newmark方法解的,现在在用龙格库塔的方法解 ,这是我的初步化简  麻烦你看看对吗,下一步该怎么处理  非常感谢
QQ截图20150924151804.png

点评

doc ode23 查看matlab中ode23的帮助,ode45的使用方法和ode23是完全一样的 参考帮助后边的例子,编写odefun函数,然后调用ode45就可以了  详情 回复 发表于 2015-9-25 12:50
发表于 2015-9-25 12:50 | 显示全部楼层
oneonly 发表于 2015-9-25 12:10
你好,这个方程以前师兄有用newmark方法解的,现在在用龙格库塔的方法解 ,这是我的初步化简  麻烦你看看 ...

doc ode23
查看matlab中ode23的帮助,ode45的使用方法和ode23是完全一样的
参考帮助后边的例子,编写odefun函数,然后调用ode45就可以了
发表于 2015-9-25 15:55 | 显示全部楼层
犟牛 发表于 2015-9-25 12:50
doc ode23
查看matlab中ode23的帮助,ode45的使用方法和ode23是完全一样的
参考帮助后边的例子,编写odef ...

您好,能说具体点吗 我看帮助了,但我的方程原本是二阶的,化成一阶后数目增加一部  但也引入了新的函数
发表于 2015-9-28 08:05 | 显示全部楼层
oneonly 发表于 2015-9-25 15:55
您好,能说具体点吗 我看帮助了,但我的方程原本是二阶的,化成一阶后数目增加一部  但也引入了新的函数

你不是已经转化为一阶了吗?和原来是不是二阶没有关系了

所谓引入的新函数是什么?增加的那些方程吗?
你不用管他是不是增加的,100多个一阶方程大家都是平等的
发表于 2015-9-29 10:39 | 显示全部楼层
happy 发表于 2015-9-28 08:05
你不是已经转化为一阶了吗?和原来是不是二阶没有关系了

所谓引入的新函数是什么?增加的那些方程吗?

       前辈你好,我的方程转化成矩阵形式以后, 后112行的系数为一个刚度矩阵和一个阻尼矩阵组合在一块的,编写程序的时候是将矩阵每一个元素与后面的一列相乘对吗? 谢谢。就像这样……
……
dy(110)=y(222);
dy(111)=y(223);

dy(112)=y(224);
dy(113)=k(1,1)*y(1)+k(1,2)*y(2)+k(1,3)*y(3)+k(1,4)*y(4)+k(1,5)*y(5)+k(1,6)*y(6)+k(1,7)*y(7)+...
    k(1,8)*y(8)+k(1,9)*y(9)+k(1,10)*y(10)+k(1,11)*y(11)+k(1,12)*y(12)+k(1,13)*y(13)+k(1,14)*y(14)+...
    k(1,15)*y(15)+k(1,16)*y(16)+k(1,17)*y(17)+k(1,18)*y(18)+k(1,19)*y(19)+k(1,20)*y(20)+k(1,21)*y(21)+...
    k(1,22)*y(22)+k(1,23)*y(23)+k(1,24)*y(24)+k(1,25)*y(25)+k(1,26)*y(26)+k(1,27)*y(27)+k(1,28)*y(28)+...
    k(1,29)*y(29)+k(1,30)*y(30)+k(1,31)*y(31)+k(1,32)*y(32)+k(1,33)*y(33)+k(1,34)*y(34)+k(1,35)*y(35)+...
    k(1,36)*y(36)+k(1,37)*y(37)+k(1,38)*y(38)+k(1,39)*y(39)+k(1,40)*y(40)+k(1,41)*y(41)+k(1,42)*y(42)+...
    k(1,43)*y(43)+k(1,44)*y(44)+k(1,45)*y(45)+k(1,46)*y(46)+k(1,47)*y(47)+k(1,48)*y(48)+k(1,49)*y(49)+...
    k(1,50)*y(50)+k(1,51)*y(51)+k(1,52)*y(52)+k(1,53)*y(53)+k(1,54)*y(54)+k(1,55)*y(55)+k(1,56)*y(56)+...
    k(1,57)*y(57)+k(1,58)*y(58)+k(1,59)*y(59)+k(1,60)*y(60)+k(1,61)*y(61)+k(1,62)*y(62)+k(1,63)*y(63)+...
    k(1,64)*y(64)+k(1,65)*y(65)+k(1,66)*y(66)+k(1,67)*y(67)+k(1,68)*y(68)+k(1,69)*y(69)+k(1,70)*y(70)+...
    k(1,71)*y(71)+k(1,72)*y(72)+k(1,73)*y(73)+k(1,74)*y(74)+k(1,75)*y(75)+k(1,76)*y(76)+k(1,77)*y(77)+...
    k(1,78)*y(78)+k(1,79)*y(79)+k(1,80)*y(80)+k(1,81)*y(81)+k(1,82)*y(82)+k(1,83)*y(83)+k(1,84)*y(84)+...

……

……
发表于 2015-9-29 10:46 | 显示全部楼层
oneonly 发表于 2015-9-29 10:39
前辈你好,我的方程转化成矩阵形式以后, 后112行的系数为一个刚度矩阵和一个阻尼矩阵组合在一块 ...

可以考虑直接采用矩阵运算,矩阵运算搞不清楚要展开的话
相关运算规则看一下下面的附件就行了,matlab中的矩阵运算规则是和线性代数中的矩阵运算规则一样的

矩阵的定义及其运算规则.doc

77 KB, 下载次数: 7

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-4-26 16:37 , Processed in 0.101087 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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