蓝云天 发表于 2009-10-27 19:23

请教octopussheng

你好:
   我有一个4维系统,用你空间里给出的最大值方法做分叉图,程序改正如下:
      function dy = Chen(t,y)
% Chen系统
% 系统微分方程:
%      dx/dt = a(y-x)
%      dy/dt = dx-xz+cy-u
%      dz/dt = xy-bz
%      du/dt = x+k
%    a=y(5)
%    d=y(6)
%    b=y(7)
%    c=y(8)
%    k=y(9)
dy=zeros(9,1);
dy(1)=y(5)*(y(2)-y(1));
dy(2)=y(6)*y(1)-y(1)*y(3)+y(8)*y(2)-y(4);
dy(3)=y(1)*y(2)-y(7)*y(3);
dy(4)=y(1)+y(9);
dy(5)=0;
dy(6)=0;
dy(7)=0;
dy(8)=0;
dy(9)=0;


function Lorenz_bifur_r_getmax
% 最大值法求解分岔图
clear all
t0=;%积分时间
%bifurcation
for k=linspace(-4,4,1000);
    =ode45('Chen',t0,);
    =getmax(y(:,1));
    plot(k,Xmax,'b','markersize',1)
    hold on
    clear Xmax
end

红色字体是我做的修改,运行后提示:??? One or more output arguments not assigned during call to ‘getmax.m (getmax)’

麻烦你帮我看一下是怎么回事?
其他的版主大侠,或研友有时间也欢迎帮忙看看。
谢谢。

[ 本帖最后由 蓝云天 于 2009-10-27 19:27 编辑 ]

蓝云天 发表于 2009-10-27 19:47

getmax函数为:
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

octopussheng 发表于 2009-10-27 20:23

程序没有问题,我复制过来可以顺利运行。

蓝云天 发表于 2009-10-27 20:36

是可以画出图来,但是,
第一:与我看得文章中的图像不符。
第二:运行后提示:??? One or more output arguments not assigned during call to ‘getmax.m (getmax)’

系统在文中参数下有一部分是混沌和超混沌的。但是显示的图像没有这一特征。是怎么回事呢

谢谢

octopussheng 发表于 2009-10-27 21:07

对于这个现象,我只能说,getmax这个函数不是很好用,建议用庞加莱截面方法来计算你这个系统的分岔图。

蓝云天 发表于 2009-10-27 21:16

你说我用下面这个能行么?

clear;
global k;
range=[-4:0.01:4];


for k=range
    k
    y0=;
   
    tspan=;
    =ode45('Chen1',tspan,y0);
    =getmax(Y(:,1));
    plot(k,Xmax,'b','markersize',1)
    hold on
    clear Xmax
   
end

octopussheng 发表于 2009-10-27 21:36

结果如何?有没有提示错误?

但是我理解,本质上是没有区别的。

[ 本帖最后由 octopussheng 于 2009-10-27 21:38 编辑 ]

蓝云天 发表于 2009-10-27 21:57

呵呵,还行,刚才试了试,可以跑过去,不过换成了Chen1函数。谢谢octopussheng   版主的指点。
其实,我很想用poincare section方法做分叉图,理论上是最好的。但是,你空间里提供的程序中没弄明白那个截面选取是怎么回事。
唉!还是需要努力的学习啊,

再次谢谢octopussheng   版主的指点和帮助

octopussheng 发表于 2009-10-28 13:50

可以自己先尝试用Lorenz庞加莱截面的做法,做做你这个系统的庞加莱截面,然后再试试计算分岔图。
页: [1]
查看完整版本: 请教octopussheng