Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерное моделирование физических явлений. Учебное пособие
.pdf
Ковер Серпинского, например, строится следующим образом: берется квадрат, делится на девять квадратов, вырезается центральный
квадрат. Затем с каждым из восьми оставшихся квадратов проделывается подобная процедура. И так до бесконечности. В результате вместо
целого квадрата мы получаем ковер со своеобразным симметричным
рисунком.
6.3.Процессыростафракталов
Мы уже упомянули, что многие системы, встречающиеся в природе, имеют фрактальную структуру. Почему фрактальные структуры
встречаются так часто? Как образуются фрактальные структуры? Ниже
мы рассмотрим некоторые простые аккреционные модели, обнаруживающие структуры, которые можно описать на языке фрактальной геометрии и которые проявляют удивительное сходство с объектами,
встречающимися в природе.
6.3.1.МодельЭдена
Оригинальную модель кинетического роста предложил Эден в 1961 г.
для моделирования развития клеточных колоний. Хотя мы установили,
что результирующий кластер является компактным, описание алгоритма роста Эдена иллюстрирует суть моделей роста фракталов, которые
мы будем обсуждать в дальнейшем.
Рис. 6.8. Пример роста кластера на квадратной
решетке в соответствии с моделью Эдена:
числа в ячейках обозначают порядок, в котором эти
ячейки занимались, а ячейки периметра
обозначены буквой р
Поместим начальную («затравочную») ячейку в центр решетки.
Ближайшие к занятым ячейкам свободные соседи образуют их периметр. В простейшей версии модели случайным образом выбирается
ячейка периметра и занимается. Вновь занятая ячейка удаляется из списка ячеек периметра, и в список добавляются новые ячейки периметра.
Данный процесс роста повторяется много раз до тех пор, пока не образуется большой класт
ер, состоящий из занятых ячеек (рис. 6.8). Простейшая модификация заключается в занятии ячеек периметра с вероятностью р = 1,0 до тех пор, пока кластер не достигнет края решетки.
111

Если построить компьютерную модель Эдена для
квадратной решетки, провести
тщательный анализ данных
(рис 6.9), усредненных по многим испытаниям с вычислением числа занятых ячеек M(r),
находящихся в радиусе r (по
Рис. 6.9. Результаты компьютерной
модели Эдена, полученные для тысячи
ячеек (справа) и десяти тысяч ячеек
(слева) в кластере
крайней мере, по двум десяткам значений r) и построить
график зависимости M от r в
двойном логарифмическом мас-
штабе, ан
наклон кривой, определяющий размерность кластеров Эдена d
алогичный представленному на рис. 6.5, то соответствующий
, будет
f
составлять приблизительно 2. Таким образом, мы приходим к выводу,
что размерность кластеров равна размерности решетки, т. е. кластеры
Эдена являются компактными.
6.3.2.Оккупирующаяперколяция
Динамический процесс, называемый оккупирующей перколяцией,
применяется для моделирования структуры поверхности раздела масло–
вода при нагнетании воды в пористые среды. В данном процессе кластер растет по пути наименьшего сопротивления. Рассмотрим решетку
размером 3 × 5, в которой вода («оккупант») в начальный момент времени занимает левый край (рис. 6.10).
Сопротивление оккупации задается случайными числами от 0 до 1,
которые приписываются каждой ячейке решетки и не меняются в течение всего процесса. Ячейки, граничащие с ячейками-оккупантами, составляют периметр. На каждом временном шаге оккупант занимает
ячейку периметра с наименьшим случайным числом и вытесняет масло
(«защитник»).
Опишем алгоритм программы для реализации модели. Изначально
в массиве r(i, j) зап
исаны приписанные ячейкам случайные числа. Если
ячейка с координатами (i, j) занята, то элемент r(i, j) увеличивается на 1.
Если ячейка (i, j) принадлежит периметру, то r(i, j) увеличивается на 2.
Для упорядочения ячеек периметра по величине приписанных им случайных чисел применяются два метода сортировки. Рост оккупирующего кластера продол
жается до тех пор, пока не образуется путь, связывающий левый и правый края решетки. Для уменьшения граничных
эффектов на верхней и нижней границах берутся периодические краевые условия, а все физические величины измеряются в центральной об-
112

ласти размером L × L. Программа рисует занятые («мокрые») ячейки и
вычисляет их относительное количество. Основной рассматриваемой
величиной является P(r)dr – вероятность занятия ячейки, содержащей
случайное число в интервале [r, r + dr].
Рис. 6.10. Пример образования кластера при оккупирующей перколяции:
cостояние решетки при t = 0 показано случайными числами, приданными ячейкам;
черные ячейки заняты оккупантом, который на следующем шаге занимает ячейку
периметра кластера с наименьшим случайным числом
Рис. 6.11. Окупирующие перколяции для 1000 и 5000 ячеек
Модель оккупирующей перколяции, которую мы обсудили, годится для описания вытеснения бесконечно сжимаемой жидкости несжимаемой жидкостью. Чтобы вытесняемую жидкость (масло) трактовать
как несжимаемую, мы вводим механизм поглощения, состоящий в том,
113

что как только масляный кластер становится изолированным, его больше нельзя оккупировать. К сожалению, это правило поглощения сильно
замедляет моделирование, поскольку необходимо после каждого шага
проверять, не произошло ли поглощение. Результаты работы модели
представлены на рис. 6.11.
6.3.3.Диффузиявнеупорядоченныхсредах
Предположим, мы хотим изучить процесс диффузии атома в неупорядоченном твердом теле или проводимость случайной резисторной
цепи, например проводимость металлической сетки со случайно удаленными узлами. Одна из простейших моделей таких явлений предложена де Женом и известна как «муравей в лабиринте». Рассмотрим муравья, который движется случайным образом только по занятым
ячейкам перколяционного кластера. На каждом временном шаге муравей подбрасыв
ает монету с четырьмя возможными исходами (на квадратной решетке). Если результат соответствует переходу в занятую
ячейку, то муравей переползает в нее; в противном случае он остается в
своей ячейке. В обоих случаях время увеличивается на единицу. Предположим, что занятые ячейки перколяционного кластер
а встречаются с
вероятностью р. В момент времени t = 0 мы помещаем муравья случайным образом в кластер и в момент времени t вычисляем квадрат расстояния между его начальным и конечным положениями. Затем повторяем моделирование много раз и получаем среднеквадратичное
смещение муравья. В такой модели изучается среднеквадратичное смещени
е муравья <R
2
> от р и t, а также механизм изменения законов диф-
фузии на фрактальной решетке.
На первый взгляд может показаться удивительным, что случайное
блуждание муравья и проводимость случайной резисторной цепи – родственные задачи. Впервые связь между проводимостью и диффузией установил Эйнштейн. Рассмотрим систему частиц, например, жидкость. Если
следить за движением отдел
ьных частиц в отсутствие внешней силы, то
можно определить их среднеквадратичное смещение и, следовательно, коэффициент самодиффузии D. Далее, если приложить «малую» силу, то
можно измерить среднюю скорость в направлении действия силы и найти
подвижность
Эйнштейну удалось показать, что величины D и
– отношение средней скорости к приложенной силе.
пропорциональны.
Что касается системы заряженных частиц, то можно обобщить
приведенные выше рассуждения и показать, что подвижность пропорциональна электрической проводимости. Приложенной силе можно поставить в соответствие напряженность электрического поля и, значит,
114

напряжение, а средней скорости – силу тока. Отсюда следует, что подвижность пропорциональна проводимости (величина, обратная удельному сопротивлению) частиц. Так как подвижность пропорциональна
также D, делаем вывод, что D и проводимость пропорциональны. Поэтому, с помощью этой связи можно определить зависимость проводимости перколяционного кластера от р.
t = 0 t = 1 t = 2 t = 3
Рис. 6.12. Эволюция функции распределения вероятности W
для трех последовательных моментов времени
(i)
t
Для рассмотрения случайного блуждания на решетке лучше использовать комбинаторный метод, а не обычное моделирования методами Монте-Карло. Суть комбинаторного метода (полного перебора)
состоит в том, что W
t+1
ячейке в момент времени t + 1, – определяется исключительно вероятностями появления муравья в соседних с i-й ячейках в момент времени t.
В программе моделирования запоминается положение занятых ячеек в
каком-нибудь массиве, вводятся два массива для хранения W
для всех ячеек кластера и вычисляется W
W
(i) (рис. 6.12). Зная функцию распределения вероятностей для различ-
t
(i) на основании вероятности
t+1
(i) и Wt(i)
t+1
ных моментов времени, можно рассчитать пространственные средние,
такие как среднеквадратичное смещение.
6.3.4.Агрегациясограничениемдиффузии
Рост многих объектов, встречающихся в природе, происходит путем
случайного присоединения частей. Этот механизм лежит в основе разнообразных естественных явлений, включая кристаллизацию, коллоидное и
полимерное уплотнение, диэлектрический распад, формирование сажи и
снежных хлопьев, образования зигзагов молний и трещин вследствие
геологического сдвига. Трудно себе представить, что все эти явления
объединяет какое-то общее свойство. Одн
ако в последние годы обнаружено множество фактов, указывающих на единство этих процессов. Одна
из простейших моделей, помогающих глубже понять такие процессы, называется агрегацией с ограничением диффузии (АОД). На примере этой
модели можно увидеть, как случайное движение приводит к образованию
красивых самоподобных кластеров. Первый шаг состоит в занятии
115

ячейки с затравочной частицей. Затем из
периметра большой окружности с центром
в затравочной ячейке выпускается частица.
Частица движется случайным образом
(диффундирует) до тех пор, пока либо не
уйдет за пределы окружности, либо не достигнет периметра затравочной ячейки и не
стыкуется с ним. Затем выпускается другая
частица и блуждает до тех пор, по
ка не
достигнет периметра одной из частиц и не
стыкуется с ним. Эта процедура повторяется много (обычно несколько тысяч) раз до
тех пор, пока не образуется большой кластер. Типичный АОД-кластер показан на
рис. 6.13.
Рис. 6.13. Пример
АОД-кластера
из 1000 частиц
Упрощенный алгоритм для исследования АОД может быть следующим. Предположим, что каждая частица начинает движение из случайной ячейки на окружности радиусом 2R
, где R
max
– максимальный
max
радиус кластера, сгенерированного до сих пор. Для упрощения можно
принять условие: если частица удаляется от начала на расстояние 3R
max
то она «исчезает», а на начальной окружности случайным образом помещается новая частица. Начинается процесс с решетки размером L, а
затем рассматривается решетка максимального размера, такого, например, который позволяют возможности компьютера. Можно ограничить
количество частиц так, чтобы внешний радиус кластера не рос слишком
близко к краям решетки.
АОД представляет собой только одну из многих модел
ей, приводящих к самоподобным кластерам. Можно привлечь свое воображение
и разработать собственную модель процесса роста.
Очень часто структуры, возникающие в природе при различных
процессах, имеют форму дендритов. Например, дендриты образуются
при росте кристаллов в определенных условиях. Ветвистую, т. е. дендритную, структуру имеет молния, трещины и разломы ч
асто также напоминают дендриты. Существует несколько моделей, позволяющих
изучать образование дендритов в различных процессах.
Получающиеся в результате работы АОД-модели кластеры имеют
форму дендритов с определенной фрактальной размерностью. Другими
словами, форма, полученная в результате моделирования дендрита,
близка к той, которая возникает при реальных процессах кристаллизации (см. рис. 6.14).
,
116

Рис. 6.14. Реальный кристалл марганцевых соединений на литографическом
известняке, имеющий форму дендрита (справа), и дендрит, полученный
в результате компьютерного моделирования по методу АОД
с фрактальной размерностью 1,71 (слева)
■МодельАОД
Mодель АОД очень легко описать.В любоймомент времени втечение про‐
цессаагрегациинаблюдаемаясистемасостоитизкластерачастициоднойчастицы,
выполняющейслучайноеблуждание.Первоначальнокластерсодержиттолькоодну
затравочную частицу.Росткластераопределенпростейшимиусловиями:частица
стартуетвслучайновыбранномместоположениинапериметрекруга,вцентрекото‐
рогонаходитсязатравочнаячастица,исовершаетслучайноеблуждание;частицаис‐
чезает,еслионаоказываетсявнекругаиприсоединяетсяккластеру,еслиприближа‐
етсякнемувплотную.Этотпроцессповторяетсядотехпор,покакластернедостигнет
заданногоразмера.
▪АлгоритммоделиАОД
Модельбудетработатьнадвумернойквадратнойрешетке.
1. Создается начальный массив (список),называемый occupiedSites, со‐
держащийкоординаты{0,0}.
Следующая последовательность шагов от2до3будетвыполнятьсянеодно‐
кратно(этоуказановшаге4).Сначаладлязатравки occupiedSites изатемдля
последовательнообразующихсяформкластера,которыйбудетразрастатьсяпоме‐
реприлипаниячастицкужеобразованнымформамкластеравпредыдущихциклах.
2a. Определяется узел решетки, который расположен вблизи случайно вы‐
бранногоместоположениянапериметрекруга,т.е.окружности,радиусradкоторой
равен определенной величине sплюс абсолютное значение( модуль)максималь‐
нойкоординаты(можетбытькакпоx,такипоy)вмассиве occupiedSites. По‐
нятно,чтоэта координата будет принадлежать наиболееудаленномуучастку кла‐
стераотцентра–началакоординат.
2б.Выполняетсяслучайноеблужданиепорешетке,начинаясвыбранногоузла
вп.2адотехпор,покалибоместоположениечастицынепревыситзначения(rad+s),
117

либочастицанеокажетсявузлерядомсузлом,которыйужезанятучасткомкла‐
стера.Фиксируютсякоординатыблужданияloc.
3.Еслиузелскоординатамиlocоказываетсярядомсучасткомкластера,
т.е.узлом,которыйужезанят,тоloc добавляется к массиву занятых мест
(ккластеру).
4. Выполняется последовательность шагов от 2до3,покадлина
occupiedSites (занятыхмест)недостигнетзначенияn.
▪РеализацияалгоритмадляпакетаMathematica
Шаг1.Начальныйсписок,содержащийзатравку,запишемкак
occupiedSites = {{0,0}}
Шаг2.Радиусокружности,накоторойслучайнозапускаетсячастица:
rad = Max[Abs[occupiedSites]] + s
Запускичастицпроисходятизслучайновыбранногоместоположениянаокружно‐
сти,котороезадаетсякак
Round[rad {Cos[#], Sin[#]}]&[Random[Real, {0, N[2 Pi]}]]
Каждыйновыйшагблужданиясоздаетсяследующимобразом:
(# + {{1,0},{0,1},{-1,0},{0,-1}}[[Random[Integer, {1, 4}]]])&
здесь#являетсятекущимместоположениемблуждания.
Блужданиепрекращаетсятогда,когдарезультатомнижеследующейфункцииявля‐
етсязначениеTrue:
(Apply[Plus, #^2] > (rad + s)^2 ||
Intersection[occupiedSites,
Map[Function[y, y + #],
{{1,0},{0,1},{-1,0},{0,-1}}]] != {} &)
Примечание: Первое условие для завершенияблуждания состоитв том,чтоесли
частица попала в узел, квадрат расстояния которого от затравки больше чем
(rad + s)^2,тоее блуждание далеене рассматривается. Второеусловиеопре‐
деляетсятемфактом,чточастицаприблизиласьккакому‐нибудь участку кластера
occupiedSites.
Заключительноеместоположение блуждания, котороеназывается loc, определя‐
етсяфункцией FixedPoint,вкоторойиспользуютсяфункции,приведенныевыше.
loc =
FixedPoint[
(# + {{1,0},{0,1},{-1,0},{0,-1}}[[Random[Integer, {1, 4}]]])&,
Round[rad {Cos[#], Sin[#]}]&[Random[Real, {0, N[2 Pi]}]] ,
SameTest -> (Apply[Plus, #2^2] > (rad + s)^2 ||
Intersection[occupiedSites,
Map[Function[y, y + #2],
{{1,0},{0,1},{-1,0},{0,-1}}]] != {} &)]
118

Примечание:Обозначение#2 (предпоследнее значение, сгенерированное в
Mathematica,т.е.ранее,чем#)являетсяпараметромSameTest вloc, потомучто
вSameTest #2указываетнапоследнийэлементсписка.
Шаг3.Проверяемloc стем,чтобывыяснить,закончилосьлиблужданиедалекоот
кластера (вышло за окружность),иеслинет, то добавляем в конец списка
occupiedSites ещеодинэлементскоординатамиloc:
If[Apply[Plus, loc^2] <= (rad +s)^2,
AppendTo[occupiedSites, loc]]
Шаг4.Повторноеисполнениепоследовательностишаговот2до3дотехпор,пока
количествозанятыхузлов(длинаспискаoccupiedSites)непревышаетn.
While[Length[occupiedSites] < n,
rad = (Max[Abs[occupiedSites]] + s);
loc =
FixedPoint[
(# + {{1,0},{0,1},{-1,0},{0,-1}}[[Random[Integer, {1, 4}]]])&,
Round[rad {Cos[#], Sin[#]}]&[Random[Real, {0, N[2 Pi]}]] ,
SameTest -> (Apply[Plus, #2^2] > (rad + s)^2 ||
Intersection[occupiedSites,
Map[Function[y, y + #2],
{{1,0},{0,1},{-1,0},{0,-1}}]] != {}
&)];
If[Apply[Plus, loc^2] <= (rad +s)^2,
AppendTo[occupiedSites, loc]]
]
Используя вышеприведенные фрагменты кода, можно составить программу для
моделирования процесса АОД с помощью процедуры Module[{loc, rad, particleCount = 0,
stepChoices = {{1,0},{0,1},{–1,0},{0,–1}}},…
И если использовать графические функции пакета Mathematica, то можно визуализировать созданный кластер. Например, на рисунке приведен результат для s = 10 и n = 50.
Другой пример использования графики для отображения представлен на рис. 6.13.
19
34567
1
2
12
16 17
26
24
14
8
29
35
44
40
45
484950
39
33
41
27
43
38
42
36
31
34
20
21
22 23
30
25
28
32
47
37
46
9
1011
13
15
18
119

7.КЛЕТОЧНЫЕАВТОМАТЫ
7.1.Особенностимоделейклеточныхавтоматов
В этой главе мы познакомимся с другим классом геометрических
моделей, которые называются клеточными автоматами. Отличительной
особенностью клеточных автоматов является их полная дискретность и,
следовательно, приспособленность к точному моделированию на цифровом компьютере. Большой интерес к ним связан с тем, что они являются универсальной моделью параллельных вычислений, также как
машины Тьюринга являются аналогич
ных вычислений. Кроме того, наш интерес к ним обусловлен главным
образом тем, что многие модели клеточных автоматов являются примерами простых динамических систем, которые дают упорядоченные узоры, возникающие из случайных начальных условий. Можно убедиться в
том, что пространственные узоры многих клеточных автоматов напоминают узоры, наблюдаемые в природных явлениях, таких как коагуляция и рост кристаллов. Одн
ако сейчас мы будем рассматривать клеточные автоматы как интересные компьютерные модели, которые
сохраняют привлекательные возможности для описания физических
систем.
Автоматом называют устройство (или совокупность устройств),
которое без непосредственного участия человека выполняет процессы
приема, преобразования и передачи энергии, материалов или информации в соответствии с за
ложенной в него программой.
В данном случае нас интересуют автоматы, выполняющие дискретное преобразование информации, для которых заданы множества А
входных сигналов, Q внутренних состояний и V выходных сигналов, а
ной моделью для последователь-
также две функции: функция переходов
и функция выходов
(рис. 7.1). Функция переходов определяет, в какое состояние q' (из мно-
жества возможных состояний Q) перейдет автомат, если он находится в
состоянии q и на вход поступил сигнал a
(q, a) = q', а функция выхо-
дов показывает, какой при этом образуется выходной сигнал v (из множества выходных сигналов V):
(q, а) = v. Множество сигналов и состояний дискретны, и кроме того, дискретно множество моментов, в которые
поступают входные сигналы, выдаются выходные сигналы и меняются
состояния. В этом случае число возможных значений аргументов функций переходов и выходов также конечно, и эти функции можно задавать
таблично. Подобные автоматы называются конечными а
120
втоматами.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
