马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
研究的是Kelvin粘弹性输流管道的分岔图,程序如下
function dy=kelvin(t,x,j)
d=0.5;
c1=cosh(1.875*d)-cos(1.875*d)-0.734*(sinh(1.875*d)-sin(1.875*d));
c2=cosh(4.694*d)-cos(4.694*d)-1.0185*(sinh(4.694*d)-sin(4.694*d));
H=0.2;
b=0.2;
u=6;
k1=100;
dy=zeros(4,1);
f1=x(3);
f2=x(4);
f3=(-12.359*H-4*sqrt(b)*u)*x(3)+(0.244*H+9.522*sqrt(b)*u)*x(4)-(12.359+0.859*u*u+k1*c1*c1)*x(1)+(0.244+11.756*u*u+k1*c1*c2)*x(2)-j*c1*(c1*x(1)+c2*x(2))^3;
f4=(0.006*H-1.518*sqrt(b)*u)*x(3)-(485.638*H+4.006*sqrt(b)*u)*x(4)+(0.006-1.874*u*u-k1*c1*c2)*x(1)-(485.638-13.286*u*u+k1*c2*c2)*x(2)-j*c2*(c1*x(1)+c2*x(2))^3;
dy=[f1;f2;f3;f4];
A=100:0.1:200;
options=odeset('RelTol',1e-6);
for n=1:length(A);
j=A(n);
T=2*pi/A(n);
[t,x]=ode45(@kelvin,[0:T/200:200*T],[0,0,0,0],options,j);
plot(A(n),x(36000:100:end,1),'k');
xlabel('k2');
ylabel('y');
hold on
end
我不知道哪里有问题,画出来的总是一条直线,请哪位大侠指点一下,非常感谢!
|