ВУЗ:
Составители:
ngbrsEastOfEvenSites= RotateLeft[oddSites, 1]
{3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 1}
ngbrsSouthOfEvenSites = RotateLeft[oddSites , (5+ 1)/2]
{7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 1, 3, 5}
Эти линейные списки используются. чтобы выполнить процесс модернизации следующим
образом:
Обновление нечетных участков выполняется с использованием
newOdd = update[oldOdd,
RotateLeft[oldEven, (- 5 - 1)/2],
RotateLeft[oldEven, -1],
RotateLeft[oldEven, 0],
RotateLeft[oldEven, (5 - 1)/2]
где oldOdd и oldEven необновленные нечетные и четные подрешетки.
Обновление четно пронумерованных участков выполняется с использованием
newEven = update[oldEven,
RotateLeft[newOdd, (- n + 1)/2],
RotateLeft[newOdd, 0],
RotateLeft[newOdd, 1],
RotateLeft[newOdd, (n + 1)/2]]
где oldEven необновленная четная подрешетка и newOdd - обновленная нечетная
подрешетка.
Эти два этапа могут быть собраны в отдельную функцию, которая возвращает список новых
обновленных подрешеток.
3. Процедура обновления повторяется, используя полученную пару, состоящую из
подрешеток.
NestList[spinFlip, subLatOdd, subLatEven, m]
4. На этапе 3 мы не беспокоились о восстановлении решетки на каждом шаге из
составляющих ее подрешеток. Чтобы сделать это (для того, например, чтобы затем
построить график решетки), соединим подрешетки.
Map[Partition[Flatten[Transpose[#]], n]&,
NestList[spinFlip, subLatOdd, subLatEven, m]]
Теперь мы поместим весь вышеприведенный код в программу:
IsingCA[n_?OddQ, m_] :=
Module[lat, subLatOdd, subLatEven, update, spinFlip,
lat = Table[2 Random[Integer] - 1,n+1,n];
subLatOdd = Flatten[Partition[Flatten[lat],1,2]];
subLatEven = Flatten[Partition[Rest[Flatten[lat]],1,2]];
update[x_, -1, -1, 1, 1] := -x;
update[x_, -1, 1, -1, 1] := -x;
update[x_, -1, 1, 1, -1] := -x;
update[x_, 1, -1, -1, 1] := -x;
update[x_, 1, -1, 1, -1] := -x;
update[x_, 1, 1, -1, -1] := -x;
update[x_, _, _, _, _] := x;
Attributes[update] = Listable;
spinFlip[oldOdd_, oldEven_] :=
Module[newOdd, newEven,
newOdd = update[oldOdd,
144
Страницы
- « первая
- ‹ предыдущая
- …
- 142
- 143
- 144
- 145
- 146
- …
- следующая ›
- последняя »