ymsncx 发表于 2008-5-30 10:13

蔡氏电路的分岔图

请各位高手给个蔡氏电路的MATLAB仿真的分岔的代码
方程如下:
x1'=-1.8x1+6.3x2-a(|x1-1|-|x1+1|)
x2'=0.7x1-0.2x2+x3
x3'=-7.0x2
谢谢!

无水1324 发表于 2008-5-30 10:38

回复 楼主 的帖子

没有直接用的程序,但是你可以按着做分岔图的方法,先编写一个遇到问题再来讨论

octopussheng 发表于 2008-5-30 13:28

根据自己的系统编写一下吧,不是特别难的事情!

liliangbiao 发表于 2008-5-30 16:27

可以根据我空间中的程序进行调试,得到如下的结果即可!

ymsncx 发表于 2008-5-30 22:34

回复 4楼 的帖子

谢谢你的回复,不过我是新手,能问下具体是你空间的哪个程序,Rossler系统的分叉图Matlab实现,是这个吗?

meixh06 发表于 2008-6-1 13:52

liliangbiao的那程序有点错误

我做了好多系统用这个程序做的,根本做不出来,不知道怎么回事

咕噜噜 发表于 2008-6-1 16:12

或许和初始条件有关

ymsncx 发表于 2008-6-1 17:44

请大家分析下我的程序

我根据liliangbiao的那程序自己编了个:
function dx=yang(t,x)
global A ;
dx=zeros(3,1);
dx(1)=6.3*x(2)-1.8*x(1)-A*(abs(x(1)-1)-abs(x(1)+1));
dx(2)=0.7*x(1)-0.7*x(2)+x(3);
dx(3)=-7.0*x(2);

function chua
clear;
global A
range=;
period=2*pi;
k=0;
YY1[];
Step=2*pi/100;
for A=range
x0=;
A
k=k+1;   %出去前面60个周期的数据,并将最后的结果作为下一次积分的初值。
tspan=;
=ode45('yang',tspan ,x0);
y0=Y(end,:);
j=1;
for i=60:200
    tspan=;
    ode45('yang',tspan ,x0);
    YY1(k j)=Y(end,1);
    j=j+1;    %取出每一个周期内的第一个解的最后一个值。
    y0=Y(end,:);
   end
end
bifdata=YY1(:,end-51:end);
plot(range,bifdata,'k','markersize',1)
仿真后系统提示:
??? Error: File: C:\MATLAB6p5\work\chua.m Line: 7 Column: 4
Missing operator, comma, or semicolon.Missing operator, comma, or semicolon.
大家帮忙找下原因,急用谢谢了!

ch_j1985 发表于 2008-6-1 18:42

原帖由 ymsncx 于 2008-6-1 17:44 发表 http://www.chinavib.com/forum/images/common/back.gif
我根据liliangbiao的那程序自己编了个:
function dx=yang(t,x)
global A ;
dx=zeros(3,1);
dx(1)=6.3*x(2)-1.8*x(1)-A*(abs(x(1)-1)-abs(x(1)+1));
dx(2)=0.7*x(1)-0.7*x(2)+x(3);
dx(3)=-7.0*x(2);

funct ...

这些地方有错误:YY1=[];YY1(k, j)=Y(end,1);

meixh06 发表于 2008-6-2 17:36

老是出现这个问题.

??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

Error in ==> fencha2 at 29
zhang=;

>>

meixh06 发表于 2008-6-2 17:37

程序是这样的

function u =rosser(t,x)
global c
a=16;
b=2;
x0=';
u =';

clear all
global c
zhang=[];
M=;
counter=1;
for counter=1:length(M)
       c=M(counter);
    i=2;
xmax=0;
xmaxold=0;
frmdata=[];
error=0;
tspan=;
var=1;
y0=;
=ode45('rosser',tspan,y0);
while i < size(x,1)
      if x(i-1,var) < x(i,var) & x(i+1,var) <= x(i,var)
            xmax=x(i,var);
            if xmaxold ~= 0
                frmdata=;
            end
                xmaxold=xmax;
      end
      i=i+1;
end
r=length(frmdata)-20:length(frmdata);
fradata1(1,r)=frmdata(r,1);
zhang=;
end
plot(M,zhang,'k.','markersize',1);
      xlabel(sprintf('c'));
ylabel(sprintf('x'))

meixh06 发表于 2008-6-2 17:39

请教各位高手

运行上面这个程序求解分岔的时候出现?? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

Error in ==> fencha2 at 29
zhang=;

>>

咕噜噜 发表于 2008-6-2 19:04

fradata1(1,r)=frmdata(r,1);
这一行有问题,r是一个列矩阵,你这么表达没明白什么意思
显示两个矩阵必须有相同的行和列

meixh06 发表于 2008-6-2 19:42

不明白

这个是liliangbiao 的程序,不知道为什么他能做出分岔图,我换了个系统就做不出来了,奇怪的很!!大家分析哈什么原因?
页: [1]
查看完整版本: 蔡氏电路的分岔图