zhuaishiren 发表于 2008-6-13 12:53

关于连续微分动力系统分叉图程序得算法

不知道那位仁兄可以提供以下关于连续微分动力系统分叉图程序得算法,在网上看到有人贴出来lorenz分叉程序,但是始终没有看到理论依据!
还有只是看到过虫口模型 x_{n+1}= lambda * x_n*(1-x_n)的倍周期分支通向浑沌图的做法,可以详细参阅《浑沌动力学初步》陈士华的,上面对做法很详细,但是我怎么也找不到关于作lorenz或者chen系统的地分叉图的方法阿,不知道谁能提供在哪本书上有或者论文上有阿!
万分感谢!


function mainbirloren
clear all
global r
t0=;%积分时间
y0=;
%bifurcation
for r=20:0.05:30 %r的变化精度
=ode45(@Lorenz,t0,y0);
=getmax(y);
plot(r,Xmax,'b','markersize',1)
hold on
clear Xmax
end
xlabel('r')
ylabel('Xmax')

function = getmax(y)
a=length(y);
j=1;
for i=(a-1)/2:a
b=(y(i,1)-y(i-2,1))/2;
c=(y(i,1)+y(i-2,1))/2-y(i-1,1);
if y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)&c==0
Xmax(j)=y(i-1,1);
j=j+1;
elseif y(i-2,1)<=y(i-1,1)&y(i-1,1)>=y(i,1)
Xmax(j)=y(i-1,1)-b^2/(4*c);
j=j+1;
end
end
function dy = Lorenz(t,y)
global r
dy=zeros(3,1);
dy(1)=-10*(y(1)-y(2));
dy(2)=-y(1)*y(3)+r*y(1)-y(2);
dy(3)=y(1)*y(2)-8*y(3)/3;

上面是我在论坛中看到的关于lorenz的分叉程序,只是里面看不懂啊对于提取数据,不知道那位可以解释一下哈?

无水1324 发表于 2008-6-13 14:28

回复 楼主 的帖子

主要三个函数

function mainbirloren
clear all
global r
t0=;%积分时间
y0=;
%bifurcation
for r=20:0.05:30 %r的变化精度
=ode45(@Lorenz,t0,y0);
=getmax(y);
plot(r,Xmax,'b','markersize',1)
hold on
clear Xmax
end
xlabel('r')
ylabel('Xmax')

求解微分方程并调用gmax找出最大值。并做出Poincare图、分岔图;
function = getmax(y) 这个就是找最值得函数

然后最后一个是你微分方程的m函数
页: [1]
查看完整版本: 关于连续微分动力系统分叉图程序得算法