| Methods / ti-cas.org | |
| The TI-92 at the edge of chaos |
|
Author : Jean
Michel Ferrard |
|
|
Public : Students - Teachers |
Used material : TI-92 |
About 1845, the Belgian mathematician Pierre Verhulst proposed the following model to describe the population evolution in a given environment, by supposing that this population admits an ideal manpower E.
By noting P0 the initial manpower, and Pn the observed manpower at date n, one supposes that the quantity (Pn+1-Pn) /Pn (the rate of variation between year n and the year n+1) remains proportional the rate of variation between year n and the year n+1) remains proportional to E-Pn (i-e what's separate current manpower from ideal manpower). While noting K this proportionality factor (positive), we arrive at the formula: Pn+1=Pn+K*Pn*(E-Pn).
This model isn't at all eccentric. It is noted for example that if Pn=E, then for very m>n, Pm=E. Ideal manpower is thus a «stable» situation.
In addition, if Pn<E, Pn+1>Pn, and if Pn>E, Pn+1<Pn: evolution is always made «in direction» of the ideal manpower E. The increase rate (Pn+1-Pn) /Pn, equal to K*(E-Pn), is all the more high since one are «far» of ideal manpower , which seems still rather natural there.
The problem comes from K, which measures the sensitivity
system. Larger K is ... more the population reacts in a violent «way » to a
variation with the ideal population. In particular, it is thus possible that
one passes from a Pn
The problem is simple: Does the population evolve wisely worms ideal manpower , and if not what's occur ?
It is simpler to consider the quantities Un=Pn /E (measuring the relationship between the current population and ideal manpower). We obtain the relation by posing k=K*E : un+1=un+k*un(1-un).
Here, we can consider that ideal manpower is 1. It will be advisable to give itself an initial manpower u0 positive (u0<1 if one leaves of a lower manpower than the ideal manpower). With this problem translation, we are in a known ground : it is a question of studying a sequence obeying at a recurrence un+1=f(un), where f is defined by: f(x)=x+k*x*(1-x). The SEQUENCE mode of the TI92 will be very useful because it will enable us to visualize the behavior of the sequence (un).
NOTE : it is shown that this type of problem can still be simplified. One could thus bring back oneself, by a change of variable, with the recurrence un+1=c*un*(1-un) or with the recurrence un+1=un2+c. By convenience, we will remain about it however with the initial formulation.
We thus note f(x)=x+k*x*(1-x), where k is a strictly positive constant, and where x is a positive variable. It is checked that F is increasing afterwards of x=0 to x=ak=(k+1)/(2k) then decreasing. Its maximum is f(ak)=(k+1)²/(4k).
It is cancelled into 0, is initially positive, then is cancelled at bk=(k+1)/k=2ak.
It is important that the interval I=[0,bk ] (that on which f(x)³0) is stable by f (i.e. f(I)ÍI). That ensures that if one chooses u0 in I, then for any n, un is in I.
To say that I is stable by f, it is to say that f(ak) (the maximum of F on I) is lower than bk. That is written (k+1)²/(4k) £ (k+1)/k, and that is equivalent saying that: k£3. Morality: subsequently, the coefficient k will check 0<k£3, and the initial term u0 will be such as 0£u0£1+1/k.
Under these conditions, one is certain that, for any n, 0£un£1+1/k.
In the study of the sequence defined by u0 and by un+1=f(un, the graph of f brings many indications, in particular by its placement compared to the line y=x. Two meet with points (0,0) and (1,1), which provides two possible limits for the sequence (un), 0 and 1.
Let us note that 0 cannot be a limi of the sequence (un) (except some exceptional cases where all the un are null starting from a certain row). Intuitively, that comes owing to the fact that the modifications of «population » are always made «in direction » of the ideal population (here 1). One can also notice that if un is close to 0, then: un+1=un+k*un(1-un)@(1+k)un>un.
Another more traditional explanation: a fixed point a of a recurrence vn+1=g(vn) (i.e. a solution of g(x)=x, or a possible limit of the sequence (vn)) is "gravitational" if -1<g ' (a)<1 (all the more gravitational that g'(A) is close to 0) and «repulsive » if |g ' (a)|>1. In our case, f '(0)=1+k>1: the fixed point 0 is thus of repulsive nature.
Of the same f '(1)=1-k<1. This fixed point will be thus «gravitational »if 1-k>-1 , so if k<2 (i.e. if the sensitivity of the system is not too large). The most interesting case will be thus 2<k£3 (very significant system).
Enough theory. It is time that the TI-92 passes to the action! In the HOME screen , we start by defining the function f, and we evaluate for that the instruction: Define f(x)=x+k*x*(1-x).
Initially, we plot the curves y=f(x) which correspond to several values of K (of 0.5 in 0.5, from 0.5 to 3).
Here procedure: In MODE, select FUNCTION mode. In the «Y=» screen,
create the function y1 by giving him the value y1=f(x). In HOME, evaluate: {
0.5,1,1.5,2,2.5,3 } -> k.
|
|
In WINDOW screen , choose: xmin=0, xmax=3, ymin=0, ymax=1.5. Pass in GRAPH screen : one realizes with interest that the TI92 accepts this value of k, and that it plots the 6 corresponding curves of y=f(x). It is noted that these 6 curves are cut at the point (1,1). |
|
|
In this screen, select DrawFunc to trace the first bisectrix y=x (evaluate the instruction DrawFunc X) |
To study the sequence (un), we should choose the SEQUENCE mode. In «Y=» screen, one defines the sequence (un), and one gives the value of u0 : u1=f(u1(n-1)), ui1=0.3 (value 0.3, selected here for u0, is an example).
|
|
In WINDOW screen, one seizes the following data (here, one will be brought to modify these values). |
Let us recall that «nmin » is the index of the first term of the continuation (here u0); «nmax » is the index of the last studied term (choose it rather large); « plotstrt » is the sequence number of the first term to be traced (1 means that one will trace starting from u0). « plotstep » is the variation of index between two traced terms (1 is logical, because one will trace consecutive terms).
The other values define the window (traditional).
|
|
In the screen «Y=», one chooses, for the axes (F7), modes WEB and TRACE. That will make it possible to visualize the behavior of the sequence un, as we are accustomed to doing it on paper. |
The choice of k will be done in HOME. Let us start with value 0.5: 5 -> k
One enters on the GRAPH screen. The TI-92 traces the first bisectrix y=x, and the curve y=f(x). One actuates F3 to pass in TRACE mode. Supports on the cursor make it possible to " see " the behavior of the sequence.
Here, what one obtains with the data indicated previously :
|
|
It is seen that the convergence of the sequence towards value 1 is rather fast. Here, the sequence is increasing. It would be decreasing (and always convergent towards 1) if u0>1 had been chosen. |
|
|
If k=1 convergence towards 1 is much faster (this is due to the horizontal tangent at the item (1,1)): 1 is very gravitational. The sequence (un) is increasing. If u0>1 had been chosen, one would have obtained u1<1 and then an increasing sequence starting from u1. |
|
|
For k=1.5, there is always a fast convergence towards 1, but alternated. The sequence (un) isn't monotonous. |
|
|
In the preceding case, convergence «in spiral» appears better if one makes ZoomIn (with factor 10) (while centering close to (1,1). (made ZoomPrev to return to the preceding window). |
|
|
For k=2 one finds convergence towards 1 «in spiral», but much slower. One even doesn't distinguish any more the various branches of the spiral... |
Gradually, we increased the sensitivity of the system, which starts to react in a rather hard way. The first sign of disorder appeared with k >1: one sees that the system answers to a situation un<1 (lower population than ideal manpower) by un+1>1 (following population higher than this manpower) then by un+2<1, etc.
The tension appears clearly with k =2, for these « jolts » have sorrow to make converge the system towards its ideal manpower.
The best (2<K£3) remains to come ... We are indeed ready to study the behavior of the system for the values 2<K£3 (very significant system).
|
|
One gives to k the maximum value 3. One preserves the data indicated previously. The behavior of the sequence seems completely disordered. The first 13 iterations. |
|
|
The first 100 iterations. |
One could think that calm will return. To have the clear heart of it, one decides to set WEB/AUTO (F7 in the screen «Y=») and to pose (in screen WINDOW) «plotstrt=100 »(and always «nmax=200»). Thus the TI92 will trace only the behavior of the sequence, to u100 to u200.
|
|
Here what one obtains. That is thus not arranged... In fact, that will never be arranged. We entered in the era of chaos! |
Let us remember that the system always answers (at the time of the passage of un to un+1) by a displacement «in direction » of ideal manpower 1 (because the difference un+1-un is sign of 1-un). And this answer is all the more abrupt since k is large. If k>2, the fixed point 1 (ideal manpower) became « repulsive ». The sequence (un) live a conflict situation with the value 1, which at the same time attracts and pushes back it.
The maximum value k=3 shows that a complete disorder can result from this relation which one could describe as « sadomasochistic. »
One can wonder if situations of balance do not appear all
the same for less extreme values of K (i.e. if 2
|
|
Let us see for example what occurs if k=2.5. We return first of all to mode WEB/TRACE, and to «plotstrt=1 »(always with ui1=0.3). The first 50 iterations. There still, it's rather disordered, although ... |
|
|
Let us take again the value «plotstrt=100, » always in mode WEB/TRACE. With our great surprise, we observe that the sequence (un) tends towards a cyclic behavior, for the values. a=0.535948, b=1.157717, c=0.701238 and d=1.224996 |
After one period of relative disorder, the system tends to oscillate between 4 distinct manpower (alternatively lower and higher than ideal manpower 1).
We now will try out other values (by keeping the same data as previously).
|
|
With k=2.25, one observes this time a cycle for the two values a=0.715383 and b=1.173506. |
|
|
With k=2.83, there is a cycle on three values, a=0.682994, b=1.295726 and c=0.211326. |
|
|
With #=2.56, we observe a cycle on eight values. |
One could choose k to obtain cycles length 16, 32, 64, 128, ... ... ! But for other k, no cycle appears (as with k=3)...
Up to now, one varies k, and one saw that the behavior of the sequencen (with u0=0.3) was considerably modified. One can legitimately wonder if the value of u0 has the same influence.
If we take again the preceding values k=2.5, k=2.25, k=2.83, k=2.56, and if we test u0=1.1, u0=0.7, or u0=0.1, we obtain (after a certain time) the same cycles as those already observed.
To be honest, certain particular values of u0 can make exception (let us not speak about u0=0 or u0=1). Thus, with k=2.5, u0=1.2 produces a cycle length 2, on values 1.2 and 0.6: in this case the sequence (un) is quite simply 2-periodical ...
The cycles observed seem «necessary. » They are indeed because they are related to the fixed points of the fof, fofof, applications ... ..., but all that would involve us a little far!
We satisfy with a simple example: if k=2.25, the equalities f(a)=b and f(b)=a imply fof(a)=a and fof(b)=b. The reals a and b are thus two fixed points of the fof application.
|
|
One calculates (with k=2.25) the zeros of fof(x)-x. One finds A and B (also 0 and 1: it is normal). One calculates the derivative of fof in these 4 points and we note that only A and B are «gravitational ». (derivative between -1 and 1). This explains why the sequence (Un) is stabilized on the cycle A®B®A. |
In what precedes, it was possible to have a certain stability (cycles length 2,4,8, ... .) in an apparent disorder
The value k=3 seems much more desperate. No ordered evolution could be established. It is however there that us a surprise of size waits. There exists indeed, only in this case (it is a roof), a simple formula to calculate each un !
Let us suppose k=3. The sequence (un) is defined by the data of u0 and the recurrence relation un+1=un+3un(1-un)=4un-3un2. One always supposed 0£u0£(1+1/k)=4/3,which involves, for any n, 0£un£4/3. The double inequality 0£u0£4/3 enables us to pose u0=4/3*sin2(q), with 0£q£p/2. A small miracle is observed.
u1 = 4u0-3u02 = 16/3*sin2(q)-16/3*sin4(q) = 16/3*sin2(q)cos2(q) = 4/3*sin2(2q). An obvious recurrence gives then, for all entire n: un = 4/3*sin2(2n*q), where q = Arcsin(Ö(3u0/4)).
We did not finish with k=3, because this formula makes it possible to find values of the initial term u0 for which the sequence (un) is periodic!
Either p a positive integer (p>1). One knows that in the sequence (un), each term is defined only starting from the precedent. The sequence (un) is thus p-periodical, starting from the enteger m, as soon as um+p=um.
This equality is written: 4/3*sin2(2m+p*q)=4/3*sin2(2m*q), & for example : 2m+p*q=2m*q+qp (where q is an integer), i-e : q=qp/2m/(2p-1).
Let us summarize: with the initial value u0=4/3*sin2(qp/2m/(2p-1)),
(m³0, p³2,
q³0) the sequence (un) is p-periodical
starting from its um term. Here 2 numerical applications (in both cases
the layouts are made starting from u0):
|
|
Here m=0, p=3,et q=2. therefore U0=4/3*sin2(p/ 3), and the sequence (Un) is 3-periodical. |
|
|
Here m=4, #=5, q=199, i-e, with U0=4/3*sin2(199p/ 496), the sequence (Un) is 5-periodical starting from U4. |
Where is the order, where is the disorder? Both seem so overlapping ... And it is not finished! because we will see that in this apparent tumble hide strange figures («the attractile ones). It's FRACTALS (that must say something to you...). Who will win : the order or chaos?
Let us point out the definition of f : Define f(x)=x+k*x*(1-x)
k is a global variable here, being able to take any value in ]0,3]. One knows
that if the initial term u0 of the sequence (un) is in ]0,1+1/k[, then
it is the same for all the terms of the sequence (un). It was noticed that,
if 0<k£2, the sequence converges
towards 1 (in a monotonous way if 0<k£1, nonmonotonous if 1<k<2; quickly if
k@1 and slowly if k@0 or k@2).
If 2<k<3, there are cycle-limits. For example, if k=2.25, the sequence (un) «tends »towards the cycle a®b®a, where a=0.715383 and b=1.173506 (f(a)=b and f(b)=a).
We propose to program the search for such cycle-limits, which one saw that they did not depend, except exception, of the initial value u0. We want to write a named function «cycles » taking in input the value to be given to the parameter k and returning the list of the values of the cycle obtained (empty list if no cycle is found).
In other words, it is necessary to find from when the sequence becomes periodic,
and between which values it «turns ». The problem is that one does
not know which will be the length of this cycle.
The solution is astute. The merit returns apparently to Martin Gardner in an article of Scientific American. The idea is to calculate in parallel x=un and y=u2n (the sequence (y) «advances » twice more quickly than the sequence (x)). If the sequence (un) becomes periodic as from a certain time, then one will necessarily have x=y.
It's then enough to compare for x=un the terms, un+1, un+2,..., until an equality un+p=un appears (necessarily p£n). We found the cycle, of lenght p : {un, un+1, un+2,..., un+p-1}
NOTE : it's only a cycle-limit. The equalities of the un+p=un type and the periodicity are true only on the computer (because of the precision limited to 12 digits).
The following listing is the translation of the preceding ideas. It will be noted that u0 is selected randomly between 0 and 1.
|
: cycles() : Func : Local x,y,n,c : rand()->x:x->y : For n,1,500 : f(x)->x:f(f(y))->y : If x=y:Exit : EndFor : If x/=y:Return {} : {x}->c : Loop:f(y)->y:If y=x:Exit : augment(c,{y})->c : EndLoop : c : EndFunc |
The "For"» loop tests if un=u2n until, at most, n=500. If no equality un=u2n appeared for n<=500, then cycles() returns the empty list { }.
The "Loop" loop takes care to build the cycle starting from the first index N for which we found un=u2n, and it returns the corresponding list. |
|
|
Here some results, for k=2.25 (cycle of length 2), k=2.5 (cycle of length 4), k=2.55 (cycle of length 8) and k=2.83 (cycle of length 3). The displayed values are in mode «FIX 6». For k=2.566, for example, one would obtain a cycle of length 16. |
It is seen that the size of the obtained cycles is not a simple function of K.
For certain values of K (k=2.569, for example), «cycles » does not find a period : either that this period does not exist, or that the value 500 (used in the listing) is too low to highlight it ...
The theoretical idea which comes to mind is to trace the the points (k,y), where, for each value of k, y is one of the points of the cycle which corresponding to K. For each value of K, in X-coordinate, one would be thus brought to trace 1,2,3,4,8... points according to the length of the cycle.
One thinks of using the «cycles» function , but the layout would take time.
One thus proceeds in a way a little «more artisanal. »For a given K, (and for selected value of u0), one starts by calculating the first 100 terms of the sequence, without trace. In this manner, one hopes to avoid the most disordered part (that which precedes the appearance of a cycle).
Then one traces the 100 following points (K in X-coordinate, y=un in ordinate).
It's possible that some points are confused (in particular if one entered during the cyclic period and if the period is very lower than 100).
For the values of k which would lead to very long cycles (128,256...) or with the absence of cycle, the display from these 100 points will give an idea of the disorder which still reigns at this stage of the sequence.
One will carry out layouts over all the width of the screen, therefore for 239 values of K (TI-92/92 Plus). For each k, one calculates 100 values of un, then one traces 100 others of them. Thus, one calculates almost 50000 values. The consequence is immediate: it is long ! You can accelerate the layout (by decreasing value 100 in the listing), but that will be never very precise.
Here, the listing of the program Feigenbm().
|
:feigenbm() :Prgm :Local j,n,x :ClrDraw:ClrGraph:FnOff:100->n :For k,xmin,xmax,Dx:rand()->x : For j,1,n:polyEval({-k,1+k,0},x)->x : EndFor : For j,1,n : polyEval({-k,1+k,0},x)->x:PtOn k,x : EndFor :EndFor :EndPrgm |
To get time, one replaces «f(x)->x» by «polyEval({-k,1+k,0},x)->x» (the result is the same). The «For k» loop ensures that K takes all the values of xmin to xmax (a step = a pixel). Before Feigenbm(), one will choose dimensions of the window. |
Here, what one obtains, with the window: xmin=1.8; xmax=3; ymin=0, ymax=1.4 (the calculating time is 45 minutes! with a TI-92v1.13).
The obtained figure is known under the name of diagram of Feigenbaum (American physicist whose work dates from the Seventies).
Its structure is attractive: one sees many points of junction (when the length of the cycle doubles). Sometimes one passes from an apparent chaos to a calmer situation. As any fractal figure, it has autosimilarity properties (one can zoom and recognize the original figure). We will finish this paragraph by some of these zooms.
|
|
Here the rectangle in which we will carry out the first zoom. We define for that a new window: xmin=2.43; xmax=2.67; ymin=1; ymax=1.29. |
|
|
After having made the necessary modifications in WINDOW, we start again the Feigenbm() program. Here what we obtain. |
The resemblance to the original is striking. The accuracy error towards the first junction is due o the program: it happens that the computation of the first 100 terms (without tracing them), is not enough to enter to the cyclic behavior.
|
|
window defined by: xmin=2.56; xmax=2.58; ymin=1.23; ymax=1.25. Here what we obtain. |
The Feigenbm() program starts to show its limits. Don't forget that the current window represents approximately 2/10000 of the initial window, and that the majority of the "lit" points fall apart from the new window. The inaccuracies (first junction) can be corrected by increasing value 100 in Feigenbm(), therefore by increasing the calculating time ...
It is shown that the values of k which produce junctions (doubly cycles) are approximately: k1=2; k2=2.44949; k3=2.54409; k4=2.56441; k5=2.56876; k6=2.56969; k7= 2.56989...
These values define intervals: d1 = k2-k1, d2 = k3-k2; d3 = k4-k3, ... ...
Finally, the ratios of these lengths: d1/d2, d2/d3, d3/d4, d4/d5, ... ... , tend towards D @ 4.66920, called constant of Feigenbaum (discovery in 1975).
This mysterious constant is universal. It very frequently appears in the fractals, and one also meets it in many physical phenomena (dynamics of the fluids, physics of the lasers, acoustics, electronics...). In fact the constant of Feigenbaum could have the same importance in nature as constant p ...
This title is derived from an article of meteorologist (E.N.Lorenz), who, in the Sixties, studied how much the forecasting models weather were sensitive to a negligible variation of the initial conditions. It then wondered whether a tornado at the top of Texas could not be caused by the flight of one butterfly to the other end of the sphere...
We will study the butterfly effect on the behavior of the sequences (un) defined by un+1=un+k*un*(1-un), with k=3 (thus for the maximum sensitivity). The initial term u0 is in #[ 0 , 1+1/k ] (and it is then the same of all the un).
In the MODE, we choose SEQUENCE. In the «Y= »we pose: u1=u1(n-1)+3*u1(n-1)*(1-u1(n-1)).
|
|
With F7/Axes we select WEB/TRACE. In "Window", we choose the data opposite. |
We saw previously, that the initial value u0=4/3*sin2(2p/ 7) led to a sequence (un) periodic of period 3. It is checked that: u1=4/3*sin2(4p/7), u2=4/3*sin2(8p/7), and u3=4/3*sin2(16p/7)=u0. And more generally un+3=un.
In «Y=», one poses ui1=4/3*sin2(2p/7) (let us recall that it is about the initial term of the first sequence. For us it is u0 ).
One must thus expect to see «rolling »the sequence (un) on the three successive values u0 » 0.815014, u1 »1.26731, u2 »0.251007.
On GRAPH, one passes in mode TRACE, to visualize the behavior of the sequence.
|
|
As this screen shows it, all is held as envisaged ... to u17. |
|
|
At the time to calculate U20, one observes a variation on the last displayed decimal. Nothing of alarming, we think. |
|
|
With U23, that is spoiled a little. |
|
|
With U33, error grew bigger and it is sufficiently important to be visible on the screen. |
|
|
With U48, the madness... |
What did it occur? The initial value that we believed to give to u0, ( u0=4/3*sin2(2p/7) ), was replaced by an approximate value by using the internal precision of the calculator.
This initial error, negligible, did not cease swelling until the behavior of the sequence was completely changed by it (the error between truth un and the TI-92' un have the size of un itself).
The initial butterfly was thus transformed into an enormous ventilator. The TI-92 is not in question. Any numerical system coding reals with a finished number of decimals would undergo this phenomenon.
To describe what we observed, i.e. an extreme dependence compared the initial conditions, in a process which however seems nothing to leave randomly (each term is calculated according to the precedent, by a concrete formula ), the Anglo-Saxons speak about «Deterministic chaos» .
Here another solution of checking the exacerbated sensitivity of the system which we are studying.
|
|
In «Y=», we define a new sequence, with exactly the same formula of recurrence and we define two "identical" terms. |
In small F6, we choose Square for the two sequences. In F7, we choose CUSTOM for the axes, with u1 (first sequence) in X-coordinate and u2 (second sequence) in ordinate. The TI-92 will build the points of co-ordinates (u1(N),u2(N)). Theoretically these points should practically be on the first bisectrix...
|
|
Here the first 40 points. |
|
|
Here, 10 new points ... (it's with the 41° term which one starts to see chaos). |
|
|
And here the first 500 points ! |
A last experiment should complete to convince you (or to worry you). Let us note that the formula of recurrence un+1=un+3*un(1-un) can be written, more simply: un+1=4un-3un2.
|
|
In «Y=», we use the first formula for the first sequence and the second formula for the second sequence. But this time, we start from the same value initial. |
|
|
With equivalent formulas of recurrence, and the same starting point, one should obtain the same sequences exactly. However ... the disply (same conditions as previously) of the first 100 points (u1(n),u2(n)). |
The same disorder appeared! You will not undoubtedly see your calculator of the same way now... Once again, no system of numerical calculation can resist the butterfly «effect». A computer which would work with 100 decimals would fall into the same trap, but more slowly... The phenomenon which has been just highlighted produces however only on quite particular occasions.
One saw on several occasions how much the value of the coefficient k could have importance in the behavior of the sequences un+1=un+kun*(1-un). The low values of K (for ex. 0<k<2) lead to stable «systems».Variations on the initial term do not prevent the sequence to converge towards 1.
The following example offers a striking illustration of it. One chose k=0.05 (for a slow convergence) and two sequencens defined by the usual relation, the initial value being 0.1 for a sequence and 1.4 for the other. One chose xmin=0, xmax=238, ymin=0, ymax=1.4 and mode TIME for the axes.
|
|
One sees that the two sequences converging towards , even the difference between the initial terms (do you find that it's a resting image ?). |
Until now we made only observations. We now propose to study the role of the coefficient K in a little more precise way.
The studied sequences check the relation: un+1=f(un) avec f(x)=x+k*x*(1-x). Let us recall that all the terms of the sequence are in the interval [ 0 , 1+1/k ]. What interests us, it is of knowing how an initial error e0 on the u0 term can be propagated.
Suppose that "en" is the absolute error on the term un. By using a traditional result of analysis: en+1 = |f(un+en)-f(un)| » en*|f '(un)|.
However F ' (X) is equal to: 1+k-2k*x. Thus en+1/en » |1+k-2k*un|. There is an estimation of the factor by which the error is multiplied, in the passage of row N to the row n+1. In the passage of row 0 to row N, the initial error is multiplied by the factor: (e1 /e0)(e2 /e1)....(en /en-1)=(en/e0).
If the error underwent a rate of increase constant l, this rate should check: ln=(e1 /e0)(e2 /e1)...(en /en-1) or : ln(l)=1/n[ln(e1 /e0)+...+ln(en/en-1)]
And finally, with the notations of the TI-92:
ln(l)=1/n*S(ln(em+1 /em),m,0,n-1)=1/n*S(ln(|1+k-2k*um|),m,0,n-1).
For a given value of u0, one can calculate the sum of the second member, and take exponential result. One thus obtains the average coefficient of amplification of the error on N first rows of the sequence.
Here a program which calculates the average rate of error amplification, of u0 to un, for each value of N.
This average rate is displayed with the value of N which corresponds to him. Syntax is lambda(u0,k), where u0 is the initial term and K the coefficient.
|
:lambda(u0,k) :Prgm :Local n,u,s :u0->u:0.->s:0->n :Loop : n+1->n : s+ln(abs(1+k-2*k*u))->s : Disp string(n)&" "&string(e^(s/n)) : u+k*u*(1-u)->u :EndLoop :EndPrgm |
|
|
With k=3, one sees very well that the sequence of the coefficients l tends towards 2, independently of the initial term. One can thus affirm that on average, and when k=3, the errors are doubled with each calculation of a new term. |
If the error is initially 1E-12, then at the end of 40 iterations, it is about (240)*(10-12)»1: the error covers completely the signal which one must observe... One will thus not be surprised, in one of the preceding examples, that chaos clearly «appeared » during the calculation of u41.
NB: preceding calculations are correct if the total error remains small.
|
|
If k=2, theamplification coefficient (lambda) tends rather towards 0.94 (what it's not abnormal, because in this case, the sequence uN converges towards 1, very slowly). |
|
|
If k=1, one knows that the sequence converges very quickly towards 1. It is observed that the amplification coefficients converge very quickly towards 0. The fixed point 1 is hyper-gravitational, it aspires all the sequence violently and neutralizes the errors. |
|
|
Finally with a very low value of K, for example k=0.01 (very slow convergence towards 1), one finds coefficients (lambda) very close to 1. |
We have just seen how, with a minimum of programming, and especially thanks to its SEQUENCE environment the TI-92 enabled us to tackle this impassioning subject of the discrete dynamic systems.
One does not know who won ... the order or the chaos (and so finally it was the same thing?).
Let us recognize how much the TI-92 was invaluable to us to undertake
this study.
JMF