LE

所属分类:数学计算
开发工具:matlab
文件大小:32KB
下载次数:1136
上传日期:2006-04-18 09:19:30
上 传 者zfwap
说明:  计算各种混沌系统李雅普洛夫指数的MATLAB 源程序。
(calculating various chaotic system schematic index Lee MATLAB source.)

文件列表:
demoparm.m (8338, 1998-07-09)
duffing.m (1839, 1998-07-09)
findlyap.m (10557, 1998-07-09)
henon.m (1093, 1998-07-09)
let.m (20015, 1998-07-09)
lethelp.m (2244, 1998-07-09)
logistic.m (650, 1998-07-09)
lorenzeq.m (1409, 1998-07-09)
rossler.m (1190, 1998-07-09)
sethelp.m (5555, 1998-07-09)
setting.m (30822, 1998-07-09)
startlet.m (5532, 1998-07-09)
stewart.m (1265, 1998-07-09)
vderpol.m (1161, 1998-07-09)

% ========================================================================== % 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, 1***5. % % [2] J. P. Eckmann and D. Ruelle, "Ergodic Theory of Chaos and Strange % Attractors," Rev. Mod. Phys., Vol. 57, pp. 617-656, 1***5. % % 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, 19***. help readme

近期下载者

相关文件


收藏者