声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1737|回复: 2

[稳定性与分岔] 请教一个延迟系统的分岔程序问题

[复制链接]
发表于 2010-4-4 22:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
下面是我修改最大值法分岔程序得到的延迟系统的分岔程序为什么作关于c变量时会出现 问题提示
??? Subscripted assignment dimension mismatch.
Error in ==> dde_chen_yuanchengxu at 27
    y(:,1)=sol.y(1,:)
而作关于k变量分岔时候出现的问题提示是
??? Attempted to access y(14054.5,1); index must be a positive integer or logical.
Error in ==> getmax at 5
    b=(y(i,1)-y(i-2,1))/2;
Error in ==> dde_chen_yuanchengxu at 27
    [Xmax]=getmax(y(:,1));

请教各位师兄问题出现在哪
谢谢
下面是我的程序

function dde_chen
%  延迟Chen系统
%
% 方程如下:
%   dx/dt=a*(y-x)
%   dy/dt=(c-a)*x+c*y-x*z+k*(y(t-tau)-y)
%   dz/dt=x*y-b*z
%a=35 ,b=3 ,c=28;tau=0.15,k=2.8
%
clear all
%bifurcation
for k=linspace(1,10,10);  %r的变化精度
    history = [-3;-4;14];
tspan = [0,100];
opts = ddeset('RelTol',1e-5,'AbsTol',1e-8);
a = 35;b = 3;c = 28;
%k = 2.8;
tau = .15;
sol = dde23(@dde_chenf,tau,history,tspan,opts,a,b,c,k);
    y(:,1)=sol.y(1,:)
    [Xmax]=getmax(y(:,1));
    plot(k,Xmax,'b','markersize',1)
    hold on
    clear Xmax
end

function dydt = dde_chenf(t,y,Z,a,b,c,k)
% Differential equations function for Chen.
ylag = Z(:,1);
dydt = [ a*(y(2)-y(1))
    (c-a-y(3))*y(1)+c*y(2)+k*(ylag(2)-y(2))
    y(1)*y(2)-b*y(3)      ];

function [Xmax] = 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

因为是调程序参量的变化精度没有取太大
我觉得最大值法的分岔是利用数值解来作图 那么常规系统和延迟系统应该没有太大区别
可就是做不出来 很困惑
希望高手能指点一二
谢谢
回复
分享到:

使用道具 举报

 楼主| 发表于 2010-4-4 23:29 | 显示全部楼层
我是想利用分岔图像来找到 1周期 2周期等对应的参数数值
发表于 2011-6-23 16:17 | 显示全部楼层
楼主问题解决了么
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-20 22:34 , Processed in 0.055796 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表