feirfei 发表于 2008-8-13 09:58

请教大家一个很简单的元胞自动机程序

元胞自动机程序状态演化规则 ①如果一个元胞的状态是0,则当它有状态为1的邻元时,该元胞的状态以概率a×b变为1,并且当它的临域中状态为1的邻元越多,其状态转变为1的概率越大;②如果一个元胞的状态是1,则该元胞的状态保持不变。初始传播者位于中心单元格25×25处
取50×50的网格,临域为Moore型,经过50个仿真时钟,知识传播结果的模拟图见附件
请教大家 此元胞自动机的程序怎么写。 多谢大家了感激不尽

[ 本帖最后由 ChaChing 于 2009-11-16 20:34 编辑 ]

express 发表于 2008-8-15 11:19

曾经用Fortran写过类似的程序

[ 本帖最后由 无水1324 于 2008-8-16 22:16 编辑 ]

feirfei 发表于 2008-8-21 08:36

回复 沙发 express 的帖子

谢谢你我想请教一下用matlab 怎么写多谢了

kettyx 发表于 2008-8-24 19:22

matlab的demo就有一个很经典的生命游戏life.m。你在命令框里输入life即可运行。都是元胞自动机,原理都差不了多少。只不过改改规则而已。

按照你的说法编了几行代码.。概率随意设的。
%% 初始化
m = 50; X = zeros(m,m); X(25,25) = 1;
   n = ;   e = ;
   s = ;   w = ;
% 绘制初始图形
    = find(X); figure(gcf);
   plothandle = plot(i,j,'.', 'Color','blue','MarkerSize',12);
   axis();
%% 演化
   for k = 1:50
    N = X(n,:) + X(s,:) + X(:,e) + X(:,w) + X(n,e) + X(n,w) + X(s,e) + X(s,w);    %邻居数
    RAND = rand(m);    %概率阵
    X = X | (N.*RAND>0.99);    %换代
    = find(X); set(plothandle,'xdata',i,'ydata',j);    %绘图
    drawnow; pause(0.2); k
   end


[ 本帖最后由 ChaChing 于 2010-6-25 23:55 编辑 ]

feirfei 发表于 2008-8-28 00:23

回复 地板 kettyx 的帖子

太太感谢你了,好厉害啊你

再请问一下 你提到的   “ matlab的demo就有一个很经典的生命游戏life.m” ,我怎么找不到,我是6.5版本,我的matlab文件里只有一个"demos" 文件夹,里面是些网页,没有程序。但在命令框里输入life可运行,请问在哪里呢

[ 本帖最后由 ChaChing 于 2009-12-26 23:39 编辑 ]

sigma665 发表于 2008-8-28 08:59

回复 feirfei 的帖子

看原代码,输入edit life

[ 本帖最后由 ChaChing 于 2009-12-26 23:41 编辑 ]

feirfei 发表于 2008-8-28 11:41

多谢sigma665! 已经帮了我好几次了,非常感谢你

对 地板 kettyx 的帮助,深表感谢,但我还是不知道怎么修改才能达到附件里的四个图的效果,如a 、b 取不同的值效果不一样;还有怎么出现图中的那些元胞的方格,我用 grid on 试过,但好像跟图中不一样

请大家帮帮我,感谢大家了

[ 本帖最后由 ChaChing 于 2009-12-26 23:42 编辑 ]

kettyx 发表于 2008-8-28 17:07

演化概率不一样得到的图不一样。演化概率的设计也算是元胞自动机应用的重要部分了,取决于具体的情况。
就像密码一样。猜不到。:@)

[ 本帖最后由 ChaChing 于 2009-12-26 23:43 编辑 ]

feirfei 发表于 2008-8-28 19:35

回复 10楼 kettyx 的帖子

非常感谢你的回复! 再请教一下 怎么出现图中的那些元胞的方格,我用 grid on 试过,但好像跟图中不一样 ! 还有 概率也是可以设的吧, 如你这个是随机的, (N.*RAND>0.99);但附件中好像是每次取固定的值,如 a=0.2,b=0.3 ; 怎么换成固定的呢,好像表达的也不是很清楚

kettyx 发表于 2008-8-29 16:14

我这个 变化概率 是 rand()>0.99 ,这个概率应该不是变化的吧。

【以概率a×b变为1】,怎么用rand描述,楼主去研究研究吧。
哈,不好意思,我刚才试了一下pcolor不成功。

[ 本帖最后由 kettyx 于 2008-8-29 16:21 编辑 ]

feirfei 发表于 2008-8-29 23:53

回复 12楼 kettyx 的帖子

多谢你 ! 非常感谢

skywm 发表于 2008-11-6 23:11

请问楼主,附件中的四个图是从哪篇文章得来的,我非常感兴趣,多谢!

yzsldj 发表于 2009-2-22 15:04

四个图是不是火灾的演化?

ws2007 发表于 2009-3-17 23:15

matlab网格

我也想知道附件中的matlab网格是怎么实现的?我试了很多办法都不行,请大家回复

feiyuesheng 发表于 2009-5-30 09:49

imshow 函数
页: [1] 2
查看完整版本: 请教大家一个很简单的元胞自动机程序