第212行: |
第212行: |
| | | |
| 图8中显示的每一个参数<math>\mu</math>所对应的迭代的极限行为。在相同的参数下,我们通过从不同的初始值(共有1000个)开始迭代足够多的次数(T=2000次),记录下这些数据点对应的<math>x(T)</math>值。为了让显示效果更好看,我们对处于相同区域的数据点进行了归并,从而可以用某一点灰度的大小来表示该区域数据点的多少。最后的数学软件代码如下所示: | | 图8中显示的每一个参数<math>\mu</math>所对应的迭代的极限行为。在相同的参数下,我们通过从不同的初始值(共有1000个)开始迭代足够多的次数(T=2000次),记录下这些数据点对应的<math>x(T)</math>值。为了让显示效果更好看,我们对处于相同区域的数据点进行了归并,从而可以用某一点灰度的大小来表示该区域数据点的多少。最后的数学软件代码如下所示: |
− | <syntaxhighlight lang="python">
| + | |
− | interval = 0.001; | + | interval = 0.001; |
− | results = Reverse[Transpose[Table[ | + | results = Reverse[Transpose[Table[ |
| logisticValues = | | logisticValues = |
| Table[Nest[a # (1 - #) &, RandomReal[], 2000], {1000}]; | | Table[Nest[a # (1 - #) &, RandomReal[], 2000], {1000}]; |
第221行: |
第221行: |
| Log[result + 0.001] | | Log[result + 0.001] |
| , {a, 2.9, 4, 0.001}]]]; | | , {a, 2.9, 4, 0.001}]]]; |
− | gradraft = | + | gradraft = |
− | ArrayPlot[70 + 10 results, FrameLabel -> {"x(T)", "\[Mu]"}, | + | ArrayPlot[70 + 10 results, FrameLabel -> {"x(T)", "\[Mu]"}, |
| FrameTicks -> {Table[{i, N[(i - 1)/(Length[results] - 1)]}, {i, | | FrameTicks -> {Table[{i, N[(i - 1)/(Length[results] - 1)]}, {i, |
| 0.1*(Length[results] - 1) + 1, | | 0.1*(Length[results] - 1) + 1, |
第230行: |
第230行: |
| 1]}, {i, (3 - 2.9) (Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>] - 1)/(4 - 2.9) + 1, | | 1]}, {i, (3 - 2.9) (Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>] - 1)/(4 - 2.9) + 1, |
| Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>], (Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>] - 1)/5}]}] | | Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>], (Length[results<nowiki>[[</nowiki>1<nowiki>]]</nowiki>] - 1)/5}]}] |
− | </syntaxhighlight>
| + | |
| 其中1000为初始值的个数,2000为迭代的时间步。interval为区域的划分尺度。 | | 其中1000为初始值的个数,2000为迭代的时间步。interval为区域的划分尺度。 |
| | | |