fineshang 发表于 2007-12-5 10:56

请教各位求解12变量非线性方程组!

我正在做一个课题,列出非线性方程组如下:MX''+CX'+KX=F,其中M、C、K分别为12*12的矩阵,F为12*1的列向量。我用的是MATLAB调用ode45,可是结果只有前一个周期的图像,后面就发散了,不知为什么呢?我看别人都用五阶变步长自适应龙格库塔进行求解,结果都很理想,我一直很纳闷,问题一直得不到解决,不知是参数问题还是算法有问题,请教各位大虾帮忙!!非常感谢!!!

[ 本帖最后由 eight 于 2007-12-5 11:16 编辑 ]

sigma665 发表于 2007-12-5 13:59

那你也用五阶变步长自适应龙格库塔解啊

咕噜噜 发表于 2007-12-5 14:26

有可能是参数问题,用ode45最容易出现的问题就是发散,刚性方程

fineshang 发表于 2007-12-6 16:54

是参数问题还是算法问题?

是我参数有问题导致发散,还是ode45函数导致了发散??参数都是参考别人数据得来的啊!是不是换种工具或算法?能给点儿建议吗?
谢谢!!!

xjzuo 发表于 2007-12-6 17:24

请将你的代码及问题公式贴一下,否则只能是空谈.

fineshang 发表于 2007-12-7 18:17

这是具体参数和程序!请各位帮忙看看问题出在哪儿???

fineshang 发表于 2007-12-7 18:28

改变积分区间时各图形

fineshang 发表于 2007-12-7 18:30

请各位分析下原因!

非常感谢,这个难题我已经很长时间了,都得不到解决!

[ 本帖最后由 eight 于 2007-12-7 19:44 编辑 ]

action 发表于 2007-12-7 19:13

可以用ode15s试试看,这个对刚性方程比较有效。

无水1324 发表于 2007-12-7 22:05

回复 #4 fineshang 的帖子

可能是算法的原因,但是之前你最好看一下参数

sigma665 发表于 2007-12-7 22:23

我曾经也遇到类似的问题,仔细看看吧,可能程序错了

花如月 发表于 2007-12-7 22:37

回复 #7 fineshang 的帖子

如果你的程序一直没变,而改变了积分区间。

那么你画得图都是正确的,随着积分区间的增加,结果也在递增。

特别是40以后,仔细看一下几幅图y轴的范围你就可以明白了:-3--3;-5--20;-1--7*10^5

因此单位不同时,图形是没有可比性的

xjzuo 发表于 2007-12-8 15:09

请将公式贴一下。
------------------------------------------------------------------
看了一下你的代码,目前只能作如下判断:
%%%
变化tspan, tfinal=35可明显看到长时间趋于发散。
变化初值, 若Y0=rand(24,1), tfinal=10就可明显看到趋于发散,而且行为也与Y0=0很不一样!
所以如果没有输入错误的话,很可能这个系统不稳定。自设定时间步长也无改善.
------------------------
另外,ode45已经采用了变步长求解,所以原则上ode45不能求解的问题,你自己编程用5阶RK求解的话,情况应该不会有什么改善,不过你还是可以试试。

fineshang 发表于 2007-12-9 10:14

谢谢各位的解答与讨论!

请遇到过这类问题的朋友给出解决办法?谢谢~
其实我已经仔细检查过系统参数了
好像没有问题
会继续关注这个问题
我做的是行星齿轮的动力学分析
请做过这方面的朋友多多讨论交流!!!

心如大湖 发表于 2012-11-29 11:36

同样遇到这样的问题
页: [1]
查看完整版本: 请教各位求解12变量非线性方程组!