leadershuang 发表于 2007-6-16 11:23

求助解常微分方程 四阶龙格库塔法

设:a1=y; a2=y; b1=y; b2=y; da1=dy=y; da2=dy=y; db1=dy=y; db2=dy=y;
需要求解的四个式子我列在下边了,我用c语言编写的。其中c 、lanmta1、lanmta2、fai、pi为参数。我用c程序调用龙格库塔法求解出来数据绘图时总是不合适。哪位高手用matlab帮我编一下这个四阶龙格库塔法求解这四个式子! 多谢!

dy=16*c*y/3-(lanmta1-fai)*pi*pi*y
-lanmta1*(3*pi*pi*pi*pi*y*y*y/8+3*pi*pi*pi*y*y+3*pi*pi*pi*pi*y*y*y
+3*pi*pi*pi*pi*y*y*y/8+pi*pi*pi*y*y+2*pi*pi*pi*pi*y*y*y+pi*pi*pi*pi*y*y*y);
dy=-16*c*y/3-4*(lanmta1-fai)*pi*pi*y
-lanmta1*(3*pi*pi*pi*y*y/2+3*pi*pi*pi*pi*y*y*y+6*pi*pi*pi*pi*y*y*y
+pi*pi*pi*y*y/2+pi*pi*pi*pi*y*y*y+2*pi*pi*pi*pi*y*y*y+6*pi*pi*pi*pi*y*y*y);
dy=16*c*y/3-(pi*pi*lanmta2-fai)*pi*pi*y-lanmta1*(3*pi*pi*pi*pi*y*y*y/8+pi*pi*pi* y*y+3*pi*pi*pi*pi*y*y*y+3*pi*pi*pi*pi*y*y*y/8+pi*pi*pi*y*y+2*pi*pi*pi*pi*y*y*y+pi*pi*pi*pi*y*y*y);
dy=-16*c*y/3-4*(4*pi*pi*lanmta2-fai)*pi*pi*y-lanmta1*(6*pi*pi*pi*pi*y*y*y+pi*pi*pi*y*y+3*pi*pi*pi*pi*y*y*y+pi*pi*pi*pi*y*y*y+6*pi*pi*pi*pi*y*y*y+2*pi*pi*pi*pi*y*y*y);

无水1324 发表于 2007-6-16 13:19

将你的方程编写成状态空间的形式保存为m函数然后就可以调用计算了。

function xxs=xxxs(t,x,flag,a0,a1)
a=a0+a1*sin(2*t);
% d2x/t2+a*x=0
xxs=[x(2);
    -a*x(1)];

%%%%%%%%%%上面既是mathieu方程状态方程的m函数

x0=;
a0=6;a1=1;
=ode45('xxxs',,x0,[],a0,a1)
plot(t,x)
%这是计算程序,你跟这一样编写程序就可以了。

还有可以在本版及matlab板块搜索到很多程序!

leadershuang 发表于 2007-6-16 15:53

该如何把式子写成状态空间形式呢?

无水1324 发表于 2007-6-16 21:23

就是简化为一阶的形式,然后把右边写在xxs=[;]里面

gghhjj 发表于 2007-6-17 06:41

原帖由 leadershuang 于 2007-6-16 15:53 发表 http://www.chinavib.com/forum/images/common/back.gif
该如何把式子写成状态空间形式呢?

x'=f(x)的形式就是
页: [1]
查看完整版本: 求助解常微分方程 四阶龙格库塔法