Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Ковер Серпинского, например, строится следующим образом: бе­рется квадрат, делится на девять квадратов, вырезается центральный квадрат. Затем с каждым из восьми оставшихся квадратов проделывает­ся подобная процедура. И так до бесконечности. В результате вместо целого квадрата мы получаем ковер со своеобразным симметричным рисунком.
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
втоматами.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]