cailiang 发表于 2009-3-30 17:06

请问!

请问有没有知道,在用matlab计算李雅普诺夫指数时,洛伦兹系统和洛斯勒系统的三个变量初始条件都是1,1,1.有没有人可以告诉我为什么?

sqt 发表于 2009-3-31 11:24

计算李雅普诺夫指数的程序有好几个,贴一个看看你用的是哪一个

sqt 发表于 2009-3-31 11:36

刚看明白楼主的意思,你贴一个产生混沌序列的代码看看,这些系统需要在特定的参数下才表现出混沌的特性

yuling 发表于 2009-3-31 15:07

回复 楼主 cailiang 的帖子

变量初始条件的选择对混沌系统的计算没有本质的影响,可以随意选(比如你在洛伦兹系统和洛斯勒系统中三个变量初始条件都是1,1,1.),真正有影响的是系统的控制参数

cailiang 发表于 2009-3-31 22:24

这是matlab的一部分程序,我不会用matlab,自己编的程序应用与这个系统时按照这初始条件带入,得到的结果是一致的。可是对于我研究的这系统,我就不知道这初始条件该怎么选了,而且初始条件的不同,得到的指数也是不一样的?所以我就不明白这里的初始条件是怎么选的?而且我还想问下,大侠们有洛伦兹系统的李雅普诺夫随参数变化的指数普吗?有的话能贴上吗?

% 计算Rossler吸引子的Lyapunov指数
clear;
yinit = ;
orthmatrix = [1 0 0;
            0 1 0;
            0 0 1];
a = 0.15;
b = 0.20;
c = 10.0;
y = zeros(12,1);
% 初始化输入
y(1:3) = yinit;
y(4:12) = orthmatrix;
tstart = 0; % 时间初始值
tstep = 1e-3; % 时间步长
wholetimes = 1e5; % 总的循环次数
steps = 10; % 每次演化的步数
iteratetimes = wholetimes/steps; % 演化的次数
mod = zeros(3,1);
lp = zeros(3,1);
% 初始化三个Lyapunov指数
Lyapunov1 = zeros(iteratetimes,1);
Lyapunov2 = zeros(iteratetimes,1);
Lyapunov3 = zeros(iteratetimes,1);
for i=1:iteratetimes
    tspan = tstart:tstep:(tstart + tstep*steps);   
    = ode45('Rossler_ly', tspan, y);
    % 取积分得到的最后一个时刻的值
    y = Y(size(Y,1),:);
    % 重新定义起始时刻
    tstart = tstart + tstep*steps;
    y0 = [y(4) y(7) y(10);
          y(5) y(8) y(11);
          y(6) y(9) y(12)];
    %正交化
    y0 = ThreeGS(y0);
    % 取三个向量的模
    mod(1) = sqrt(y0(:,1)'*y0(:,1));
    mod(2) = sqrt(y0(:,2)'*y0(:,2));
    mod(3) = sqrt(y0(:,3)'*y0(:,3));
    y0(:,1) = y0(:,1)/mod(1);
    y0(:,2) = y0(:,2)/mod(2);
    y0(:,3) = y0(:,3)/mod(3);
    lp = lp+log(abs(mod));
    %三个Lyapunov指数
    Lyapunov1(i) = lp(1)/(tstart);
    Lyapunov2(i) = lp(2)/(tstart);
    Lyapunov3(i) = lp(3)/(tstart);
      y(4:12) = y0';
end
% 作Lyapunov指数谱图
i = 1:iteratetimes;
plot(i,Lyapunov1,i,Lyapunov2,i,Lyapunov3)

无水1324 发表于 2009-4-1 15:43

回复 5楼 cailiang 的帖子

初始值的选取一般没有什么限制,除非你研究初始条件对其影响。

初始条件不同的得到的解也有可能不同,这个也是对的。所以你再研究的时候可以多试一些或者在写文章的时候注明一下
页: [1]
查看完整版本: 请问!