Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерное моделирование физических явлений. Учебное пособие
.pdf
мя, за которое вакансия достигает поверхности металла, находящейся на
расстоянии r, а также получить распределение вероятностей для времени прохода.
4.2.5.Диффузиячастицыврешеточномгазе
Хотя во всех вышеприведенных примерах фигурируют случайные
блуждания на решетке, хранить координаты узлов решетки или путь
пешехода в процессе моделирования на компьютере не было необходимости. В следующем примере мы рассмотрим модель случайного блуждания, в которой требуется хранить координаты решетки, образованной
газом частиц (коллективом пешеходов).
Рассмотрим случай ненулевой концентрации с случайных частиц
на квадратной решетке. Каждая частица перемещается случайным образом в ближайший свободный узел, и попадание двух частиц в один узел
исключено, иначе говоря, частицы не взаимодействуют. Такая модель
является примером
решеточного газа. Заметим, что движение отдель-
ной частицы коррелированно с движением других частиц. Физическое
обоснование этой модели возникает в физике металлов, где диффузия
обусловлена температурными вакансиями, концентрация которых зависит от температуры. Основной рассматриваемой физической величиной
является коэффициент самодиффузии D отдельной меченой частицы.
Алгоритм Монте-Карло для вычисления D можно сформулировать следующим образом.
1. Распределить частицы с концентрацией с случайным образом по
узлам решетки. При этом 0 < с 1. Пометить каждую частицу (т. е. сделать ее непохожей на другие) и запомнить ее начальное положение в
массиве.
2. На каждом шаге случайным образом выбрать частицу и один из
соседних с ней узлов. Если соседний узел не занят, то частица переходит в
него; в противном случае она сохраняет свое текущее положение.
В этом случае «время» измеряется в произвольных единицах. Принятая единица времени, которой удобно пользоваться, соответствует
одному шагу метода Монте-Карло на частицу. За один шаг метода
Монте-Карло каждая частица совершает в среднем один переход. Коэф-
фициент диффузии D получается предельным п
ереходом t функции
D(t), где D(t) определяется выражением
)( tR
где <
R(t)
2
> – полное среднеквадратичное смещение, приходящееся на
tD , (4.13)
1
dt
2
2
)(
одну меченую частицу за время t.
61

Реализовав такую модель, можно вычислить величину D на квадратной решетке для различных значений c. Хотя D определяется как
предел при t
выражения (4.13), на практике D(t) флуктуирует со
временем и путем увеличения t точность не повышается. Лучшую статистику для D можно получить, усредняя D по как можно большему
числу меченых частиц и, следовательно, рассматривая решетку как
можно большего размера L. Отклонение D(t) от точного значения обратно пропорционально квадратному корню из числа частиц, по которым прои
зводится усреднение в (4.13). D является монотонно убываю-
щей функцией концентрации с.
■Программадвумерногослучайногоблуждания
Модель случайного блуждания в многомерных пространствах более
сложна,чемводномерномпространстве.Водномерномпространствекаж‐
дый шаг блуждания соответствует либо 0градусов(шаг вперед),либо180
градусов(шагназад).Вмногомерныхпространствахшагможетиметьцелый
диапазоннаправлений.
Рассмотримслучайноеблужданиенаквадратнойрешеткевдвумерном
пространстве(тетрадьвклетку).Этоблужданиесостоитизшаговодинаковой
длины,случайновзятыхсодинаковойвероятностьювсеверном,восточном,
южном и западном направлениях. Список возможных случаев для шага в
этомблужданииследующий:{{0,1},{1,0},{0,‐1},{‐1,0}}.
Создадимсписокnвозможныхшагов:
{{0,1},{1,0},{0,-1},{-1,0}}[[Table[Random[Integer, {1, 4}], {n}] ]]
По аналогии с расчетом одномерного блуждания определите процедуру
Walk2D,результатомкоторойбудетсписокместоположенийприблуждании,
n–шагблужданиярешетки,которыйначинаетсявначалекоординат:
Walk2D[n_] := FoldList[Plus, {0, 0},
{{0,1},{1,0},{0,-1},{-1,0}}[[Table[Random[Integer, {1, 4}], {n}]]]]
Выполним
Walk2D[30]
иполучимодинизвариантовкоординатнашегоблуждания:
{{0, 0}, {–1, 0}, {–1, 1}, {0, 1}, {0, 2}, {–1, 2}, {0, 2}, {0, 1}, {–1, 1}, {–1, 2}, {0, 2}}
Мыможемполучитьснимокблуждания,используяграфическуювстроенную
функцию Line,котораяпрорисовываетлиниюмеждусоседнимиточками
блуждания:
ShowWalk2D[coords_, opts___]:=Show[Graphics[Line[coords],
opts, AspectRatio -> Automatic]]
Дляn=4000:
ShowWalk2D[ Walk2D[4000] ]
прорисует,например:
62

■ Программаn‐мерногослучайногоблуждания
Используятакоесредствоматематики,каканонимнаяфункция,можно
записатьслучайноеблужданиевn‐мерномтакимобразом:
WalkND[n_,d_] := NestList[(#+(-1)^Table[Random[Integer],{d}])&,
Table[0,{d}],n]
Длятрехмерногослучайногоблужданияиз3000шаговпостроимгра‐
фик:
Show[Graphics3D[Line[WalkND[3000,3]]]]
4.3.Случайныеблужданиябезсамопересечений
Модели случайного блуждания без самопересечений (ББС) играют
очень важную роль в области физики полимеров, где ББС представляет
длинную цепочку – молекулу, состоящую из многих маленьких молекул, связанных вместе в соответствии c ковалентными химическими
связями. Самое первое исследование (1934) конфигураций полимеров
было проведено с использованием моделей случайных блужданий. На
протяжении последних десятилетий изучение статистических свойств
длинных гибких полимерных цепочек и моделей случайных блужданий
развивалось параллельно. Другие примеры применения модели ББС:
поведение ферромагнетиков, различные модели Изинга и некоторые
критические явления.
63

Полимер состоит из очень большого числа N (N ~ 103…105) повторяющихся звеньев, или мономеров. Например, повторяющиеся звенья
цепочки полиэтилена можно изобразить как ... –СН2–СН2–СН2– ... . Зна-
ние детальной структуры полимера важно для многих практических
приложений. Если, например, мы хотим усовершенствовать производство резины, то нужно хорошо разбираться в свойствах локальных движений цепочек каучука. Однако если нас интересуют глобальные свойства полимера, то детали строения цепочки можно не принимать во
внимание.
Рассмотрим известный пример о кусочке спагетти, помещенном в
теплую воду. Через короткий промежуток времени спагетти становится
гибким и ведет себя подобно полимерной цепочке в хорошем растворителе, т. е. спагетти как не сворачивается в маленький комок, так и не
вытягивается полностью. Скорее, кусочек приобретает случайную
структуру, как схематично показано на рис. 4.6.
Рис 4.6. Схематическое представление
линейного полимера, помещенного в хороший
растворитель (а); пример соответствующего
блуждания на квадратной решетке (б)
В этом случае спагетти ведет себя как слабый раствор полимерных
цепочек в хорошем растворителе. Разбавленность раствора означает,
что можно не принимать во внимание запутывание цепочек и рассматривать каждую цепочку отдельно. Наличие «хорошего» растворителя
означает, что полимеры могут свободно двигаться и, следовательно,
принимать всевозможные конфигурации. Одной из фундаментальных
геометрических характеристик, которую можно использовать для описания полимера, является среднеквадратичное расстояние между концами цепочки RN, где RN определяется формулой (4.10) и N – количество
мономеров. Известно, что для слабого раствора полимерных цепочек в
хорошем растворителе асимптотическая зависимость RN выражается
формулой (4.11) с показателем степени ~ 3/5 для всех гибких цепочек.
Для двумерного случая известен точный результат = 3/4. Множитель а
в выражении (4.11) определяется структурой мономеров и самим растворителем.
64

Обсудим модель случайного блуждания, которая описывает глобальные свойства линейных полимеров в растворе. Идеализация заключается в размещении полимерной цепочки на решетке (рис. 4.6, б). Известно, что если пренебречь взаимодействием мономеров между собой,
то независимо от размерности и структуры решетки получается цепочка
с = 1/2. Поскольку этот результат для не соответствует экспериментальным данным, необходимо рассмотреть более реалистичную модель
цепочки, в которой учитывается самое важное физическое свойство любого полимера: два мономера не могут находиться в одном месте пространства. Данное ограничение, известное как условие «исключенного
объема», означает, что само блуждание невозможно адекватно описать с
помощью только модели случайного блуждания. Стандартная решеточная модель гибкой полимерной цепочки будет являться блужданием без
самопересечений. Расчет характеристик ББС – трудная задача, и вычисления на компьютере комбинаторным методом и методом Монте-Карло
сыграли важную роль в получении современных представлений об этих
явлениях.
Опишем простейший алгоритм моделирования ББС на квадратной
решетке методом Монте-Карло. Удобно представить решетку в виде
двумерного массива; этот массив используется для записи узлов, которые посещались. Выберем произвольный узел в качестве начального и
предположим, что первый шаг делается на «север», поскольку блуждания, порождаемые тремя другими возможными начальными шагами,
различаются только направлением. Заметим, что второй шаг можно
сделать в трех возможных направлениях. Для получения несмещенных
результатов генерируется случайное число (1, 2 или 3), которое и определяет выбор одного из трех направлений движения. Последующие шаги генерируются аналогичным образом. К сожалению, обычно при таком способе моделирования блуждание не продолжается бесконечно.
Рассмотрим (N = 3)-шаговое блуждание, показанное на рис. 4.7, а.
Для получения несмещенных результатов нам нужно, как обычно,
сгенерировать случайное число (1, 2, 3). Следующий шаг, показанный
на рисунке 4.7, а, приводит к самопересечению и тем самым нарушает
принятое ограничение. Может сложиться и ситуация, как на рис. 4.7, б.
Если следующий шаг приводит к самопересечению, то блуждание прекращается и начинается новое блуждание из начальной точки.
Рис.4.7. Примеры блужданий без самопересечений
на квадратной решетке: а – запрещенное (N = 4)-шаговое
блуждание; б – такое (N = 8)-шаговое блуждание, кото-
рое приводит к самопересечению
65

Недостатком приведенного выше метода моделирования является
R
его неэффективность для длинных цепочек, т. к. доля успешных попыток уменьшается экспоненциально с увеличением задаваемой длины
цепочки. Для преодоления этого недостатка было предложено несколько «улучшений» метода.
Одним из наиболее эффективных улучшений метода является метод
рептаций (от лат. reptatio – ползающий, пресмыкающийся). Для просто-
ты рассмотрим модель полимерной цепочки, у которой все углы связи
равны 90°. В качестве примера такой модели на рис. 4.8 показаны пять
(N = 5)-звенных независимых полимерных цепочек (другие цепочки совпадают с приведенными с точностью до преобразований поворота или
отражения). Метод рептаций можно кратко описать следующим образом:
1. Случайным образом выбираем цепочку и удаляем хвостовое
звено.
2. Пробуем добавить звено в начало цепочки. Возможно не более
двух направлений присоединения нового головного звена.
3. Если добавление нового звена приводит к нарушению условия
самонепересечения, возвращаемся к исходной цепочке и меняем местами
голову и хвост. Включаем эту цепочку в статистическую выборку.
Для получения статистического среднего
2
приведенные выше
N
шаги повторяем много раз.
Рис. 4.8. Пять независимых возможных блужданий из N = 5 шагов
на квадратной решетке с углами связи /2; голова и хвост каждого
блуждания обозначаются стрелкой и кружком соответственно
В качестве примера использования метода рептаций предположим,
что мы выбрали цепочку а на рис. 4.8. Новое звено можно добавить в двух
направлениях (рис. 4.9, а), так что в среднем получается
1
2
1
. По
гвa
2
сравнению с этим в цепочке б звено можно добавить только в одном на-
правлении, и получается бдб
1
2
1
, где хвост и голова цепочки б
2
меняются местами (рис. 4.9, б).
66

Рис. 4.9. Допустимые преобразования цепочек а и б; одно из возможных
преобразований цепочки б нарушает условие самонепересечения,
и, таким образом вместо этого меняются местами голова и хвост
Остальные цепочки преобразуются по схемам адв
1
1
и бад
2
гвг
1
2
2
1
. В результате все пять цепочек равноверо-
2
1
2
1
2
ятны, т. е. преобразования, применяемые в методе рептаций, сохраняют
собственные статистические веса цепочек. Существует лишь одна трудность: если не начать с конфигурации, имеющей «тупики» на обоих концах, как, например, показанной на рис. 4.10, то такую конфигурацию мы
никогда не получим, используя описанное выше преобразование. Отсюда
видно, что метод рептаций приводит к небольшому смещению нашей статистической выборки и вычисленное среднее расстояние между концами
цепочки будет получаться немного больше, чем если бы рассматривались
все конфигурации. Однако вероятность таких «тупиковых» конфигураций
очень мала и смещением в большинстве случаев можно пренебречь.
Рис. 4.10. Пример дважды тупиковой конфигурации
для обыкновенного самонепересекающегося блуждания,
которую невозможно получить в методе рептаций
,
■ПрограммаББСнаосновеалгоритмарептаций
Приизученииобщихсвойствслучайногоблужданияисследуетсяnшаго‐
выхблужданий,которыеформируютсяпосредствомдобавленияновогошага
кпредыдущему,поканевыполнитсяnшагов.Этотметодформированияпро‐
стыхблужданий неиспользуетсяпри изучении ББС,потомучто в случаепе‐
ресечения последующим шагом предыдущего приходится прерывать про‐
цесс и начинать строить блуждание заново.Сростомчислаблужданий
67

возможность прерывания процесса растет, следовательно, эффективность
генерированияББСстановитсяоченьнизкой.
АльтернативныйподходкформированиюББСсостоитвтом,чтобысчи‐
татьновыйшагкакББС,т.е.исключитьвозможностьпересеченияшагов.При
такомподходеможноприменитьалгоритмрептаций.
▪Алгоритм
1a.ЗададимнадвумернойрешеткеББСдлинойn(создадимдвумерный
массивизnэлементов,которыйибудетпредставлятьнашуББС).
1б.ВычислимквадратдлиныББСизапишемегозначениев squaredist.
Следующую последовательность шагов необходимо выполнить не‐
сколькораз.Первыйраз– используяначальнуюконфигурациюзаданнуюна
шаге1,адалее–используяконфигурацию, полученнуюнапредыдущихша‐
гах. Опишем последовательность действий спроизвольной конфигурацией,
которуюназовем
config.
2.Случайновыберемшаг‐приращениедлядобавленияк config.
3.Проверяем,непересекаетлиновыйшагкакой‐нибудьизпредыдущих
шагов,кромепервого(т.е.несовпадаетлиположениеновогошагаскаким‐
нибудьдругимшагомв
config). Еслипроизошлопересечение,переписыва‐
емконфигурациюнаоборот,т.е.последнийэлементзаписываемкакпервый
ит.д.Послечегозаписываемновуюконфигурациювпеременную
path. Если
пересечений нет, добавляем новый шаг в качестве последнего элемента
config, удаляемпервыйэлементизаписываемновуюконфигурациюв
path.
4.ВычисляемновуюдлинуББСидобавляемк squaredist.
5.Выполняемпоследовательностьшагов2–4mразсначальнойконфигура‐
ции.
6.ОпределяемсреднеезначениедлиныББС,строимграфики.
▪Реализацияалгоритма
Шаг1a.НачальноеББСзадаетсяспомощьютаблицы.
config = Table[{i, r}, {i, r, r + n}];
Шаг1b.ВычисляемквадратдлиныначальногоББС.
squaredist = n^2
68

Шаг2.Случайнымобразомвыбираемприращениешага идобавляем к
последнемуэлементув
newpt = Last[config] + choice[[Random[Integer, {1, 4}]]];
config, чтобыполучитьновоеположениешага.
Шаг3. newpt сравниваетсяс config, чтобыпроверитьнесовпадаетли
онслюбымшагом
MemberQ[Rest[config], newpt]
config, кромепервогошага:
Если произошло пересечение,то config переписывается задом напе‐
ред,иконечнаяББСконфигурациязаписываетсявconfig2.
config2 = Reverse[config]
Если пересечения нет,топервыйшаг config удаляется, newpt добав‐
ляетсякрезультату,иноваяББСконфигурациязаписываетсяв
config2 = Append[Rest[config], newpt]];
path.
Этитрифрагментаможнообъединитьвусловнуюфункцию:
If[MemberQ[Rest[config], newpt], config2 = Reverse[config],
config2 = Append[Rest[config], newpt]];
Шаг4.ПолучаемновуюконфигурациюББС:
config = config2;
ВычисляемновуюдлинуББСидобавляетсяк squaredist:
squaredist +=
Plus @@ ((First[config] – Last[config])^2);
Можнообъединитьшаги2–4какчастьпрограммы:
snake := (choice = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
newpt = Last[config] + choice[[Random[Integer, {1, 4}]]];
If[MemberQ[Rest[config], newpt], config2 = Reverse[config],
config2 = Append[Rest[config], newpt]]; config = config2; )
Шаг5.Длятого,чтобывыполнитьmшагов,организуемциклспомощью
командыDo:
Do[snake, {m}]
Шаг6.ВычисляемсреднеквадратичнуюдлинуББС:
N[squaredist/(m + 1)]
69

▪Результаты
1
0510152
051
Важнымэлементомпрограммыявляется визуализациявычислительно‐
гоэксперимента.Основнымэлементомкартинкиявляетсямассивsquare–
этот двумерный массив задает поле,покоторомубудет«скользить змея».
Вподпрограмме надо задать ячейки, которые содержат звенья цепи,чтобы
нарисункеихобозначитьдругимцветом.Крометого,необходимокорректно
задатьразмерымассиваsquareиположениемассиваconfigвнем,чтобы
«змейка»не«выскользнула»запределыsquare.
Из вышеприведенных фрагментов можносоставить программу,три
возможныхрезультатакоторойприведеныввидеграфиковдляm=100:
25
25
25
20
15
10
5
0
0 5
0 15 20
20
15
10
5
0
20
15
10
5
0
0
0 15 20
Существует еще один очень эффективный, динамичный алгоритм
для генерирования d-размерного ББС в с заданным числом шагов, который называется алгоритмом центра. Принцип его действия заключается в выборе одной из d-симметричных операций (поворота или отражения) на d-размерной поверхности. Далее ББС делится на две части в
случайной точке, называемой центром, и над второй половинкой производится выбранная ранее операция. Для двумерного пространства дос-
таточно взять только три операции симметрии: вращения на –90, +90
и 180.
На рис 4.11 первая картинка – начальная конфигурация ББС, состоящей из четырех звеньев, а вторая, третья и четвертая картинки – для
конфигураций после поворотов на втором шаге на +90, –90 и 180 соответственно.
Рис. 4.11. Иллюстрация операций для алгоритма центра
Глядя на пример (рис. 4.11), мы можем записать алгоритм для выполнения действия поворота для любой ББС.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
