首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从陈氏超混沌系统中产生混沌序列?

如何从陈氏超混沌系统中产生混沌序列?
EN

Stack Overflow用户
提问于 2014-08-16 10:39:17
回答 2查看 2.1K关注 0票数 1

我需要生成两个基于chen的超混沌system.It的混沌序列,它必须由以下四个公式生成

代码语言:javascript
运行
复制
X=ay-x;
Y=-xz+dx+cy-q;
Y=xy-bz;
Q=x+k;

其中a,b,c,d,x,y,z,q均按以下方式初始化。我只需要X和Y

代码语言:javascript
运行
复制
  X=[x1,x2,...x4n]
  Y=[y1,y2,...y4n]
  a=36 ;
  b=3 ;
  c=28 ;
  d=16 ;
  k=0.2 ;
  x=0.3 ;
  y=-0.4 ;
  z=1.2 ;
  q=1 ;
  n=256 ;

我尝试了下面的代码,但无法正确地得到它。

代码语言:javascript
运行
复制
clc

clear all

close all

w=imread('C:\Users\Desktop\a.png');

[m n]=size(w)

a=36;

b=3;

c=28;

d=16;

k=0.2;

x(1)=0.3;

y(1)=-0.4;

z(1)=1.2;

q(1)=1;

for i=1:1:4(n)

  x(i+1)=(a*(y(i)-x(i)));

  y(i+1)=-(x(i)*z(i))+(d*x(i))+(c*y(i))-q(i);

  z(i+1)=(x(i)*y(i))-(b*z(i));

  q(i+1)=x(i)+k;

end

disp(x);

disp(y);

请帮帮忙。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-16 14:31:58

您的代码甚至还没有达到您想要的效果。幸运的是,我对这个问题很感兴趣,而且我有很多空闲时间,所以我想我会试着一步一步地实现它,向你展示该做什么。我给你留下了一些空白。

这听起来像是你想要集成超混沌的chen系统,它在网上有着各种各样的定义,但是你似乎关注的是

所以让我们编写一个matlab函数来定义这个系统

代码语言:javascript
运行
复制
function vdot = chen(t, v, a, b, c, d, k)

    % Here you unpack the input vector v -
    x = v(1); y = v(2); z = v(3); q = v(4);

    % Here you need to implement your equations as xdot, ydot etc.
    %   xdot = ...
    %   ydot = ...
    % I'll leave that for you to do yourself.

    % Then you pack them up into an output vector -
    vdot = [xdot; ydot; zdot; qdot];

end

将其保存在一个名为chen.m的文件中。现在您需要定义参数a、b、c、d和k的值以及初始条件。

代码语言:javascript
运行
复制
% You need to define the values of a, b, c, d, k here.
%    a = ...
%    b = ...
% You also need to define the vector v0, which is a 4x1 vector of your
% initial conditions
%    v0 = ...
%

下一行创建了一个可供Matlab集成例程使用的函数。第一个参数t是当前时间(实际上不使用这个时间),第二个参数是包含x、y、z、q的4x1向量。

代码语言:javascript
运行
复制
>> fun = @(t,v) chen(t,v,a,b,c,d,k)

现在您可以使用ode45 (使用4阶runge格式进行数值积分)来集成它并绘制一些路径。ode45的第一个参数是您想要集成的函数,第二个参数是要集成的时间周期(我选择了从0到100集成,也许您想做一些不同的事情),第三个参数是您的初始条件(希望您已经定义了)。

代码语言:javascript
运行
复制
>> [t, v] = ode45(fun, [0 100], v0);

输出是t (时间向量)和v (矩阵),它的列是不同的分量(x、y、z、q),其行是每个时间点的组件的值。因此,您可以为每个x和y组件提取一列,并绘制它们。

代码语言:javascript
运行
复制
>> x = v(:,1);
>> y = v(:,2);
>> plot(x,y)

这给出了一个相当混乱的情节:

票数 6
EN

Stack Overflow用户

发布于 2015-08-16 06:36:22

@Abirami Anbalagan和Sir @Chris Taylor,我也在一定程度上研究过超混沌系统。在我看来,如果系统是混沌的,值应该是a= 35;b= 3;c= 12;d= 7;v(n) = -422 -274 0-2.4转置,其中v(n)是4×1矩阵。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25339341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档