xiaohouzi 发表于 2011-7-21 14:24

求助:分数阶Lorenz系统的程序哪不对?

q1=0.9;q2=0.9;q3=0.9;
h=0.01;N=4000;
x0=2;y0=1;z0=3;
M1=0;M2=0;M3=0;
x(N+1)=;y(N+1)=;z(N+1)=;
x1(N+1)=;y1(N+1)=;z1(N+1)=;
x1(1)=x0+h^q1*10*(y0-x0)/(gamma(q1)*q1);
y1(1)=y0+h^q2*(28*x0-y0-x0*z0)/(gamma(q2)*q2);
z1(1)=z0+h^q3*(x0*y0-(8/3)*z0)/(gamma(q3)*q3);
x(1)=x0+10*h^q1*(y1(1)-x1(1)+q1*(y0-x0))/gamma(q1+2);
y(1)=y0+h^q2*(28*x1(1)-x1(1)*z1(1)-y1(1)+q2*(28*x0-x0*z0-y0))/gamma(q2+2);
z(1)=z0+h^q3*(x1(1)*y1(1)-(8/3)*z1(1)+q3*(x0*y0-(8/3)*z0)/gamma(q3+2));
for n=1:N
    M1=(n^(q1+1)-(n-q1)*(n+1)^q1)*10*(y0-x0);
    M2=(n^(q2+1)-(n-q2)*(n+1)^q2)*(28*x0-x0*z0-y0);
    M3=(n^(q3+1)-(n-q3)*(n+1)^q3)*(x0*y0-(8/3)*z0);
    N1=((n+1)^q1-n^q1)*10*(y0-x0);
    N2=((n+1)^q2-n^q2)*(28*x0-y0-x0*z0);
    N3=((n+1)^q3-n^q3)*(x0*y0-(8/3)*z0);
for j=1:n
M1=M1+((n-j+2)^(q1+1)+(n-j)^(q1+1)-2*(n-j+1)^(q1+1))*10*(y(j)-x(j));
M2=M2+((n-j+2)^(q2+1)+(n-j)^(q2+1)-2*(n-j+1)^(q2+1))*(28*x(j)-x(j)*z(j)-y(j));
M3=M3+((n-j+2)^(q3+1)+(n-j)^(q3+1)-2*(n-j+1)^(q3+1))*(x(j)*y(j)-(8/3)*z(j));
N1=N1+((n-j+1)^q1-(n-j)^q1)*10*(y(j)-x(j));
N2=N2+((n-j+1)^q2-(n-j)^q2)*(28*x(j)-x(j)*z(j)-y(j));
N3=N3+((n-j+1)^q3-(n-j)^q3)*(x(j)*y(j)-(8/3)*z(j));
end
x1(n+1)=x0+h^q1*N1/(gamma(q1)*q1);
y1(n+1)=y0+h^q2*N2/(gamma(q2)*q2);
z1(n+1)=z0+h^q3*N3/(gamma(q3)*q3);
x(n+1)=x0+h^q1*(10*(y1(n+1)-x1(n+1))+M1)/gamma(q1+2);
y(n+1)=y0+h^q2*(28*x1(n+1)-x1(n+1)*z1(n+1)-y1(n+1)+M2)/gamma(q2+2);
z(n+1)=z0+h^q3*(x1(n+1)*y1(n+1)-(8/3)*z1(n+1)+M3)/gamma(q3+2);
end
subplot(1,1,1),plot3(x,y,z);xlabel('x'),ylabel('y');zlabel('z');
%subplot(2,2,1),plot(x,y);xlabel('x'),ylabel('y');
%subplot(2,2,2),plot(x,z);xlabel('x'),ylabel('z');
%subplot(2,2,3),plot(y,z);ylabel('y'),ylabel('z');
%plot3(x,y,z);xlabel('x'),ylabel('y'),zlabel('z');
A=; B=;
帮忙看看哪不对,图能画出来,但是不是想要的。谢谢大家了!

无水1324 发表于 2011-8-3 17:30

你怎么知道不对?

是不是有参考的?两个条件完全一样吗?

最好给出结果及对比的依据

xiaohouzi 发表于 2011-8-29 16:12

回复 2 # 无水1324 的帖子

谢谢啦!
页: [1]
查看完整版本: 求助:分数阶Lorenz系统的程序哪不对?