Компьютерное моделирование физических явлений. Малютин В.М - 89 стр.

UptoLike

которому принадлежит эта ячейка, слился с другим кластером.
Поэтому текущему элементу следует присвоить номер правильной
кластерной метки соседа сверху.
- Если и сосед сверху, и сосед слева имеют ненулевые значения, то
все три ячейки принадлежат одному кластеру. Текущему элементу
присваиваем наименьший из номеров правильных кластерных
меток соседа слева и соседа сверху. Корректируем массив
кластерных меток. Для этого в элемент массива ulp,
соответствующий большей из кластерных меток, заносим номер
правильной кластерной метки.
Модель ячеечной перколяции
Ячеечная перколяция (перколяционная модель для случайных участков) задается в виде
квадратной решетки
m на m. Ячейки этой решетки содержат 0 (пустой участок) или 1
(занятый участок).
Каждая ячейка занимается с вероятностью р независимо от состояния соседних ячеек.
Кластер определяется как группа занятых ячеек решетки, связанных с ближайшим соседом
по стороне ячейки(nn-ые участки выше, ниже, слева или справа от участка).
Алгоритм
1. Для каждой ячейки решетки разыгрывается случайное число a = Random[].
2. Если a < = p, его значение в ячейку записывается 1; в противном случае - 0.
Это можно записать в одну строку программного кода:
SitePercolation[p_,m_Integer]:=Table[Floor[1+p-Random[]],{m},{m}]
Типичный запуск программы:
SeedRandom[2]
r=SitePercolation[0.35,50]
{{1,0,0,0,0,1,0,1,0},{0,1,1,0,0,0,0,0,1},{1,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,1,0,1},{0,0,0,0,1,0,1,1,1},{0,1,1,0,0,0,0,1,1},
{0,0,0,0,1,1,1,1,0},{0,1,0,0,0,0,0,1,1},{0,0,1,0,1,0,1,0,0}}
Полезно посмотреть на r в форме таблицы.
TableForm[r]
10000
1
0
1
0
011000001
100000000
010000101
000010111
011000011
000011110
010000011
001010100
По таблице мы можем выбрать кластеры (связанные ячейки, отличныеот нуля). Эти
кластеры удобно рассматривать в графическом виде.
89