siyanger 发表于 2006-3-30 20:21

[求助]matlab求解多自由度微分方程组

这是微分方程的大概表达式,实际中可能更复杂。


funtion=[y(16);y(17);y(18);y(19);y(20);y(21);y(22);y(23);y(24);y(25);y(26);y(27);y(28);y(29);y(30);...
方程1表达式(已化为状态方程的形式,y'=表达式)
---
方程15表达式];
N=3,所以有15个方程。化为状态方程就是30个了。
=ode45('funtion',tspan,Y0,options);
用变步长。
出来的结果是各y都无限大啊!

这个方程我都解了快一个月了,先是近似线性化,再化为无量纲,都不行,再解不出来,撞墙自杀去啦!

siyanger 发表于 2006-3-30 20:42

补:这类方程是有稳定解的,不知道是不是自由度太多?初值给得也是正确的,不知道为什么啊?
其中两个e都是周期函数,属于周期激励。

happy 发表于 2006-3-31 19:52

回复:(siyanger)[求助]matlab求解多自由度微分方程...

用ode15s试试看

siyanger 发表于 2006-4-2 05:03

我用ode23s和ode45试过都不行。我这个方程不是刚性的,用定步长可能更不好。不过,试一下也行。
我想问一下,你在另一贴子里说,你曾用RK算法解出过一个16自由度的方程,是8个二阶的扩展成16个状态方程还是16个二阶的扩展成32个状态方程呢?如果是后者,我努力一下还有希望,因为我的是15个二阶的扩展成30个状态方程。否则做也是白费功夫。
还有,如果RK算法真得不适合解太多自由度的微分方程的话,从未见哪个书上提醒过啊?这不是害人吗?让人做无用功哪。
另,你觉得gear积分法怎么样?我觉得用直接积分法,可能也不太好用。
问题太多,不好意思。谢谢。

happy 发表于 2006-4-2 09:21

回复:(siyanger)我用ode23s和ode45试过都不行。我这...

呵呵,是后则,rk法稳定性不是很好,书上我倒是没见过,但是解高维系统rk法我们现在都不用了,一般用 newmark 法,不过该方法也有很多缺陷了。

在MATLAB的内部函数中有六种数值积分算法:linsim,rk23,rk45,adams,gear,euler,曾经见过一篇文章,不推荐使用adams和gear法,具体忘记了,当然如果自己写一个改进的gear法就另当别论了,呵呵,以上仅供参考

mort 发表于 2011-11-27 11:12

请问有这个方面的具体实际例子吗?高人指点
页: [1]
查看完整版本: [求助]matlab求解多自由度微分方程组