数模国赛备赛(1)元胞自动机CA 生命游戏 森林火灾 传染病模型 MATLAB版资源整理
元胞自动机
常用语句:
UIControl
控件设置
参考:
https://ww2.mathworks.cn/help/matlab/ref/matlab.ui.control.uicontrol-properties.html
image
数组绘图
参考:
https://ww2.mathworks.cn/help/matlab/ref/image.html#d120e549133
set(句柄值,属性名,属性值)、get(句柄值,属性名)
用来更改/获取当前对象的属性值。
e.g:
h=plot(x,y1,x,y2,x,y3);
set(h,{‘LineWidth’},{2;5;8}) %设置线宽分别为2,5,8
drawnow/pause(时间间隔)
更新图窗/延迟
常见模型
生命游戏
棋盘状网格中每个方格中居住着一个细胞,细胞下一时刻的状态取决于相邻八个方格中活细胞的数量:
变化规则:
如果周围有两个活细胞,那么细胞状态不改变。
如果周围有三个活细胞,下一时刻细胞状态为活
否则下一时刻细胞死亡
思路:
1.初始化:设置元胞数目,迭代次数,建立元宝矩阵和辅助扩大矩阵等
2.迭代计算:计算邻居状态,更新元胞矩阵,更新辅助扩大矩阵,绘图、暂停
MATLAB代码
%% 界面控制
startbutton=uicontrol('style','pushbutton','string','start','fontsize',12,'position',[100,400,50,20],'callback','start=1;');
freezebutton=uicontrol('style','pushbutton','string','freeze','fontsize',12,'position',[320,400,50,20],'callback','freeze=1;');
quitebutton=uicontrol('style','pushbutton','string','quit','fontsize',12,'position',[400,400,50,20],'callback','stop=1;close;');
number=uicontrol('style','text','string','1','fontsize',12,'position',[20,400,50,20]);
freeze_at_text=uicontrol('style','text','string','freeze at:','fontsize',12,'position',[180,400,80,20],'callback','start=1;');
freeze_at=uicontrol('style','edit','string','1000','fontsize',12,'position',[250,400,50,20]);
%% 初始化设置n=400;%元胞数目
z=zeros(n,n);
cells=(rand(n,n))<0.6;%初始值随机分布
big_matrix=zeros(n+2,n+2);%增补矩阵
big_matrix(2:end-1,2:end-1)=cells;
imh= image(cat(3,z,z,cells));%建立图像句柄
figure(gcf);
set(gcf,'doublebuffer','on');%双缓冲开启%% 主循环
start=0; stop=0;freeze=0;
while stop==0if findobj==0 %用来监视窗口是否已经被关闭 防止报错break;endif start==1z=zeros(n,n);sum=sum_neighbour(big_matrix);%计算邻居状态和z(cells==1&(sum==2|sum==3))=1;%按规则更新状态z(cells==0&sum==3)=1;big_matrix(2:end-1,2:end-1)=z;%将新状态填充回增补矩阵cells=z;%将状态更新set(imh,'cdata',cat(3,zeros(n,n),zeros(n,n),cells));%画图stepnumber=1+str2double(get(number,'string'));%更新计数set(number,'string',num2str(stepnumber));endif (freeze==1||stepnumber==str2double(get(freeze_at,'string')))%判断是否暂停start=0;freeze=0;enddrawnow%更新绘图
end%% 计算邻居和函数
function [A]=sum_neighbour(B)
%元胞自动机 计算周围邻居的状态和
A=B(1:end-2,1:end-2)+...B(1:end-2,2:end-1)+...B(1:end-2,3:end)+...B(2:end-1,1:end-2)+...B(2:end-1,3:end)+...B(3:end,1:end-2)+...B(3:end,2:end-1)+...B(3:end,3:end);
end
参考
https://blog.csdn.net/ylf12341/article/details/89050030
https://blog.csdn.net/qq_40527086/article/details/86798384
森林火灾&病毒传播
通过生命游戏,对元胞自动机的大致流程应该有了一些基础了。再做森林火灾或者传染病估计基本上就是添添改改的事儿了,这里就不一一写了,贴一些其他博主写好的代码以供参考(犯懒)
参考资料
数学模型关于澳大利亚山火的建模
https://mp.weixin.qq.com/s?__biz=MzI0MDMxMTM0NQ==&mid=2247484533&idx=1&sn=4e1717e8becde11dfc15ac975af85748&source=41#wechat_redirect
代码参考
森林火灾:https://blog.csdn.net/qq_43585318/article/details/104261827
森林林火灾&传染病:https://blog.csdn.net/weixin_42663919/article/details/104383758
传染病模拟:https://blog.csdn.net/qq_43585318/article/details/104261827
除此之外还可以用于城市发展扩张,交通状况模拟,博物馆逃生模拟(美赛19D)等问题
待更
数模国赛备赛(1)元胞自动机CA 生命游戏 森林火灾 传染病模型 MATLAB版资源整理相关推荐
- 元胞自动机CA+生命游戏代码
1.元胞自动机 元胞自动机(Cellular Automaton,复数为Cellular Automata,简称CA,也有人译为细胞自动机.点格自动机.分子自动机或单元自动机).是一时间和空间都离散的 ...
- 元胞自动机 | Matlab实现基于CA元胞自动机的生命游戏模拟
文章目录 效果一览 文章概述 程序设计 参考资料 效果一览 文章概述 元胞自动机 | 基于CA元胞自动机的生命游戏模拟."生命游戏"是一个"元胞自动机",它是一 ...
- 【元胞自动机】基于元胞自动机实现多车道不同间距交通流模型附Matlab源码
1 简介 车辆的行驶受到本车道以及邻近车道前后邻近车辆的影响,在城市交 通中机非混合对车辆行走的影响尤为复杂.通过研究路段上机非混合通行交通流的本质特性,综合考虑非机动车对机动车换道规则及加减速规则的 ...
- 澳洲森林火灾蔓延数学建模,基于元胞自动机模拟多模式下火灾蔓延(附部分源码)
前言 本文篇幅较长,希望各位小伙伴能够耐心看完. 元胞自动机模型可以用来模拟交通流.火灾蔓延情况.高速收费站交通情况,有利于我们更好地改善交通状况,更好地控制火灾蔓延,合理地设置收费站的数量等. 关于 ...
- 【元胞自动机】元胞自动机模拟交通事故道路通行量【含Matlab源码 356期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- 【元胞自动机】基于元胞自动机实现高速公路收费站交通流问题附matlab代码
1 简介 近年来,我国高等级公路发展迅速,截止到2012年底,我国高速公路的通车里程已达到97355公里,比2011年增长14.6%.而我国自1984年以来实行"贷款修路.收费还贷" ...
- 元胞自动机-森林火灾模拟
引入: 元胞自动机,英文名及缩写:cellular automata,CA.最初是由冯诺依曼在二十世纪五十年代为模拟生物自保的自我复制而提出的,但是当时并未受到重视.后来才逐渐发展起来,著名的&quo ...
- 【机器学习】通俗的元胞自动机算法解析和应用
[机器学习]通俗的元胞自动机算法解析和应用 文章目录 1 元胞自动机的定义 2 元胞自动机的组成 3 元胞自动机的特征 4 Python实现元胞自动机(生命游戏) 5 总结 6 Github(华盛顿州 ...
- 真菌元胞自动机Python实现
2021年美赛A题真菌元胞自动机Python实现 import matplotlib.pyplot as plt import random import numpy as np import mat ...
- 元胞自动机与相关理论和方法
元胞自动机与相关理论和方法的发展有着千丝万缕的联系,一方面,元胞自动机的发展得益于相关理论的研究,如逻辑数学.离散数学.计算机中的自动机理论,图灵机思想;另一方面,元胞自动机的发展也促进了一些相关学科 ...
最新文章
- fatal error C1900: Il mismatch between 'P1' version '20060201' and 'P2' version '20050411'
- 你不知道的CDN圈内黑话有哪些?
- 创建订单 - 填充新订单数据
- 前端学习(1935)vue之电商管理系统电商系统之实现权限的默认勾选功能
- 12伏的蓄电池有几个单格组成_蓄电池的结构和识别
- Golang笔记——channel(管道)
- cnpm安装webpack_快速打造最强 Webpack 前端工具链
- 玩转 SpringBoot 2 快速整合 | JSP 篇
- java微信发文字乱码_获取微信用户信息出现乱码
- 输出最长上升子序列 模型(DP)
- 8.2捷联惯导算法仿真 代码整理分析(一)
- 漫画 | 前端发展史的江湖恩怨情仇~
- 使用RNA-seq数据通过网络熵评估肿瘤内异质性
- AARRR模型——变现:终极目标(上)
- mysql的group by语句不会产生_MySQL:为什么查询列表中多了它,GROUP BY语句就会报错呢?...
- Spring3开发实战 之 第二章:IoC/DI开发(2)
- 【懒懒的Python学习笔记九】
- 计算机均价的公式,【转】二手笔记本电脑的价格计算方法和举例
- 华夏幸福转让平安资管5.69%股份,价款合计42.03亿
- 调查问卷生成json字符串
热门文章
- 【算法导论-36】并查集(Disjoint Set)具体解释
- Xilinx XC7Z020双核ARM+FPGA开发板试用合集——硬件赏析
- python3实现base64编码
- Linux Thermal Framework分析及实施
- LTE中SRB---无线资源承载
- 豆瓣8.0高分电影~渣男人格之《剧场》追剧后感
- canvas 画空心圆 实心圆
- android sim卡状态改变广播,android监听SIM状态
- sh_gamit报错:error reading station a priori constrains
- Kaldi特征提取之-FBank