Основой для построения какой-либо разностной схемы второго порядка аппроксимации является четырехузловой шаблон на меташаблоне - матрице 3х3. Исчерпывающее множество таких шаблонов можно построить следующим образом. Снабдим элементы матрицы последовательными индексами 1..9, как показано на рисунке
и рассмотрим все возможные девятизначные двоичные числа
содержащие ровно четыре единицы и пять нулей. Получить весь набор таких чисел можно с помощью любого алгоритма генерации перестановок последовательности \(111100000\) с отбрасыванием повторных последовательностей. Полное количество перестановок равно числу сочетаний \(C_{9}^{4} =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]; |
Здесь приведено только начало и окончание печати. Полная выдача содержит 126 элементов списка.