求助解常微分方程 四阶龙格库塔法
设: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); 将你的方程编写成状态空间的形式保存为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板块搜索到很多程序! 该如何把式子写成状态空间形式呢? 就是简化为一阶的形式,然后把右边写在xxs=[;]里面 原帖由 leadershuang 于 2007-6-16 15:53 发表 http://www.chinavib.com/forum/images/common/back.gif
该如何把式子写成状态空间形式呢?
x'=f(x)的形式就是
页:
[1]