仿真程序
function fra_chaos_pro(x,t,q)%x
为初值,
t
为运行时间,
q
为分数阶数
h=0.01;%
步长
N=t/h;%
运行步数
l=length(x);%
变量维数
y=zeros(l,N+1);
y1=zeros(l,N+1);
M1=zeros(l,1);
N1=zeros(l,1);
%
预估校正法
,fra_chaos_fun
外部函数
y1(:,1)=x’+h.^q’.*fra_chaos_fun(t,x)’./(gamma([q’]).*q’);
y(:,1)=x’+h.^q’.*(fra_chaos_fun(t,y1(:,1))+q’.*fra_chaos_fun(t,x)’)./gamma(q’+2);
for n=1:N;
N1=((n+1).q’-n.q’).fra_chaos_fun(t,x)’;
for j=1:n;
M1=M1+ ((n-j+2).(q’+1)+(n-j).(q’+1)-2(n-j+1).^(q’+1)).*fra_chaos_fun(t,y(:,j));
N1=N1+((n-j+1).q’-(n-j).q’).*fra_chaos_fun(t,y(:,j));
end
y1(:,n+1)=x’+h.^q’.*N1./(gamma(q’).q’);
y(:,n+1)=x’+h.^q’.(fra_chaos_fun(t,y1(:,n+1))+M1)./gamma(q’+2);
end
%作图
figure
plot(y(1,:),y(2,:))
xlabel(‘x’);ylabel(‘y’);
figure
plot3(y(1,:),y(2,:),y(3,:))
figure
plot(0:h:h*N,y(1,:),‘r-’)
end
%
运行
fra_chaos_pro([0 2 3],2,[0.98 0.98 0.98])
function xp=fra_chaos_fun(t,x)
xp=x;
%分数阶chen系统
a=35;b=3;c=28;
xp(1)=a*(x(2)-x(1));
xp(2)=(c-a)*x(1)-x(1)x(3)+cx(2);
xp(3)=x(1)x(2)-bx(3);