Project 2: Exploring Chaos Work on one of the three problems below. You have free choice; if you are particularly eager or cannot decide which one to choose, you may also work on more than one problem. These problems address different aspects of chaotic dynamics. 1. Lorenz System and Lorenz Map In his pioneering paper in 1963, Lorenz not only demonstrated the possibility of chaotic dynamics, but also showed how a continuous chaotic system can be reduced to a lower dimensional map by exploiting a time series. Later in the 1980s Packard, Takens and Sauer elaborated on this idea further and developped a systematic approach to analyzing computer generated as well as measured time varying data. The buzword for this approach is “Takens’ embedding theorem”, but it was Lorenz who first came up with the basic idea. In this problem you investigate the Lorenz system and generate the associated Lorenz map. Lorenz introduced this map to obtain a simplified description of the chaotic dynamics he observed in simulations of his continuous three dimensional system (the celebrated Lorenz system), governed by (dots denote time derivatives) ẋ = σ(y − x), ẏ = rx − y − xz, ż = xy − bz. (1) Choose the same parameter values as Lorenz: σ = 10, b = 8/3, r = 28. For these values the solutions of (1) approach a chaotic attractor. (a) To become familiar with the Lorenz system, plot a solution curve in the (x, y)–plane (and/or three–dimensionally in the (x, y, z)–space). Also show the time series x(t), z(t). Ignore transient behaviour, i.e. plot only the sustained long time behaviour. (b) To illustrate the divergence of trajectories, choose two nearby initial conditions x01 = (x0 , y0 , z01 ), x02 = (x0 , y0 , z02 ), where |z01 − z02 | is small (10−5 or smaller). Plot the x-components x1 (t), x2 (t) of the two solutions as functions of t in one plot on top of each other (use subplot). You should see that for t not too large the two functions remain close, but for larger t they behave completely differently. Quantify this divergence by estimating the largest Liapunov exponent λ. To this end compute first a solution over a sufficiently large time range, say 0 ≤ t ≤ tf = 300, for a generic initial condition. Use x(tf ) = x01 as new initial condition for a solution x1 (t), this time over a shorter time range, say 0 ≤ t ≤ 50. Choose a nearby initial condition x02 to compute another solution x2 (t), where the distance kx02 − x01 k is sufficiently small, say ≈ 10−5 . Make sure that the two solutions are computed over the same time spans. You can achieve this by defining a prescribed time span, e.g. tspan=linspace(0,50,200), and replacing [t0 tf ] by tspan when you call of ode45. Then compute d(t) = kx2 (t) − x1 (t)k, and plot the natural log of d, ln(d(t)), as function of t. In a certain initial range of t, ln(d(t)) appears to fluctuate about a straight line. The slope of this line provides an 1 estimate for λ. Thus match a straight line to ln(d(t)) in the appropriate time range and determine its slope. Matlab commands which allow easily to match a straight line to a set of point in a plane on the basis of the method of least squares will be introduced in class. (c) Create a numerical solution of (1) over a sufficiently large time range, and extract the maxima of z(t) after the transients have died out. You obtain a long sequence of data points z1 , z2 , z3 , . . .. Plot all pairs (zi , zi+1 ) as points in a plane. Your plot should indicate that these points lie on a nice continuous curve with a cusp. The meaning of this curve is that the sequence of successive maxima of z(t) is governed by iteration of a map, called the Lorenz map. Create this map by interpolating the data points. Linear interpolation works best here – you may check what comes out if you use a spline interpolation. (d) Having created the Lorenz map, the dynamics can now be described by iteration. Choose an initial condition z0 and display the iterates in the usual way as cobweb diagram and time plot. For comparison with the original system, you may generate again a solution of (1), let transients die out, and extract the maxima of z(t). Then use one of these maxima as initial point for the Lorenz map and compare the iterates with the subsequent maxima of z(t). (e) Proceed as in (b) to estimate the Liapunov exponent of the Lorenz map. That is, match a straight line to ln(dt ), where dt = |zt − zt0 | is the difference of two sequences of iterates computed for nearby initial conditions z0 , z00 . Compare the result to the number obtained in (b). (f ) Consider the Mackey Glass equation, dc(t) λam c(t − T ) = m − gc(t). dt a + cm (t − T ) (2) For λ = T = 2, a = g = 1, m = 11 the solutions are chaotic and show irregular oscillations. Thus it is tempting to try the same as for the Lorenz system. Check whether you also find a nice curve when successive maxima of c(t) are plotted. For the initial condition you may simply choose a constant. 2. Liapunov Exponents, Chaos and Noise Consider the logistic map xt+1 = rxt (1 − xt ). (a) Create a bifurcation diagram when r varies from 2.7 to 4. A reasonable value for the increment ∆r of r is ∆r = .05. For each value of r iterate long enough (say 500 iterations) until the transients have died out. Then plot the next, say 200 iterates. (b) (See Review: Section I.2.) Compute and plot the Liapunov exponent λ as function of r. Use the same increment as in (a). Here you have to compute more points, say n = 10, 000, after the transients have died out. The Liapunov exponent is approximated 2 by n 1X ln |f 0 (xt , r)|, λ= n t=1 where f 0 (x, r) = r − 2rx. In the computation you only need to store the current value of xt and λt , not all the previous iterates. Just update the value of λ at each iteration according to 1 λt+1 = (tλt + ln |f 0 (xt+1 , r)|). t+1 Warning: At superstable cycles (xt = 1/2 for some iterate t), λ = −∞ because f 0 (xt , r) = 0. You need to give this fact special consideration. (c) Do the same as in (a),(b) for the noisy logistic map xt+1 = rxt (1 − xt ) + ηt . Here ηt is chosen randomly from an interval −ηmax ≤ η ≤ ηmax . The bound ηmax is the noise level. Investigate what happens to λ(r) and the bifurcation diagram if the noise level increases. You may start with, say ηmax = 10−3 . Describe your observations. Specifically address the question from which noise level on you no longer can identify sharp bifurcations as in the noiseless case. 3. Challenging Problem: Computing Feigenbaum’s Function and Feigenbaum Numbers (Review: Section II) (a) Compute numerical approximations of the solution (a, g(x)) of Feigenbaum’s renormalization equation g(x) = −ag(g(−x/a)), and of the largest eigenvalue δ (δ > 4) of the associated linear eigenvalue problem −ag 0 (g(−x/a))h(−x/a) − ah(g(−x/a)) = δh(x), as described in the Review: Sections II.4–5. a, δ should be accurate up to 10 digits. Question to the math grads: Inspection of the other eigenvalues of the linearized operator indicates that there is an eigenvalue 1. Can you explain the presence of this eigenvalue? (b) Graph some iterates g n (x) of the solution g(x) found in (a) in the interval −1 ≤ x ≤ 1. You should observe that the iterates become very flat around x = 0 when n increases. (c) Use equation (13) to approximate the value r∞ of r for which the period doubling sequence of the logistic map accumulates. You need two starting values for rn . The first 5 period doublings occur at r1 = 3, r2 = 3.449, r3 = 3.54409, r4 = 3.5644, r5 = 3.568759. If you want to be more accurate, compute rn up to, say n = 8 (the computation becomes very delicate for larger n). 3 REVIEW I. Liapunov Exponents I.1 Qualitative Description Let x, y, . . . be phase space points (vectors) of a discrete or continuous dynamical system and let t be time (integers in the discrete case). A basic property of chaotic systems is the inherent unpredictability. That is, given two different initial conditions x0 , y0 with associated orbits (solutions) x(t), y(t), the distance d(t) = kx(t) − y(t)k will eventually reach finite values, no matter how small the initial distance d0 = kx0 − y0 k is. This implies unpredictability, because it is never possible to fix an initial condition exactly (we cannot control infinitely many digits). The evolution of d(t) towards finite values is called “divergence of nearby trajectories”. The degree of divergence can be made quantitative by the largest1 Liapunov exponent, commonly denoted by λ, as d(t) ≈ d0 eλt . (3) If the system is truly chaotic λ is positive, for nonchaotic deterministic systems we have λ ≤ 0. The relation (3) is not a rigorous relation. In practice it holds only on average and over a certain initial time range. For larger values of t there is a saturation due to the finite size of the system. For t in an initial range, d(t) typically fluctuates about d0 exp(λt). Nevertheless, in this range (3) can be used to estimate λ. Taking natural logs of both sides of (3) we find ln d(t) ≈ ln d0 + λt, (4) which defines a straight line with slope λ. Thus, given a set of computed (or measured) values ti and d(ti ), λ can be estimated by matching a straight line to the set of point (ti , ln d(ti )). The slope of this line yields the desired estimate of λ. For Problem 1 you may use this (unsophisticated) approach to estimating Liapunov exponents. The initially linear range is simply found by inspecting the graph of ln d(t) versus t. Number example: In case of the Lorenz map, the linear range extends approximately from t = 2 or 3 to about 20 if d0 ≈ 10−5 . I.2 Definition For One Dimensional Maps To motivate the definition given below, consider first a one dimensional continuous system ẋ = f (x). Assume there is a fixed point x∗ , f (x∗ ) = 0. The linearized ODE about x∗ is obtained by setting x = x∗ + ξ, Taylor expanding f about x∗ , and retaining only the linear term, which results in the linear ODE ξ˙ = λξ (λ ≡ f 0 (x∗ )). 1 In dimensions greater than one there are several Liapunov exponents, but it is only the largest Liapunov exponent that quantifies the distance between nearby trajectories. 4 If λ 6= 0 the behaviour of solutions close to x∗ can be approximated by x(t) ≈ x∗ + ξ(t). Since ξ(t) = ξ0 exp(λt), the distance d(t) = |x(t) − x∗ | ≈ |ξ(t)| evolves as d(t) ≈ d(0)eλt . If λ < 0, x∗ is asymptotically stable and d(t) → 0 for t → ∞. If λ > 0, x∗ is unstable and d(t) is increasing. As long as d(t) is still small, this growth is exponential with exponent λ. Next consider a one dimensional map xt+1 = f (xt ) and assume again there is a fixed point x∗ , x∗ = f (x∗ ). As before we set xt = x∗ + ξt and Taylor expand f (x∗ + ξt ) in the iteration prescription. Retaining only the linear term yields the linearized map ξt+1 = µξt (µ ≡ f 0 (x∗ )). If |µ| = 6 1, the iterates close to x∗ can be approximated by xt ≈ x∗ + ξt . Since ξt = |µ|t ξ0 , the distance dt = |xt − x∗ | evolves as dt ≈ d0 |µ|t . The quantity |µ| is called a multiplier. If |µ| < 1, x∗ is asymptotically stable and dt → 0 for t → ∞. If |µ| > 1, dt is growing. Setting λ = ln |µ| = ln |f 0 (x∗ )|, (5) we can rewrite the evolution of dt as dt ≈ d0 eλt , (6) and quantify the rate of growth or decay by an exponent λ as in the continuous case. Assume now the map has an m–cycle (x∗0 , x∗1 , . . . , x∗m−1 ), x∗1 = f (x∗0 ), x∗2 = f (x∗1 ), . . . , x∗m−1 = f (x∗m−2 ), x∗0 = f (x∗m−1 ). Each point of this cycle is a fixed point of the mth iterate f m (x) of f (f 2 (x) = f (f (x)), f 3 (x) = f (f 2 (x)) etc). The stability of the cycle is determined by the stability of any cycle point viewed as fixed point of f m . Thus we can repeat the above stability consideration with f replaced by f m . If m = 2 we find d 2 ∗ d f (x0 ) = f (f (x∗0 )) = f 0 (f (x∗0 ))f 0 (x∗0 ) = f 0 (x∗1 )f 0 (x∗0 ), dx dx which generalizes to arbitrary m as d m ∗ f (x0 ) = f 0 (x∗m−1 )f 0 (x∗m−2 ) · · · f 0 (x∗1 )f 0 (x∗0 ) ≡ ρ. dx Consider now an initial condition x0 = x∗0 + ξ0 close to x∗0 (|ξ0 | small). Set xt = x∗t + ξt with x∗km+t = x∗t for k ≥ 1, taking the periodic repetition of the cycle into account. Then, ξ1 = f (x0 ) − x∗1 = f (x∗0 + ξ0 ) − f (x∗0 ) ≈ f 0 (x∗0 )ξ0 ξ2 = f (x1 ) − x∗2 = f (x∗1 + ξ1 ) − f (x∗1 ) ≈ f 0 (x∗1 )ξ1 = f 0 (x∗1 )f 0 (x∗0 )ξ0 .. . ξm = f (xm−1 ) − x∗m = f (x∗m−1 + ξm−1 ) − f (x∗m ) ≈ f 0 (x∗m−1 )ξm−1 = ρξ0 . 5 Traversing the cycle k times yields ξkm ≈ ρk ξ0 , and taking absolute values leads to dkm = d0 |ρ|k = d0 µkm (µ ≡ |ρ|1/m ), (7) where dt = |xt −x∗t | ≈ |ξt | as before. Thus ρ is the cumulative multiplier over m iterations, and its mth root can be considered as the average multiplier at a single iteration. On average we may write dt = d0 µt = d0 eλt (λ = ln µ), where again the exponent λ has been associated with the multiplier µ. The explicit formula for λ reads m 1 X λ= ln |f 0 (x∗ )|, (8) m t=1 and can be interpreted as average of the ‘local’ exponents ln |f 0 (x∗i )| associated with each cycle element. The general Liapunov exponent is defined by the extension of this formula to arbitrary orbits (not necessarily cycles). Definition. Let (xt )|0≤t<∞ be a sequence of iterates of a one dimensional map. The Liapunov exponent, λ, associated with (xt ) is defined by T 1X ln |f 0 (xt )|. T →∞ T t=1 λ = lim (9) Because of the average over all iterates, the Liapunov exponent of any orbit is determined by its long time behaviour, i.e. by the attractor the iterates approach for t → ∞. If they approach a fixed point λ is given by (5), if they approach a cycle λ is given by (8). In these cases generically λ ≤ 0: λ = 0 at bifurcations, otherwise λ < 0 with λ = −∞ if the fixed point or cycle is superstable2 . If the iterates approach a chaotic attractor, λ is positive and quantifies the divergence of nearby iterates on the attractor, i.e. the sensitivity to initial conditions. It is important to note that λ is the same for all initial conditions whose iterates approach the chaotic attractor. 2 0 f (x∗ ) = 0 or f 0 (x∗i ) = 0 for one of the cycle elements 6 II. Feigenbaum Function and Feigenbaum Numbers II.1 Doubling Operator and First Feigenbaum Number A key to understanding period doubling sequences such as in the logistic map is provided by the so called doubling operator T . This operator acts on maps as follows. Let f (x) be a map defined on an interval −α ≤ x ≤ α (α > 0 arbitrary). Assume that f (x) has a nondegenerate maximum or minimum at x = 0: f 0 (0) = 0, f 00 (0) 6= 0. Then (T [f ])(x) is the function defined by (T [f ])(x) = −af (f (−x/a)), (10) where a > 1 is a parameter. Note that the r.h.s. of (10) can be written as −af 2 (−x/a) where f 2 is the second iterate of f . Geometrically the doubling operation can be described as follows: (i) The original interval −α ≤ x ≤ α is rescaled to the smaller interval −α/a ≤ x ≤ α/a. (ii) f 2 is evaluated on the smaller interval with inverted signs. (iii) The rescaled interval and the negative of the function resulting from step (ii) are blown up with the inverse scale factor a of step (i). The three steps are illustrated in Figure 1. Let’s explicitely calculate T [f ] for the parabola f (x) = f0 − f1 x2 : (T [f ])(x) = −a{f0 − f1 [f0 − f1 (x/a)2 ]2 } = (−af0 + af1 f02 ) − (2f0 f12 /a)x2 + (f13 /a3 )x4 . Observe that the doubling operation produces a polynomial of degree four from the parabola. When T is iterated, f → T [f ] → T [T [f ]] ≡ T 2 [f ] → T 3 [f ] → · · · , one zooms (and blows up) progressively towards the extreme point at x = 0 and generates higher and higher powers of x. Similarly as in the case of map iterations one can ask for “fixed points” (which are functions) g(x) of T . The condition T [g] = g yields g(x) = −ag(g(−x/a)), (11) which is Feigenbaum’s celebrated renormalization equation, a functional equation for g(x). Assume that g(x) is a solution of (11) and consider the rescaled function gc (x) = g(cx)/c. Applying T to gc yields (T [gc ])(x) = −agc (gc (−x/a)) = −(a/c)g(cg(−cx/a)/c) = (1/c)g(cx) = gc (x) because g satisfies (11). Thus gc (x) is also a solution of (11), i.e. if one solution of (11) is is found we automatically obtain a one parameter family of solutions. This degree of freedom can be used to normalize the solutions of (11). Given a solution with g(0) 6= 1, set c = g(1) and g ∗ (x) = g(cx)/c. Then g ∗ (x) is also a solution satisfying g ∗ (0) = 1. 7 Figure 1: Application of T to f (x) = 1.5(1 − x2 ) − 1 for α = 1, a = 2. This function is symmetric, hence the x–reflection has no effect. Thus w.l.o.g. we can consider (11) as an equation for functions satisfying g 0 (0) = 0 and g(0) = 1. When g is normalized to g(0) = 1, we loose one degree of freedom. This loss of degree of freedom is compensated by the presence of the parameter a in (11) which has been considered arbitrary so far: (11) is not an equation for g(x) alone, but an equation for g(x) and a. Advanced mathematics shows that equation (11), with the restrictions g(0) = 1, g 0 (0) = 0, has a unique solution g(x) and a. Moreover, g(x) is symmetric, g(−x) = g(x). The function g(x) is referred to as Feigenbaum’s function and a is called the first Feigenbaum number. The numerical value for a given by Feigenbaum in 1976 is a = 2.50290785 · · · . II.2 Linearized Doubling Operator and Second Feigenbaum Number The second Feigenbaum number quantifies how a perturbation of g(x) grows under iteration of T . This is similar to the growth of perturbations of an unstable fixed point of a map. If xt+1 = f (xt ) is a higher dimensional map with fixed point x∗ , the growth of ξt = xt − x∗ is, for small kξt k, quantified by the largest eigenvalue of the Jacobian of f evaluated at x∗ . In the case of our doubling operator we have the same situation. Let εh(x) be a perturbation of g(x). The “Jacobian” of T , denoted by L, is a linear operator 8 acting on functions h(x). The result of this operation, denoted by (Lh)(x), is defined by (Lh)(x) = d (T [g + εh])(x)|ε=0 . dε Compute first T [g + εh], (T [g + εh])(x) = −a[g(y) + εh(y)]|y=g(−x/a)+εh(−x/a) = −ag(g(−x/a) + εh(−x/a)) − aεh(g(−x/a) + εh(−x/a)), differentiate this w.r.t. ε and then set ε = 0 to obtain, (Lh)(x) = −ag 0 (g((−x/a))h(−x/a) − ah(g(−x/a)). (12) Given (a, g(x)), the r.h.s of (12) defines a linear operation on h(x), which is the action of the operator L. Similarly such as matrices acting on vectors have eigenvalues and eigenvectors, linear operators acting on functions have eigenvalues and eigenfunctions. It can be shown that L has exactly one eigenvalue δ > 1 with a single, even eigenfunction hδ (x), whereas all other eigenvalues are ≤ 1. The eigenvalue δ is the celebrated second Feigenbaum number. The numerical value given by Feigenbaum is δ = 4.669201609 · · · . II.3 Universality of the Feigenbaum Numbers Similarly such as π is a universal number characteristic of circles, the two Feigenbaum numbers are universal numbers characteristic of period doubling sequences leading to chaos. Given any one dimensional, one parameter family of unimodal3 maps f (x, r) that undergoes an accumulating period doubling sequence, e.g. the logistic map, the scaling relations in the bifurcation diagram are always quantifiable by the Feigenbaum numbers a and δ. The second Feigenbaum number δ characterizes the scalings in the r–direction. Let rn be the value of r at which the nth period doubling occurs, i.e. a 2n cycle bifurcates from a 2n−1 cycle. Then, for sufficiently large n4 , rn+1 − rn ≈ δ. rn+2 − rn+1 (13) The first Feigenbaum number a characterizes the scaling in the x–direction as follows. In the r–range rn < r < rn+1 we find a stable 2n cycle (x1 , x2 , . . . , x2n ). Let µ(r) = f 0 (x1 , r)f 0 (x2 , r) · · · f 0 (x2n , r) be the multiplier of this cycle. It turns out that µ(r) decreases monotonically from µ(r1 ) = 1 (birth of the 2n cycle) to µ(rn+1 ) = −1 (flip bifurcation of the 2n cycle → 3 f (x, r) has exactly one nondegenerate maximum or minimum More precisely, δ is the limit of the ratio on the l.h.s. of (13) when n → ∞, but it often turns out that δ is a good approximation for this ratio already for, say n = 5. 4 9 Figure 2: d1 and d2 for the logistic map birth of the 2n+1 cycle). Between rn and rn+1 there must be a value r = Rn for which µ(Rn ) = 0. Cycles with vanishing multipliers are called superstable . Since µ(r) is the product of the f 0 (xi , r), one of the cycle elements must be at the maximum (or minimum) of f (f 0 = 0). Let dn be the distance of the maximum/minimum from its (2n−1 + 1)st iterate. The quantity dn is a characteristic number for the splitting of the 2n−1 cycle into a 2n cycle. When n varies, the dn alternate in sign (whence the minus signs in the definition of the doubling operator) and tend to zero when n → ∞. Figure 2 shows d1 and d2 for the logistic map (maximum at 1/2). The meaning of a is that the ratio dn /dn+1 approaches −a when n → ∞, i.e. for sufficiently large n, dn ≈ −a. dn+1 (14) Although mathematically the universality of the numbers a, δ has been proven “only” for one dimensional unimodal maps, the relations (13),(14) have been confirmed numerically for many higher dimensional continuous and discrete systems, as well as in a variety of physical experiments. II.4 Numerical Computation of g(x) and a In numerical computations g(x) has to be represented by a finite set of parameters. It turns out that g(x) can be very well approximated by polynomials, thus we can use the coefficients of approximating polynomials as parameters. Since it is known that g(x) is even and g(0) = 1, the polynomials have the form g(x) = 1 + g1 x2 + g2 x4 + . . . gn x2n . (15) The basic idea is to move progressively to higher integers n. As a first approximation we take n = 1, i.e. g(x) = 1 + g1 x2 . Substitute this in (11), 10 expand, and ignore powers of x higher than two. The term on the r.h.s. of (11) becomes −ag(g(−x/a)) = −a[1 + g1 (1 + g1x2 /a2 )2 ] = −(g1 a + a) − 2(g12 /a)x2 + O(x4 ). The last expression with O(x4 ) ignored should coincide with g(x). By equating the constant term (x0 –coefficient) and the x2 –coefficient, this leads to two equations: 1 = −a(1 + g1 ), g1 = −2g12 /a. Substituting g1 = −a/2 from the second equation into the first equation yields a quadratic equation for a. The (positive) solution and the resulting g1 –value are √ a = 1 + 3 = 2.732, g1 = −1.366. (16) It should become apparent that the loss of one degree of freedom due to fixing g(0) = 1 requires to treat a as unknown. Let’s try an expansion of degree 4: g(x) = 1 + g1 x2 + g2 x4 . Substituting this into the equation 0 = g(x) + ag(g(−x/a)), (17) ignoring terms of order six and higher, and setting the coefficients of x0 , x2 and x4 equal to zero results in the following system of three equations: x0 : x2 : x4 : 0 = 1 + a(1 + g1 + g2 ) 0 = g1 [1 + a−1 (2g1 + 4g2 )] 0 = g2 + a−3 (g13 + 6g12 g2 ) + g2 a−3 (2g1 + 4g2 ). The x2 –equation yields 2g1 + 4g2 = −a. Substituting this into the x4 –equation yields 0 = g2 + a−3 (g13 + 6g12 g2 ) − a−2 g2 . This equation is linear in g2 which allows us to express g2 in terms of a and g1 : g2 = g13 /(a − a3 − 6g12 ). (18) Now we are left with two equations, 0 = 1 + a(1 + g1 + g2 ) 0 = a + 2g1 + 4g2 , (19) (20) with g2 considered as function of (a, g1 ) according to (18). The equations (19),(20) have to be solved numerically. As starting values for the numerical search one can use the previously computed values (16) resulting from the n = 1 approximation. After solving for (a, g1 ) we find g2 from (18). The result of this computation is a = 2.534, g1 = −1.522, g2 = 0.128. 11 (21) This procedure can be iterated, stepping progressively to higher values of n in (15). Substituting (15) into (17) yields n + 1 equations for (a, g1 , g2 , . . . , gn ) resulting from comparing coefficients. The first equation is x0 : 0 = 1 + a(1 + g1 + g2 + . . . + gn ), and the second equation reduces after division by g1 to x2 : 0 = a + 2g1 + 4g2 + . . . + 2ngn . The last equation has the form x2n : 0 = gn + a1−2n [A + Bgn + gn (2g1 + 4g2 + . . . + 2ngn )], where A and B depend only on (a, g1 , g2 , . . . , gn−1 ). You may convince yourself that A, B are given as follows. Set y = x2 /a2 and let g̃(y) be the (n − 1)th degree polynomial g̃(y) = 1 + g1 y + g2 y 2 + . . . + gn−1 y n−1 . Then A = coefficient of y n in (g̃(y))2n B = coefficient of y n in g̃([g̃(y)]2 ). Substituting 2g1 + 4g2 + . . . + 2ngn = −a from the x2 – equation into the x2n –equation leaves us then with a linear equation for gn , with solution gn = A/(a − a2n−1 − B). (22) Now, since gn is represented in terms of (a, g1 , . . . , gn−1 ) by virtue of (22), there remain n equations 0 = F1 (a, g1 , . . . , gn−1 ), 0 = F2 (a, g1 , . . . , gn−1 ), . . . , 0 = Fn (a, g1 , . . . , gn−1 ). (23) These equations are to be solved for (a, g1 , g2 , . . . , gn−1 ). As starting value for the numerical search one can use the values of (a, g1 , . . . , gn−1 ) obtained in the previous computation (n replaced by n − 1 in (15)). The coefficient gn is then found from (22). Matlab Implementation. Write a function which receives as input a column vector [gn−1 ; gn−2 ; . . . ; g1 ; a]. The function computes first A, B and then gn according to (22). Then create the values of F1 , F2 , . . . , Fn from g1 , g2 , . . . , gn . When applying the solver (mmfsolve), the function has to be coded to generate as output a column vector whose entries are F1 , . . . , Fn . When the solution has been found, you retrieve in a separate function call the value of gn by inputting the computed values of (a, g1 , . . . , gn−1 ). The two outputs may be distinguished, e.g., by an additional flag in the input arguments. In essence the function has to determine coefficients in compositions and products of polynomials. II.5 Numerical Computation of δ 12 The computation of δ amounts to solving the eigenvalue problem associated with the linear operator L defined in (12). In finite term approximations linear operators become matrices. Thus, if an approximate solution (a, g1 , . . . , gn ) of (17) for a and g(x) has been found, one has to set up the matrix A representing L in the 2nth degree polynomial approximation. Given a polynomial h(x) = h0 + h1 x2 + . . . + hn x2n , operating with L on h(x) yields a polynomial (Lh)(x) = H0 + H1 x2 + . . . + Hn x2n + . . . of degree ≥ 2n. Truncating this polynomial at degree 2n yields the desired image polynomial H(x). The coefficients Hm (0 ≤ m ≤ n) are related to the hm by linear relations H0 = A00 h0 + A01 h1 + . . . + A0n hn H1 = A10 h0 + A11 h1 + . . . + A1n hn .. . Hn = An0 h0 + An1 h1 + . . . + Ann hn The matrix A is the desired matrix representation of L. The matrix elements are nonlinear functions of (a, g1 , . . . , gn ). You need to inspect thoroughly how the Aij are defined, and use this to to write a Matlab function that accepts (a, g1 , . . . , gn ) as input and produces A as output. Once A is generated, the eigenvalues are simply found by applying the eig command of Matlab: D=eig(A), or [V,D]=eig(A) if you are also interested in the eigenvectors (representing “eigenpolynomials”). II.5 Polynomials in Matlab Representation: Polynomials are represented in Matlab by vectors of coefficients. The (n − 1)th degree polynomial P (y) = p(1)y n−1 + p(2)y n−2 + . . . + p(n − 1)y + p(n) corresponds to the row vector p=[p(1),p(2),. . .,p(n)] (column vectors work as well). In front of the highest power coefficient there may be an arbitrary number of zeros; the vector [0,. . . ,0,p] represents the same polynomial. In this representation truncation of polynomials at degree m ≤ n − 1, i.e. Ptrun (y) = p(n − m)y m + . . . + p(n − 1)y + p(n) corresponds to extracting p(end-m:end) or, if it is necessary to retain the length of the vector, to replace the coefficients occuring in front of p(n-m) by zeros. Polynomial Operations: Matlab offers two basic commands for operations on polynomials represented by vectors p. (i) q=polyder(p) returns the vector representing the derivative of the polynomial represented by p. (ii) r=conv(p,q) returns the vector representing the product of the polynomials represented by p and q, with length(r)=length(p)+length(q)-1. 13