漂亮的二维混沌地图
混沌理论已经在广泛的科学领域中被用来解释一些复杂的观察到的行为。在地球物理学中,我的背景是,它可以帮助解释地球磁场的反转。今天我想分享一个混沌系统,叫做姜饼人地图,它的方程让系统看起来很简单。直到你做了一些模拟。
内容
姜饼人地图方程
姜饼人地图的方程看起来很简单。对于空间中的任意一点:,定义序列中的下一个点
.我现在在这个MATLAB代码中显示相同的方程,占一些初始值x0, y0开始计算。
dbtype17:25gingerbreadman
17 18%主计算19对于I = 1:n 20如果I == 1 21 x(I) = 1 - y0 + abs(x0);22 y(i) = x0;23 else 24 x(i) = 1 - y(i-1) + abs(x(i-1));25 y(i) = x(i-1);
阴谋的结果
我想展示几个不同的起始值的结果x0, y0.首先,我将为可重复的结果设置随机数生成器种子。
rng gingerbreadman (42)
![](http://www.ru-cchi.com/blogs/images/loren/299/ginger_01.png)
gingerbreadman
![](http://www.ru-cchi.com/blogs/images/loren/299/ginger_02.png)
gingerbreadman
![](http://www.ru-cchi.com/blogs/images/loren/299/ginger_03.png)
gingerbreadman
![](http://www.ru-cchi.com/blogs/images/loren/299/ginger_04.png)
gingerbreadman
![](http://www.ru-cchi.com/blogs/images/loren/299/ginger_05.png)
代码清单
下面是完整的代码清单gingerbreadman.你可以看到它允许你指定初始条件,以及你选择的返回点和初始条件。如果没有输出参数,gingerbreadman就像你看到的那样。
类型gingerbreadman
function [xout,yout, x0,y0] = gingerbreadman(x0,y0) %产生混沌二维映射的gingerbreadman map。如果没有足够的输入,如果nargin < 2 x0 = randn()则分配随机数;Y0 = randn();迭代计数器n = 10000;X = 0 (n,1);Y = 0 (n,1);%主要计算I = 1:n如果I == 1 x(I) = 1 - y0 + abs(x0);Y (i) = x0;Else x(i) = 1 - y(i-1) + abs(x(i-1));Y (i) = x(i-1); end end % if output is requested, return gingerbread x,y values and % x0, y0 initial conditions % % otherwise plot results if nargout > 0 xout = x; yout = y; else scatter(x, y, '.'); end
参考文献
让情节更漂亮!
而不是使用绘图函数散射,发表你的想法(用代码)在这里来赢取MATLAB的光环。我会从头到尾看一遍(日期:2011年11月27日星期日)2011年12月14日,星期三,然后宣布获胜者(我觉得情节最有趣的那个)。
- 类别:
- 有趣的
评论
如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。