KAM torus and technique to depict high resolution chaotic maps

Posted 5 years ago
5935 Views
|
2 Replies
|
6 Total Likes
|
 Please see video of chaotic map animation here:While showing a few thousand points gives one a feeling about a chaotic map iterations = Compile[{orbit, angle, {n, _Integer}}, Module[{x, y, l, k, cs = Cos[angle], sn = Sin[angle], \[Sigma]}, x = orbit; y = orbit; l = Table[{0., 0.}, {n}]; k = 0; While[k < n && Abs[x] + Abs[y] < 10^3, \[Sigma] = x^2 - y; {x, y} = {x cs + \[Sigma] sn, x sn - \[Sigma] cs}; k++; l[[k]] = {x, y}]; Take[l, k] ], CompilationOptions -> {"ExpressionOptimization" -> True} ] Manipulate[ Graphics[{PointSize[0.002], Point[Flatten[ Table[iterations[x, \[Alpha], Round[10^n]], {x, 0, xm, xm/p}], 1]]}, PlotRange -> 2], {{\[Alpha], 1.3, "angle"}, 0, 2 Pi}, {{xm, 1.5, "max x"}, 0.1, 3}, {{p, 50, "steps"}, 2, 100, 1}, {{n, 2.5, "iterations"}, 1, 4}] often one needs million points to see many of the details.So, instead of showing points directly, we accumulate and bin the points using: toMatrixEntries[l_, dim_] := Module[{L = 1.25}, SparseArray[ Rule @@@ Select[Tally[ Ceiling[dim Transpose[Transpose[l] + L {1, 1}]/(2 L)]], (1 <= Min[#] && Max[#] <= dim) &], {dim, dim}]] makeReliefPlot[mat_] := With[{logmax = Log@Max[mat]}, ReliefPlot[mat, PlotRange -> All, Frame -> False, ColorFunctionScaling -> False, ColorFunction -> (If[# == 0, Gray, ColorData["DarkRainbow"][1. Log[#]/logmax]] &), ImageSize -> 600]] For instance mat = 0; Monitor[Do[ mat = mat + toMatrixEntries[iterations[orbit, 1.34, 10000], 1200], {orbit, -1.25, 1.25, 0.001}];, Row[{"orbit: ", orbit}]] ; rp = makeReliefPlot[mat]; makeReliefPlot[mat] Now doing this for varying angle, we can get the above animation.
2 Replies
Sort By:
Posted 5 years ago
 - Congratulations! This post is now Staff Pick! Thank you for your wonderful contributions. Please, keep them coming!