被遗忘的孩子 发表于 2012-4-16 10:25

高人帮忙看看求解二阶非线性微分方程的程序……

function dy=myfun(~,y)
dy=zeros(4,1);
U=12;
w=6.28;
a=0.01;
b=0.03;
c=0.002;
dy(1)=y(2);
dy(2)=-w^2*y(1)+0.436*a*w^2*y(1)+(0.647-0.758*y(3)-0.243*y(3)^2+0.378*y(3)^3)*a*w*b*y(4)+(-2.958+1.967*y(3)-7.686*y(3)^2+0.352*y(3)^3)*U*a*y(2)-2*w*c*y(2)-(4.125+48.64*y(3))*U^2*a*y(3)^2+(0.83-0.423*y(3)-0.576*y(3)^2)*a*w^2*y(3)*y(1)-(0.739*y(3)+0.378*y(3)^2)*a*w^2*y(3)+36.8*U^2*a*y(3);
dy(3)=y(4);
dy(4)=(1.586-3.279*y(3)+5.385*y(3)^2-5.46*y(3)^3)*U*a*y(2)+(1.416-1.842*y(3)-0.764*y(3)^2+0.426*y(3)^3)*a*w*c*y(2)-2*w*b*y(4)-(0.739+0.378*y(3)+0.283*y(3)^2)*w^2*y(3)*y(1)+(33.8+36.84*y(3))*U^2*a*y(3)^2-w^2*y(3)-25.874*U^2*a*y(3)-0.647*w^2*y(1);

用matlab中的ode45调用函数直接求解,为什么运行了一晚上也没有结果出来??跪求各位高人指导……


clear all;
=ode45(@myfun,,);
figure(1)
subplot(2,1,1),plot(t,y(:,1)),grid on
title('拉索振动时程'),xlabel('时间t'),ylabel('振幅y')
figure(2)
subplot(2,1,1),plot(t,y(:,3)),grid on
title('水线振动时程'),xlabel('时间t'),ylabel('角度')

被遗忘的孩子 发表于 2012-4-16 14:51

大家多多指导下,小弟写论文急需要啊……谢谢!

84475361 发表于 2012-4-16 19:08

这个有点难度

smtmobly 发表于 2012-4-20 08:49

请把方程给出来!你这一堆代码。。。
页: [1]
查看完整版本: 高人帮忙看看求解二阶非线性微分方程的程序……