(本文转自海武士的博客,原图已经打不开,故略作修改)
经过近期的研究发现,目前对于系统单参数分岔图的计算共有以下的几种方法:
1)最大值法
2)Poincare截面法
本帖将以Lorenz系统为例,对这两种方法进行比较
首先对Poincare截面法进行阐述。
编程如下(matlab)
Lorenz系统:
function dy = Lorenz(t,y)
% Lorenz系统
% 系统微分方程:
%
%
%
%
%
%
dy=zeros(6,1);
dy(1)=-y(4)*(y(1)-y(2));
dy(2)=y(1)*(y(5)-y(3))-y(2);
dy(3)=y(1)*y(2)-y(6)*y(3);
dy(4)=0;
dy(5)=0;
dy(6)=0;
随r的分岔图求解程序:——按照x=y平面取截面
function Lorenz_bifur_r
Z=[];
for r=linspace(1,500,1000);
end
plot(Z,’.’,’markersize’,1)
title(‘Lorenz映射分岔图’)
xlabel(‘r’),ylabel(‘|y| where x=y’)
getmax法——取最大值法
function [Xmax] = getmax(y)
a=length(y);
j=1;
for i=(a-1)/2:a
end
function Lorenz_bifur_r_getmax
% 最大值法求解分岔图
clear all
t0=[0 100];%积分时间
%bifurcation
for r=linspace(1,500,1000);
end
最后请参考计算机仿真第22卷第12期上一篇文章“李雅普诺夫指数的研究与仿真”中Lorenz系统的分岔图计算结果,大家比较一下即可看出孰优孰劣了。