greatchina 发表于 2008-12-5 22:30

用ODE45求解一个二阶微分方程组

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

wxl789 发表于 2008-12-5 22:34

回复 楼主 greatchina 的帖子

能解

具体解法搜索论坛
以前有讨论过

mort 发表于 2011-11-28 14:07

这么厉害啊   都是牛人啊

dbx12358 发表于 2011-12-2 21:21

应该能解。试试看。

shaoshuyi 发表于 2011-12-4 15:11

请问有人搞混沌么?

伤痕累累 发表于 2011-12-7 15:27

比我还惨!!!!

jiedy 发表于 2011-12-15 11:21

应该可以,计算量的问题。。。

oneonly 发表于 2015-9-24 15:57

您好,我最近也在研究ode45解二阶微分方程组的,我的方程是67个,化成一阶后变成134个,请问一下,用ODE45能够求解由这么多方程组成的方程组吗,不知您那有没有源程序,非常感谢

happy 发表于 2015-9-25 09:23

oneonly 发表于 2015-9-24 15:57
您好,我最近也在研究ode45解二阶微分方程组的,我的方程是67个,化成一阶后变成134个,请问一下,用ODE45能 ...

你这个方程数量太大了,不是很适合用ode45来做,主要问题是比较难收敛
可以考虑采用newmark一类的方法

oneonly 发表于 2015-9-25 12:10

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

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

犟牛 发表于 2015-9-25 12:50

oneonly 发表于 2015-9-25 12:10
你好,这个方程以前师兄有用newmark方法解的,现在在用龙格库塔的方法解 ,这是我的初步化简麻烦你看看 ...

doc ode23
查看matlab中ode23的帮助,ode45的使用方法和ode23是完全一样的
参考帮助后边的例子,编写odefun函数,然后调用ode45就可以了

oneonly 发表于 2015-9-25 15:55

犟牛 发表于 2015-9-25 12:50
doc ode23
查看matlab中ode23的帮助,ode45的使用方法和ode23是完全一样的
参考帮助后边的例子,编写odef ...

您好,能说具体点吗 我看帮助了,但我的方程原本是二阶的,化成一阶后数目增加一部但也引入了新的函数

happy 发表于 2015-9-28 08:05

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

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

所谓引入的新函数是什么?增加的那些方程吗?
你不用管他是不是增加的,100多个一阶方程大家都是平等的

oneonly 发表于 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)+...

……

……

Pparis 发表于 2015-9-29 10:46

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

可以考虑直接采用矩阵运算,矩阵运算搞不清楚要展开的话
相关运算规则看一下下面的附件就行了,matlab中的矩阵运算规则是和线性代数中的矩阵运算规则一样的
页: [1] 2
查看完整版本: 用ODE45求解一个二阶微分方程组