БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Tarski A. On the calculus of relations // J, Symbolic Logic, 1941, V, 4, P. 73 -89,
2. Tarski A. Some methodological results concerning the calculus of relations // J, Symbolic Logic. 1953. V. 18. P. 188 -189.
3. Бредихин Д. А. О квазитождествах алгебр отношений с диофантовыми операциями // Сиб. мат. журн, 1997. Т. 38. С. 29-41.
4. Бредихин Д. А. Об алгебрах отношений с диофантовыми операциями // Докл. РАН. 1998. Т. 360. С. 594-595.
5. Bôner F., Pôschel F. R. Clones of operations on binary relations // Contributions to general algebras. 1991. V. 7. P. 50-70.
УДК 514.133
Jl. В. Бессонов, Л. Н. Ромакина
ИЗОБРАЖЕНИЕ ПРОСТЫХ КОВРОВ НА ПРОСТОМ 4-КОНТУРЕ ГИПЕРБОЛИЧЕСКОЙ ПЛОСКОСТИ ПОЛОЖИТЕЛЬНОЙ КРИВИЗНЫ
В статье [1] (см. также книгу [2, гл. 4]) в геометрии гиперболической плоскости H положительной кривизны построено особого вида разбиение простого 4-контура, так называемое диссекториалъное разбиение, в результате которого на простом 4-контуре возникают объекты, не имеющие аналогов в классических пространствах постоянной кривизны, в частности, простые ковры. В данной работе предложен способ изображения простых ковров.
Напомним, что с каждым простым 4-контуром плоскости H можно связать его основной инвариант, Д, |Д| G I = (0; 1), равный отношению, в котором точка пересечения противоположных сторон 4-контура делит его ребро, считая от эллиптической вершины. В случае прямого 4-контура |Д| = 1/2.
Параболическую прямую, проходящую через центр простого 4 -контура, называем диссектрисой. Две диссектрисы разбивают простой 4-контур F па две пары конгруэнтных в паре простых 4-контура. Причем основной инвариант Д1 (До) контуров F/, Fj (Fj, Fq) разбиения, гиперболические (эллиптические) диагонали которых принадлежат ги-
F
ным инвариантом Д контур a F:
I Д1 1= a = ( | До | = «о = 1+^ ) , « =1ДI. (1)
Каждый из полученных контуров F,1, Fj2, Fj, Fq разобъем его дис-сектрисами на две пары конгруэнтных в паре простых 4-контуров. Сохраняя логику введенных обозначений, основные инварианты контуров, конгруэнтных в группах (Fqq , FQQ2, Fqq1, FqQ2) (FQY, Fq-2, Fq,1, Fq-2), (FIq1, F/q, Ffo, F/q) (F^1, Fj-j2, F-j2-1, F2-2), обозначим соответственно AQQ, AQ1, A1Q, A11? а их модули - соответственно aQQ, aQ1, a1Q, a,,. Процесс
F
ниченно (см. рисунок).
Второй шаг диссекториального разбиения контура F (о). Разбиение 4-контура F^' ''(б) на шare m + 1
Применяя выражения (1), для всевозможных наборов k-...km из нулей и единиц получим формулы рекурсивного задания модулей ak1...kmь akl...kmQ основных инвариантов Akl...kml, Akl...kmQ простых 4-контуров раз-
биения на шаге m + 1 [1, 2]:
1 + Vaki...k„
aki ...km 1 —
2
aki ...kmQ —
2Vakl...km
1 + Vaki...km
(2)
Рассмотрим ш-й шаг диссекториального разбиения простого 4-контура ^ с основным инвариантом Д, где |Д| = а.
Пару чисел (ш,а), ш Е N а Е I, однозначно определяющую по закону диссекториального разбиения (2) набор чисел акь..кт, назовем простые ковром на контуре Число ш назовем уровней, а число а -инвариантом простого ковра (ш,а).
Каждому значению акь..кт по определенному закону поставим в соответствие цвет, в который окрасим все 2т контуров ^'''к™ с инвариантом Дкь..кт = —ак1..'кт- Полученную на простом 4-контуре фигуру плоскости Н назовем изображением простого ковра (ш,а).
При любом исходном контуре ^ одинаково окрашенными на изображении простого ковра окажутся 2т конгруэнтных контуров ^'''к™ , каждые два из которых либо не имеют общих точек, либо имеют одну общую вершину.
На евклидовой плоскости простые ковры плоскости H можно изобразить схематично разбиениями, например, ромба. Предлагаем следующий алгоритм построения изображения простого ковра. На старте имеем контанту Contur, содержащую начальный 4 - контур. Организуем цикл от 0 до максимального номера внутреннего разбиения. На каждом m-м шаге этого цикла будем получать по 4m простых 4-контуров, образующих диссекториальное разбиение исходного простого 4-контура.
conturs_list = [{'-1': Contur}] for i in range(0, dimension): new_conturs = [] for contur in conturs_list: k, с = contur.popitemO dissect = get_dissect(c) draw_dissect(painter, dissect) new_conturs.extend(get_new_conturs({k: с}, \ [Point(dissect[0].x,dissect[0].y).Point(dissect[1].x,dissect[1].у)Д Point(dissect [2].x,dissect[2].y).Point(dissect[3].x,dissect[3].y)])) conturs_list = new_conturs
После отработки этого алгоритма получим список словарей 4-контуров. Каждый элемент списка - словарь, составленный из 4-контуров соответствующего по номеру шага разбиения. Каждый элемент словаря помечен соответственно нижнему индексу 4-контура. Начальный 4-контур для определенности помечен символом -1.
def get_new_conturs(contur_dict, mid): intersectionPoint = get_intersects(mid) key, contur = contur_dict.popitemO if key == '-1': key = ''
с = [contur [0], mid[0] , contur [1] , mid[l] , \ contur [2] , mid [2], contur[3], mid[3]] conturs = []
conturs.append({'0/oS°/oS' % (str(key), str(l)): \ [c[0], c[l], intersectionPoint, с [7]]})
conturs.append({'0/oS°/oS' % (str(key), str(0)): \ [c[l], с [2], c[3], intersectionPoint]})
conturs.append({'0/oS°/oS' % (str(key), str(l)): \ [intersectionPoint, c[3], с [4] , с [5]]})
conturs.append({'0/oS°/oS' % (str(key), str(0)): \ [c[7], intersectionPoint, с [5] , с [6]]}) return conturs
Для раскраски простого ковра на простом 4-контуре с основным инвариантом А (|Д| = а) по формулам (2) построим набор модулей &ki...fcmJ гДе ki £ {0,1} i = 1, ...,m. Затем вычислим максимальное
и минимальное значения модулей и построим линейное отображение [атош; aTOox] ^ [cmin; cmaj, где c - непрерывно занумерованные оттенки одного цвета. Для определённости выберем зелёный цвет в цветовой модели RGB, при этом отступим на 80 вправо от границы минимальной светимости. Указанное оторбажение в данном случае имеет вид [amin; amax] ^ [80; 255]. Предложенного отступа от наиболее тёмных оттенков зелёного цвета вполне достаточно для того, чтобы близкие по цвету тёмные 4-контуры не сливались при изображении в один чёрный ромб. Формализуем описанный алгоритм.
min_m, max_m = min(modules), max(modules) color_min, color_max=80, 255 for contur in conturs_list: k, с = contur.popitemO path = QPainterPathO path.moveTo(QPoint(c[0].x, c[0].y)) for t in c:
path.lineTo(QPoint(t.x, t.y)) path.lineTo(QPoint(c[0].x, с [0].у)) color = (modules[k] - min_m)/(max_m - min_m)* \ (color_max-color_min) + color_min
qp.fillPath(path, QBrush(QColor().fromRgb(0, color, 0)))
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Ромакина Л. Н. Ковры на простых 4-контурах гиперболической плоскости положительной кривизны // Дискретная математика. 2014. Т. 26, вып. 1. С. 118-132.
2. Ромакина Л. Н. Геометрия гиперболической плоскости положительной кривизны : в 4 ч. Ч. 2 : Преобразования и простые разбиения. Саратов : Изд-во Сарат. ун-та, 2013. 274 с.
УДК 517.984
Н. П. Бондаренко
ХАРАКТЕРИЗАЦИЯ СПЕКТРАЛЬНЫХ ДАННЫХ МАТРИЧНОГО ОПЕРАТОРА ШТУРМА^ЛИУВИЛЛЯ С ПОТЕНЦИАЛОМ ИЗ КЛАССА W1
В данной работе дается характеризация спектральных данных краевой задачи L = L(Q(x),h,H) для матричного уравнения Штурма^ Лиувилля
£У := -У'' + Q(x)Y = AY, x е (0,п), (1)
с краевыми условиями
U(У) := У'(0) - hY(0) = 0, V(У) := У'(п) + НУ(п) = 0.