← Назад Далее →

3.1. Генерация шаблонов разностной схемы

Основой для построения какой-либо разностной схемы второго порядка аппроксимации является четырехузловой шаблон на меташаблоне - матрице 3х3. Исчерпывающее множество таких шаблонов можно построить следующим образом. Снабдим элементы матрицы последовательными индексами 1..9, как показано на рисунке

β1β2β3β4β5β6β7β8β9

и рассмотрим все возможные девятизначные двоичные числа

β1β2β3β4β5β6β7β8β9,

содержащие ровно четыре единицы и пять нулей. Получить весь набор таких чисел можно с помощью любого алгоритма генерации перестановок последовательности 111100000 с отбрасыванием повторных последовательностей. Полное количество перестановок равно числу сочетаний C94=126. Каждой такой перестановке однозначно соответствует матрица 3х3, содержащая 4 единицы и 5 нулей. Будем рассматривать единицы в матрице как узлы схемы. Тогда, например, последовательности 010101010соответствует следующий шаблон:

Рис. 29

В системе Mathematica начальная последовательность строится командой

initial = Table[If[i <= 4, 1, 0], {i, 9}];                  (* начальная последовательность *)
Print[initial];  

Out: {1,1,1,1,0,0,0,0,0}

Функция Permutations возвращает список всех уникальных перестановок:

initial = Table[If[i < = 4, 1, 0], {i, 9}];                  (* начальная последовательность *)
templates = Permutations@initial;                  (* список всех возможных перестановок *)
Print[templates];  

 

Out: {{1,1,1,1,0,0,0,0,0},{1,1,1,0,1,0,0,0,0},{1,1,1,0,0,1,0,0,0},{1,1,1,0,0,0,1,0,0},{1,1,1,0,0,0,0,1,0},
Out: {1,1,1,0,0,0,0,0,1},{1,1,0,1,1,0,0,0,0},{1,1,0,1,0,1,0,0,0},{1,1,0,1,0,0,1,0,0},{1,1,0,1,0,0,0,1,0},
Out: {1,1,0,1,0,0,0,0,1},{1,1,0,0,1,1,0,0,0},{1,1,0,0,1,0,1,0,0},{1,1,0,0,1,0,0,1,0},{1,1,0,0,1,0,0,0,1},
...
Out: {0,0,0,0,1,1,1,0,1},{0,0,0,0,1,1,0,1,1},{0,0,0,0,1,0,1,1,1},{0,0,0,0,0,1,1,1,1}}

Здесь приведено только начало и окончание печати. Полная выдача содержит 126 элементов списка.

← Назад Далее →