⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.m

📁 计算各种混沌系统李雅普洛夫指数的MATLAB 源程序。
💻 M
字号:
% ==========================================================================%                    LYAPUNOV EXPONENTS TOOLBOX% ==========================================================================%% 1. ABOUT THE PROGRAM%%    Lyapunov Exponents Toolbox (LET) provides a graphical user interface%    (GUI) for users to determine the full sets of Lyapunove exponents%    and dimension of their specified chaotic systems.%%    This version of LET can only run on MATLAB 5 or higher versions of%    MATLAB. It has been tested under Windows and Unix.  LET may also%    run on other platforms.%%    The original version of LET has only 200 lines while the GUI version%    of LET has almost 2000 lines.  The GUI makes the program become more%    sophisticated and run slower but allows the users to observe the%    calculated results immediately, so that they can decide whether the%    results are convergent or not.%%% 2. HOW TO USE THE PROGRAM%%    To run the program, enter LET in MATLAB command window.  In order to%    run the program properly, all files of this toolbox must be in MATLAB%    path.  When a GUI window appears, users can run a demo program by%    pressing the "Start demo" button or start the main program by pressing%    the "Run LET main program" button.  LET provides some well-known%    chaotic systems for demonstrations.  The users can choose one of them%    from the pop-up menu.%%    To calculate the Lyapunov exponents and dimension of a specified%    system, follow the steps below:%%    1) write an ODE function that describes the specified system and its%       variational equation (see details given below),%    2) enter LET in MATLAB command window,%    3) press the "Run LET main program" button in the startup window,%    4) press the "Setting" button in the main window,%    5) enter desired parameters in the setting window,%    6) when finish, press the "OK" button,%    7) press the "Start" button in the main window to start calculation.%   %% 3. FILES IN THIS TOOLBOX%%    LET contains the following m-files:%%     1) LET:      main program%     2) STARTLET: program for setting up a startup window%     3) SETTING:  program for creating a GUI window for users to input%                  parameters%     4) FINDLAYP: program for calculating Lyapunov exponents and dimension%     5) DEMOPARM: file that contains the parameters of demo systems%     6) LOGISTIC: ODE function of Logistic map and its variational equation%     7) HENON:    ODE function of Henon map and its variational equation%     8) DUFFING:  ODE function of Duffing's equation and its variational%                  equation%     9) LORENZEQ: ODE function of Lorenz equation and its variational%                  equation%    10) ROSSLER:  ODE function of Rossler equation and its variational%                  equation%    11) VDERPOL:  ODE function of Van Der Pol equation and its variatonal%                  equation%    12) STEWART:  ODE function of Stewart-McCumber model and its %                  variational equation%    13) REAMDE:   Help text of this toolbox%    14) LETHELP:  Help text of LET main program%    15) SETHELP:  Help text of setting window%%% 4. ALGORITHM EMPLOYED IN THIS TOOLBOX%%    The alogrithm employed in this toolbox for determining Lyapunov%    exponents is an integration of the two algorithms proposed in%%    [1] A. Wolf, J. B. Swift, H. L. Swinney, and J. A. Vastano,%        "Determining Lyapunov Exponents from a Time Series," Physica D,%        Vol. 16, pp. 285-317, 1985.%%    [2] J. P. Eckmann and D. Ruelle, "Ergodic Theory of Chaos and Strange%        Attractors," Rev. Mod. Phys., Vol. 57, pp. 617-656, 1985.%%    respectively.%%    For first-order systems, the algorithm given in [1] is used for its%    easy implementation and high speed. For higher order systems, the%    QR-based algorithm proposed in [2] is applied.%%% 5. WRITE THE ODE FUNCTION FOR A SPECIFIED SYSTEM%%    In order to calculate the Lyapunov exponents of specified systems,%    users have to write their own ODE functions for their specified%    systems.  ODE functions of continuous systems are a little bit%    different from that of discrete systems.  Both of them will be%    discussed.%%    A. Continuous systems%%    Let's take the Lorenz system as an example.%%    The Lorenz system is governed by the following ODEs:%%               dx/dt = a*(y - x)     = f1%               dy/dt = r*x - y - x*z = f2%               dz/dt = x*y - b*z     = f3%%    The first step is to calculate the Jacobian of the above system as%    following:%%         /                         \      /                     \%        |   df1/dx  df1/dy  df1/dz  |    |    -a       a    0    |%        |                           |    |                       |%    J = |   df2/dx  df2/dy  df2/dz  |  = |   r - z    -1    -x   |%        |                           |    |                       |%        |   df3/dx  df3/dy  df3/dz  |    |     y       x    -b   |%         \                         /      \                     /%%    where df1/dx denotes the partial differentiation of f1 with%    respect to x.%%    Then, write the variational equation as following:%%               F = J*Q%%    where Q is a square matrix with the same dimension as J.%    Note: the diagonal elements of Q are distances between nearby%          trajectories.  Initially, Q is an identity matrix. Users%          do not need to specify the initial conditions for Q. The%          program will do it for them.%%    Now, take the ODE function of Lorenz system (in file: LORENZEQ.M)%    as an illustration example.%%---------------------------------------------------------------------------%       %        Output data%       %         |     ODE function name %       %         |       |      t (time), must be included in this case%       %         |       |      |  Input data%       %         |       |      |   |%       function OUT = lorenzeq( t,  X)%%       % The first 3 elements of the input data X correspond to the%       % 3 state variables of the Lorenz system.  Restore them.%       % The input data X is a 12-element vector in this case.%       % Note: x is different from X%%       x = X(1);  y = X(2);  z = X(3);%%       % Parameters%       a = 16;    r = 45.92;  b = 4;%%       % Write the ODEs of Lorenz system here:%       dx = a*(y - x);%       dy = -x*z + r*x - y;%       dz = x*y - b*z;%%       % Q is a 3 by 3 matrix, so it has 9 elements.%       % Since the input data is a column vector, rearrange%       % the last 9 elements of the input data in a square matrix.%       %       Q = [X(4), X(7), X(10);%            X(5), X(8), X(11);%            X(6), X(9), X(12)];%%       % Linearized system (Jacobian)%       J = [   -a,   a,  0;%            r - z,  -1, -x;%                y,   x, -b];%  %       % Multiply J by Q to form a variational equation   %        F = J*Q;%%       % The final step is to output the data which contains%       % dx, dy, dz and F. The output data must be a column vector.%       % If F is of the following form:%       %%       %      /             \%       %     |  a    d    g  |%       %     |               |%       % F = |  b    d    h  |%       %     |               |%       %     |  c    f    i  |%       %      \             /%       %%       % the output data must be of the following form:%       %%       % OUT = [dx, dy, dz, a, b, c, d, ..., h, i]';%%       % In MATLAB's language, it can be expressed simply as:%       OUT = [dx; dy; dz; F(:)];%-----------------------------------------------------------------------%%    The above procedures are for autonomous systems only. Non-autonomous%    systems have to be transformed to autonomous systems. This can be%    done by introducing a new state variable (say z ).%    Let's take the Duffing's equation as an example:%%          dx/dt = y%          dy/dt = -k*y - x^3 + B*cos(t)%%    Duffing's equation is non-autonomous since it is explicitly dependent%    on t.  To change it to autonomous, let z = t, and then this second-order%    non-autonomous system can be expressed as a third-order autonomous%    system as follows:%%          dx/dt = y%          dy/dt = -k*y -x^3 +B*cos(z)%          dz/dt = 1%%    Its Jacobian can be determined as following:%%               /                      \%              |     0     1      0     |%              |                        |%          J = |  -3*x^2  -k  -B*sin(z) |%              |                        |%              |     0     0      0     |%               \                      /%%     Then, follow the procedures mentioned early to write the ODE%     function for the system (see DUFFING.M for the ODE function).%%     B. DISCRETE SYSTEMS%%     The only difference between continuous and discrete ODE functions%     is that continuous ODE functions have the time t as one input data%     while discrete ODE functions do not.  See the illustration below:%%------------------------------------------------------------------------%     % A continuous ODE function must include this input parameter%     %                       |%     %                       |%     function OUT = lorenzeq(t, X)%                  :%                  :%------------------------------------------------------------------------%     % A discrete ODE function does not require the t-component%     %%     function OUT = henon(X)%                  :%                  :%------------------------------------------------------------------------%%    The remaining procedures of writing the ODE function for a discrete%    system are the same as that for a continuous one.  See HENON.M,%    and LOGISTIC.M for references.%%    For more details of writing ODE files, see the help text of ODEFILE%    (can be obtained by choosing ODEFILE from the above pop-up menu).%% 6. ACKNOWLEDGMENT%%    The author would like to thank Dr. Keith Briggs for his kindly help%    and sending his Fortran Lyapunov exponent program to the author for%    reference.%%% 7. ABOUT THE AUTHOR%%    The author of LET is Steve Wai Kam SIU, who is currently a research%    student of City University of Hong Kong.  He is with the department%    of Electronic Engineering.  Steve's research interests include%    the application of chaos to secure communications, chaos control,%    synchronization of chaotic systems, and nonlinear dynamics of phase-%    locked loops.%%% Although full support of this program is not available, the users can% send comments and bug reports to the author so that he can improve the% program.%%                     %-------------------------------------------------------------------------%%                          Steve Wai Kam SIU%                 Department of Electronic Engineering%                    City University of Hong Kong%                 Tat Chee Avenue, Kowloon, HONG KONG%       %                 E-mail address: wksiu@ee.cityu.edu.hk%%--------------------------------------------------------------------------%% See also: LETHELP, SETHELP, and ODEFILE% by Steve W. K. SIU, July 7, 1998.                                   help readme

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -