The basic meaning of chaos can be summarized as follows: clustering, weekly behavior, reply, and closed. It means that the motion of a chaotic orbit is completely controlled by the law, but the orbital motion in the phase space will not stop. It will always move in the finite space, and the non-Intersecting motion will not be closed. The chaotic motion table is out of order and creates a kind of randomness, also known as inherent randomness.
Chaotic Systems have three key elements: first, sensitive dependence on initial conditions; second, critical level, where the occurrence point of non-linear events; and third, fragment dimension, it indicates the unification of order and disorder. Chaotic systems are often self-feedback systems. What comes out will go back and transform and then come out. The loop is endless. Tiny differences in any initial values will be exponentially magnified, as a result, the system cannot predict For A Long Time internally.
This section provides a demo to generate a chaotic discrete point set image, which contains a chaotic image generated by multiple different equations. in this demo, we will see the images generated by the point set that can see the law and can't see the law.
For: http://files.cnblogs.com/WhyEngine/chaos.7z
-------------------------------------------------------------
In the chaotic graph of this discrete point set, vertex data is generated using Iteration Methods:
In the middle school textbooks, we have learned that a mona1 function can usually be expressed as: Y = f (x) where X is the independent variable, and Y is the dependent variable.
For example, if y = 3X + 1, if X = 1, then Y = 4; If x = 4, then Y = 13; in short, if X is determined, then the corresponding y is also determined.
We use an abstract symbol F to indicate the causal relationship between Y and x changes. The end of this article is: The number y changes with the number X, and Y is determined by X. The decision is based on "relationship" F.
If we use a relational function, such as Y = f (x), substitute X to calculate a Y, and use y as the new X to calculate the next y ......... In mathematics, this method is called iteration. The specific expression is xn = f (x n-1), n =, 3 ........
Those who have learned the program will surely know the "Fibonacci series", which is a typical example of the xn = f (x n-1) equation. However, this type of equation does not converge, so the table will pop up in a few images.
OK. First post the basic class definition code about the discrete equation object:
1 # define set_get_float_property (name) 2 void set ## name ## (float v) 3 {4 M _ ## name ##= V; 5} 6 float get ## name ## () const 7 {8 return M _ ## name ##; 9} 10 11 # define PI 3.14159265f12 13 // limit 14 15 class discreteequation16 {17 public: 18 discreteequation () 19 {20 m_startx = 0.0f; 21 m_starty = 0.0f; 22 23 m_parama = 0.0f; 24 m_paramb = 0.0f; 25 m_paramc = 0.0f; 26 m_paramd = 0.0f; 27 m_parame = 0.0f; 28} 29 30 // iteration 31 virtual void iteratevalue (float y, float Z, float & outy, float & outz) const = NULL; 32 33 // calculate the Z axis coordinate of the Point Set 34 static void calculatepointsz (void * curveverticesptr, unsigned int stride, unsigned int count, float minz, float maxz) 35 {36 char * zptr = (char *) curveverticesptr + 2 * sizeof (float); 37 float zstep = (maxz-minz)/(count-1 ); 38 39 for (unsigned int I = 0; I <count; I ++) 40 {41 * (float *) zptr = minz + I * zstep; 42 zptr + = stride; 43} 44} 45 46 // calculate the Y axis and X axis coordinates of the Point Set 47 virtual void calculatepointsxy (void * curveverticesptr, unsigned int stride, unsigned int count) 48 {49 char * xptr = (char *) curveverticesptr; 50 char * yptr = (char *) curveverticesptr + sizeof (float); 51 52 float y, X; 53 float NX, NY; 54 55 x = m_startx; 56 y = m_starty; 57 58 for (unsigned int I = 0; I <count; I ++) 59 {60 * (float *) xptr = x; 61 * (float *) yptr = y; 62 63 iteratevalue (X, Y, NX, NY); 64 65 x = NX; 66 Y = NY; 67 68 xptr + = stride; 69 yptr + = stride; 70} 71} 72 73 set_get_float_property (startx); 74 set_get_float_property (starty); 75 76 set_get_float_property (parama ); 77 rows (paramb); 78 set_get_float_property (paramc); 79 set_get_float_property (paramd); 80 set_get_float_property (parame); 81 82 virtual bool isvalidparama () const {return false ;} 83 virtual bool isvalidparamb () const {return false;} 84 virtual bool isvalidparamc () const {return false;} 85 virtual bool isvalidparamd () const {return false ;} 86 virtual bool isvalidparame () const {return false;} 87 88 protected: 89 float m_startx; 90 float m_starty; 91 92 float m_parama; 93 float m_paramb; 94 float m_paramc; 95 float m_paramd; 96 float m_parame; 97 };
Each type of chaotic point set is a subclass of the discreteequation object in the program.
At present, I have implemented the following chaotic equations, which will be described one by one in subsequent chapters:
(1) logistic_equation
(2) henon_equation
(3) baker_equation
(4) circuit_chaotic
(5) Export ld_equation
(6) standard_equation
(7) feigenbaum_equation
(8) biology_chaotic
Demo of discrete point set in chaotic mathematics