
- •Введение
- •1. Метод эйлера решения обыкновенных дифференциальных уравнений и систем уравнений
- •1.1. Постановка задачи. Пример логистического уравнения
- •1.2. Метод Эйлера решения оду и систем оду
- •1.3. Контрольные вопросы
- •1.4. Задания
- •2.4. Построение графика решения
- •2.5. Исследование решения
- •2.5. Контрольные вопросы
- •2.6. Задания
- •3. Исследование модели лотки‑вольтерры
- •3.1. Цель работы
- •3.2. Постановка задачи
- •3.3. Решение системы дифференциальных уравнений с помощью электронных таблиц Excel
- •4.4. Контрольные вопросы
- •4.5. Задания
- •5. Модели клеточных автоматов
- •5.1. Цель работы
- •5.2. Постановка задачи
- •5.3. Построение модели
- •5.4. Проведение эксперимента
- •5.5. Контрольные вопросы
- •5.6. Задания
- •Литература
5.3. Построение модели
ВНИМАНИЕ! Прежде, чем открывать файл примера или создавать собственный файл необходимо разрешить работу с макросами. Для этого в главном меню Сервис/Макрос/Безопасность… необходимо выбрать вкладку Уровень безопасности и выбрать низкий уровень безопасности.
Выделим игровое поле – ячейки B2:F6 (см. рис. 52). Ячейки игрового поля соответствуют клеткам клеточного автомата. Придадим ячейкам игрового поля вид небольших квадратов и построим "жирную" границу игрового поля (выделим ячейки B2:F6 и используем контекстное меню Формат ячеек…/Граница).
В игровом поле записывается текущее состояние клеток в момент времени t (в начале игры записывается начальное состояние в момент ). Если клетка жива, то в ячейку запишем 1, если клетка мертва, то в ячейку запишем 0.
В ячейках H2:L6 будем хранить "потенциал" клеток, вычисленный в соответствии с окрестностью Мура. Потенциал клетки равен числу живых соседей, определяемых согласно принятой окрестности. Для вычисления потенциала в ячейку H2 введем формулу
=СУММ(A1:C3)-B2 (1)
В формуле (1) вычитается содержимое ячейки B2, т. к. в расчете потенциала согласно окрестности Мура учитываются только состояния соседних ячеек. В формуле (1) учитываются состояния ячеек, граничащих с игровым полем B2:F6. Примем эти ячейки мертвыми, т. е. содержащими 0 (могут быть и более сложные условия). Размножим формулу (1) сначала до ячейки L2, а затем вниз, заполнив всю таблицу H2:L6.
Рис. 5.2. Пример игрового поля
В ячейках B10:F14 запишем состояния автомата в следующий момент времени . Для этого в ячейку B10 запишем правило поведения автомата:
=ЕСЛИ(ИЛИ(H2>3;H2<2);0; ЕСЛИ(H2=3;1; ЕСЛИ(H2=2;B2))) (2)
В формуле (2) сначала проверяется условие ИЛИ(H2>3;H2<2). Если H2>3 или H2<2, то в ячейку запишется 0. Это означает, что клетка в момент времени мертва, если в момент потенциал клетки равен 0, 1, 4, 5, 6, 7, 8. Если первое условие (H2>3;H2<2)не выполняется, то выполняется вложенный условный оператор ЕСЛИ. Если во вложенном операторе выполняется условие H2=3, то в следующий момент времени клетка жива. Если условие H2=3 не выполняется, то выполняется второй вложенный условный оператор ЕСЛИ. Если потенциал H2=2 (это условие всегда выполнится, т. к. уже проверены все возможные другие состояния), то в следующий момент времени состояние клетки не меняется (равно состоянию клетки B2). Таким образом, в следующий момент времени клетка жива, если в предыдущий момент в окрестности Мура клетка имеет трех живых соседей. Если в предыдущий момент времени клетка имеет двух живых соседей, то в следующий момент ее состояние не меняется. При других условиях клетка погибает.
Формулу (2) размножим на таблицу B10:F14.
Таким
образом, если в таблице B2:F6
имеется состояние клеточного
автомата в момент
,
то в таблице B10:F14
вычисляется состояние в момент
.
Чтобы вычислить состояние автомата в
момент
,
необходимо скопировать таблицу B10:F14
в таблицу B2:F6.
Повторяя описанные действия,
можно выполнить произвольное число
шагов по времени. Действия по копированию
таблиц удобно записать в виде макроса.
Для создания макроса необходимо в среде
Excel выполнить следующие
действия.
1. В меню "Сервис" выбрать команду "Макрос/Начать запись". Задать имя макроса (в примере задано имя Клеточный автомат, можно оставить имя по умолчанию). Назначить сочетание клавиш, вызывающих макрос, например, CTRL+t. Нажать OK.
2. По шагам выполнить операции копирования значений ячеек B10:F14
Шаг 1. Выделить ячейки B10:F14.
Шаг 2. В меню "Правка" выбрать команду "Копировать".
Шаг 3. Установить курсор в ячейку B2.
Шаг 4. В меню "Правка" выбрать команду "Специальная вставка", в окне специальной вставки отметить "значения" и нажать OK.
3. Остановить запись макроса. Для этого в меню "Сервис" выбрать команду "Макрос/Остановить запись".
Переход к очередному временному шагу происходит после нажатия выбранной при создании макроса комбинации клавиш.