Алгоритм обобщенной цепной дроби
( Algorithm of the generalizationued continued fraction
Preprint, Inst. Appl. Math., the Russian Academy of Science)

Брюно А.Д.
(A.D.Bruno)

ИПМ им. М.В.Келдыша РАН

Москва, 2004
Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проекты №№ 02-01-01067, 03-01-00027) программы "Современные проблемы теоретической математики" ОМН РАН

Аннотация

Во введении обсуждается история цепной дроби и ее обобщений. В § 1 сравниваются геометрические интерпретации цепной дроби, предложенные Клейном, Вороным и автором, а также определяется выпуклая цепная дробь. В § 2 предлагается алгоритм вычисления выпуклой цепной дроби. В § 3 сравниваются геометрические интерпретации многомерных обобщений цепной дроби, предложенные Клейном, Вороным и автором (препринт 86/2003). В § 4 уточняется алгоритм вычисления обобщения выпуклой цепной дроби, предложенный автором (препринт 10/2004). В § 5 уточняется алгоритм упорядочивания трех точек на плоскости.

Abstract

In Introduction we discuss the history of the continued fraction and of its generalizations. In § 1 we compare the geometric interpretations of the continued fraction given by Klein, by Voronoi and by author, and define the convex continued fraction. In § 2 we propose an algorithm of computation of the convex continued fraction. In § 3 we compare the geometric interpretations of the multidimensional generalizations of the continued fraction given by Klein, by Voronoi and by author (see preprint no. 86/2003). In § 4 we improve an algorithm of computation of a generalization of the covex continued fraction given by the author (preprint no. 10/2004). In § 5 we improve an algorithm for ordering three points on a plane.

E-mail: bruno@keldysh.ru

Введение

Пусть a0 и a1 - натуральные числа. Для нахождения их наибольшего общего делителя используется алгоритм Евклида [1] последовательного деления с остатком:

a0=a0a1+a2,    a1=a1a2+a3,    a2=a2a3+a4, … ,

где натуральные числа a0,a1,a2, суть неполные частные. Это алгоритм разложения числа a =a0/a1 в правильную цепную дробь, и он применим к любым вещественным числам a. При этом a0=[a], где [a] - целая часть числа a, a1=[1/(a-a0)], , т.е.

a=a0+

 1


a1+

 1


a2+

 1


a3+  ···

,

(1)

и


ж
з
з
и
ak+1
ak+2
ц
ч
ч
ш
= ж
з
з
и
0
1
1
-ak
ц
ч
ч
ш
ж
з
з
и
ak
ak+1
ц
ч
ч
ш
,    ak=[ak/ak+1].
(2)

Если разложение (1) оборвать на ak и свернуть эту оборванную цепную дробь в рациональное число pk/qk, то получается подходящая дробь, которая дает наилучшее рациональное приближение к числу a. При этом


ж
з
з
и
pk
pk-1
qk
qk-1
ц
ч
ч
ш
= ж
з
з
и
pk-1
pk-2
qk-1
qk-2
ц
ч
ч
ш
ж
з
з
и
ak
1
1
0
ц
ч
ч
ш
(3)

и


ж
з
з
и
ak
1
1
0
ц
ч
ч
ш
-1



 
= ж
з
з
и
0
1
1
-ak
ц
ч
ч
ш
,     det
ж
з
з
и
pk
pk-1
qk
qk-1
ц
ч
ч
ш
=±1,

т.е векторы (ak,ak+1) и (pk,qk) принадлежат сопряженным плоскостям, и пара векторов (pk,qk), (pk-1,qk-1) может служить базисом в одной из них.

Цепные дроби (1) и соотношения (2), (3) рассматривал Валлис [3] в 1655 г. В 1737 г. Эйлер [4] дал название "непрерывная дробь" (fractio continua). Лагранж [5] доказал, что для квадратичных иррациональностей a разложение в цепную дробь периодично (и обратно).

Итак, алгоритм разложения числа в цепную дробь:

1) прост;

2) дает наилучшие рациональные приближения к числу;

3) периодичен для квадратичных иррациональностей.

Кроме того, он обладает еще рядом замечательных свойств.

В 1775 г. Эйлер [6] сделал первую попытку обобщить алгоритм цепной дроби на векторы. Впоследствии его подход развивали Якоби [7,8], Пуанкаре [9], Брун [10], Перрон [11], Бернштейн [12], Пустыльников [13] и др. (см. [14]). Они по аналогии с (2) строили матричные алгоритмы вида

Ak+1=CkAk,    k=0,1,2, … ,

(4)

где Ak - n-мерный вектор и Ck - квадратная n-матрица с целыми элементами, которая образована по вектору Ak, и det Ck= ± 1. Эти алгоритмы просты, но, вообще говоря, не дают наилучших рациональных приближений к вектору и не всегда при n=3 обладают аналогом свойства 3):

3) периодичность для кубических иррациональностей.

Еще Эрмит [15] критиковал алгоритм Якоби. В работах [16-23] было проведено сравнение качества матричных алгоритмов и было установлено, что ни один их них не обладает свойствами 2) и 3) для всех векторов A0. При этом оказалось, что наихудшим является алгоритм Пуанкаре [9].

В 1842 г. Дирихле [24] при n=3 предложил рассматривать не трехмерный вектор A=A0, а две линейные однородные формы l1(X) и l2(X) такие, что l1(A)=l2(A)=0. В 1850 г. Эрмит [25], развивая этот подход, предложил свое обобщение цепной дроби. Наконец, в 1895-96 гг. Клейн [26], Минковский [27] и Вороной [28] независимо пришли к тому, что надо в R3 рассматривать тройку однородных линейных форм l1(X), l2(X), l3(X) и предложили свои концепции обобщения цепной дроби. При этои Клейн ограничился общими геометрическими соображениями, а Минковский и Вороной предложили конкретные алгоритмы. Впоследствии подход Клейна переоткрывали Скубенко [29] и Арнольд [30] и называли многогранники Клейна парусами и многогранниками Арнольда [43,44]. И хотя в [16] был предложен алгоритм вычисления многогранников Клейна, в [17-23] было выяснено, что многогранники Клейна-Скубенко-Арнольда не дают основы для хорошего алгоритма, обобщающего цепную дробь. Только алгоритмы Минковского и Вороного обладают свойствами 2 и 3, но они весьма громоздки. Их применению и развитию было посвящено много работ (см. [31-33]).

Свой подход к обобщению цепной дроби предложил Гурвиц [34] в 1894 г., но без алгоритма.

Интерес автора к обобщению цепной дроби возник в связи с его работой [35] 1964 г., которая была повторена Ленгом [36] в 1972 г. (см. также Старк [37]). Ниже в § 1 для правильной цепной дроби излагаются конструкции Клейна и Вороного, а также предложенная автором в [41] "выпуклая цепная дробь". В § 2 показано, как вычисляется выпуклая цепная дробь. В § 3 излагаются конструкции Клейна, Вороного и автора для n=3. В § 4 для n=3 уточняется новый алгоритм, обобщающий выпуклую цепную дробь и предложенный в [54]. В § 5 уточняется алгоритм упорядочивания трех точек на плоскости.

§ 1. Цепные дроби

Клейн [26,38,39] предложил следующую геометрическую интерпретацию цепной дроби числа a (см. также [40]). Пусть на плоскости с координатами X=(x1,x2) заданы две независимые однородные линейные формы

l1(X)=l11x1+l12x2,    l2(X)=l21x1+l22x2;

(1.1)



det
ж
з
з
и
l11
l12
l21
l22
ц
ч
ч
ш
0.

Прямые линии Li={Xli(X)=0}, i=1,2 делят плоскость R2 на четыре квадранта или угла. Рассмотрим два смежных угла O1={Xl1(X) 0, l2(X) 0}, O2={Xl1(X) 0, l2(X) 0}. Через Ki обозначим выпуклую оболочку целочисленных точек (x1,x2), кроме x1=x2=0, попавших в угол Oi  (i=1,2). Границы Ki этих множеств Ki суть выпуклые ломаные линии, состоящие из вершин Bj и ребер Rj. Если

l1=x1-ax2,    l2=x2,

(1.2)

то вершинам Bj=(x1,x2) этих линий соответствуют подходящие дроби x1/x2=pj/qj цепной дроби числа a. При этом четности чисел j и i совпадают, т.е. вершина Bj лежит на ломаной Ki с i=1, если j нечетное, и с i=2, если j - четное. Целочисленным точкам (x1,x2), лежащим на ребрах Rj ломаных Ki, соответствуют промежуточные дроби цепной дроби числа a (см. [2, с. 21]). Число целочисленных точек на ребре, минус один равно неполному частному цепной дроби и т.д. (см. рис. 1).

Вороной [28, отдел I] предложил такую интерпретацию цепной дроби. Пусть на плоскости R2 заданы две линейные формы (1.1). Значения пары форм l1(X) и l2(X) в целочисленной точке X 0 называются относительным минимумом, если нет другой целочисленной точки Y 0, для которой

|l1(Y)||l1(X)|,    |l2(Y)||l2(X)|    и    |l1(Y)|+|l2(Y)| < |l1(X)|+|l2(X)|.

Вороной показал, что все целочисленные точки X, в которых пара форм (1.1) имеет относительные минимумы, полностью упорядочены и переход от одной пары соседних точек Bk-2=(pk-2,qk-2) и Bk-1=(pk-1,qk-1) к следующей паре Bk-1=(pk-1,qk-1) и Bk=(pk,qk) дается формулами вида (2) и (3), т.е. алгоритмом цепной дроби. В частоности, для форм (1.2) они соответствуют всем подходящим дробям цепной дроби числа a, и их последовательность по убыванию |l1(X)| и возрастанию |l2(X)| соответствует последовательности подходящих дробей. На рис. 2 в I-м квадранте плоскости |l1|, |l2| для каждого относительного минимума (|l1(k)|, |l2(k)|)=Vk заштрихован прямоугольник |l1| |l1(k)|, |l2| |l2(k)|, в котором нет точек (|l1(X)|, |l2(X)|) для целочисленных X 0.

В [41] автор предложил такую конструкцию. Пусть в R2 заданы две однородные линейные формы (1.1), причем l11a+l12=0. Рассматриваются только точки полуплоскости l2(X) 0. На плоскости с координатами m1(X)=|l1(X)|, m2(X)=|l2(X)|, M(X)=(m1(X),m2(X)) рассмотрим множество Z2 точек M(X) для всех целочисленных точек X Z2 кроме нуля. Пусть M - выпуклая оболочка множества Z2. Граница M множества M является ломаной линией, состоящей из вершин Wk и ребер Uk. На рис. 3 заштриховано множество M и его граница M изображена жирными отрезками и точками.

Пусть Zk=(z1k,z2k)=M(Ck) - точки множества Z2, расположенные на ломаной M и занумерованные в порядке убывания первой координаты z1k, Ck Z2. Ломаная M и точки Zk на ней обладают следующими свойствами.

1. Всякая точка Zk является точкой относительного минимума пары форм (1.1), т.е. Ck=Bj; но обратное, вообще говоря, не верно.

2. Пусть Zk=M(Ck) и Zk+1=M(Ck+1) - две соседние точки, тогда det(CkCk+1)= ± 1.

3. На одном ребре Us ломаной M не может быть трех точек Zk, соответствующих трем вершинам Bj одной ломаной Клейна Ki. Действительно, никакие три вершины одной ломаной Клейна Ki не лежат на одной прямой, а отображение M(X) для них линейно.

4. Если число a является квадратичной иррациональностью, то последовательности Zk и Ck периодичны, начиная с некоторого номера, т.е. существуют такие унимодулярная матрица D и натуральное число t, что DBl=mBl+t для l > l0.

Последовательность точек Zk ломаной M, занумерованных в порядке убывания |l1| и возрастания |l2|, назовем выпуклой цепной дробью. Ее можно получить как подходящие дроби цепной дроби вида

b0 ±

 1


b1 ±

 1


b2 ±   ···

,

где bi - натуральные числа.

Пример 1.1. Пусть a =(3+{21})/6=1.2637626, l1(X)=x1-
-ax2, l2(X)=x2. Для a правильная цепная дробь периодична:

a=1+

 1


3+

 1


1+

 1


3+  ···

.

(1.3)

Последовательные подходящие дроби суть

1,    

 4


3

,    

 5


4

,    

 19


15

,    

 24


19

,    

 91


72

,    

 115


91

,    

 436


345

, … .

Вершинам ломаной M соответствуют только подходящие дроби с нечетными номерами. Они являются также подходящими дробями цепной дроби

1+

 1


4-

 1


5-

 1


5-  ···

.

(1.4)

На рис. 4 на плоскости (m1,m2) показаны относительные минимумы, соответствующие цепной дроби (1.3), и множества M, M, соответствующие выпуклой цепной дроби (1.4). При этом ребра и вершины ломаной M показаны на рис. 4 жирными отрезками и жирными точками. Выпуклая цепная дробь (1.4) также является диагональной цепной дробью [50;51;40, с. 39; 55, § 41] и цепной дробью до ближайшего целого [52;40, с. 39; 55, § 39]. Но они не всегда совпадают, как показывает следующий пример.

Пример 1.2. Пусть a =(1+3)/2=1.3660254, l1(X)=x1-ax2, l2(X)=x2. Для a правильная цепная дробь периодична:

a=1+

 1


2+

 1


1+

 1


2+  ···

,

и выпуклая цепная дробь совпадает с правильной. Но диагональная цепная дробь такова

1+

 1


3-

 1


4-

 1


4-[ 1/(4-  ···)]

.

Она же является цепной дробью до ближайшего целого.

§ 2. Вычисление выпуклой цепной дроби

Выпуклую цепную дробь можно получить из правильной цепной дроби, заменяя в определенных местах агрегат

a+

 1


1+

 1


b+b

,

где b < 1, на агрегат a+1-1/(b+1+b), как это сделано в примере 1.1 (к этим местам относятся все случаи с b 3 и некоторые случаи с b=2). Однако можно вычислять ее последовательно шаг за шагом.

Опишем один шаг такого вычисления. Пусть согласно свойству 2 § 1 в качестве базиса взяты точки Ck и Ck+1, соответствующие соседним точкам Zk=M(Ck) и Zk+1=M(Ck+1) ломаной M. Найдем точку Ck+2. Положим E1=Ck+1, E2=Ck - единичные векторы. Пусть в этом базисе вектор A имеет вид A=(a1,a2), где a1 > |a2| > 0. Для простоты будем считать, что |a2|=1. Пусть линейные формы l1(X) и l2(X) в этом базисе имеют вид

l1(X)=a2x1-a1x2,    l2(X)=l21x1+l22x2,    l21 > 0,    sgn l22=sgn a2.

Точку Ck+2 ищем на прямой

x2=sgn a2=a2.

(2.1)

Пусть a=[a1/|a2|], тогда ближайшими к точке персечения прямой (2.1) с лучом lA, l > 0 являются две целочисленные точки, лежащие на прямой (2.1): с x1=a и с x1=a+1 (см. рис. 5). Только в этих точках X значения |l1(X)| < |l1(Bk+1)|. Следовательно, из двух точек B=(a,a2) и B"=(a+1,a2) надо выбрать такую, которой соответствует точка Zk+2 на ломаной M. Предшествующие две точки этой ломаной суть

Zk=M(Ck)=(a1,|l22|),    Zk+1=M(Ck+1)=(1,l21).

Далее

M ′ =M(B ′ )=(a1-a,l21a+|l22|),


M"=M(B")=(a+1-a1,l21(a+1)+|l22|).

(2.2)

Пусть C=(c1,c2) и D=(d1,d2) две точки плоскости Y=(y1,y2). Проведенная через них прямая пересекает ось y2 в точке

y2(C,D)=

 

ú
ú
ú
ú

c1

d1

c2

d2

ú
ú
ú
ú


c1-d1

.

(2.3)

Вычислим значения (2.3) для двух пар точек

y2(Zk+1,M ′ )    и    y2(Zk+1,M"),

(2.4)

и в качестве точки Ck+2 возьмем ту из точек B и B", для которой значения y2 в (2.4) меньше (см. рис. 6). Если для обеих точек B и B" значения y2 в (2.4) равны, то в качестве Ck+2 берем ту из этих точек, у которой m1 меньше.

Выбрав точку Ck+2, переходим к базису Ck+1, Ck+2 и т.д.

§ 3. Трехмерные обобщения геометрических конструкций

Клейн [26,38] предложил трехмерный аналог своей двумерной интерпретации цепной дроби. Пусть в R3 заданы три независимые однородные линейные формы


li(X)=бLi,Xс,    i=1,2,3,     det
(L1L2L3) 0,
(3.1)

где X R3, Li=(li1,li2,li3) R3*, б  · , ·  с означает скалярное произведение, и пространство R3* двойственно пространству R3. Каждому набору S = (s1,s2,s3), где si= ± 1, соответствует свой октант


OS={Xsi бLi,Xс ≥ 0,    i=1,2,3},

ограниченный плоскостями Li={Xli(X)=0}, i=1,2,3. В каждом октанте OS рассматривается выпуклая оболочка KS всех целочисленных точек X OS, X 0. Ее граница KS является выпуклой двумерной многогранной поверхностью, состоящей из вершин, ребер и граней. Ее вершины должны давать наилучшие целочисленные приближения в октанте OS к плоскостям Li и к прямым, являющимся их пересечением.

В работах [16-23,42-46] многогранники Клейна были вычислены для ряда однородных кубических форм с целыми коэффициентами вида


h(X)=бL1,XсбL2,XсбL3,Xс,
(3.2)

каждая из которых соответствует корням свего кубического уравнения. Оказалось, что они устроены довольно сложно и разнообразно. На сайте [46] приведено много примеров плоских логарифмических проекций многогранников Клейна. На рис. 7 и 8 показаны ортогонализованные логарифмические проекции поверхностей многогранников Клейна K+++ для двух кубических форм

 

h7(X) =

x13+2x12x2+x12x3-x1x22-x1x2x3-2x1x32-x23+

 

+2x22x3+x2x32-x33

 

и

 

 

~

h

 


7 

(X) =

-8x13+24x12x2-8x12x3-10x1x22+16x1x2x3+2x1x32+x23-

 

-x22x3-9x2x32+x33

 

вида (3.2), взятых из [23] и соответствующих уравнению l3-2l2-l+1=0, в координатах

 

~

n

 


2 

=

 lnm1+2lnm2-lnm3


√ 6

,    

~

n

 


3 

=

 lnm1-lnm3


√ 2

,

где mi(X)= | б Li,X с | , i=1,2,3. Показаны проекции вершин, ребер и целочисленных точек, лежащих на ребрах и гранях поверхности K+++, а также - целочисленных точек X=B, являющихся относительными минимумами для одного октанта O+++. Точка B OS, B 0 называется точкой относительного минимума октанта OS, если нет другой целочисленной точки B" OS, B" 0, и такой, что


mi(B") ≤ mi(Bў),    i=1,2,3,     и

m1(B")+m2(B")+m3(B") < m1(Bў)+m2(Bў)+m3(Bў).

На рис. 7 и 8 рядом с каждой точкой указано значение модуля формы (3.1) в ней. Видна двупериодичность рис. 7 и 8. На них жирными линиями выделены границы фундаментальных областей.

На рис. 7 фундаментальная область состоит из одного шестиугольника и двух треугольников. У многогранника K+++ грани, соответствующие шестиугольнику и малому треугольнику, удалены от начала координат на расстояние 1, а большие треугольные грани - на расстояние 3. На малых треугольных гранях нет внутренних целочисленных точек, на больших треугольных гранях имеется по одной целочисленной точке с |h|=|h7|=8 и за гранью имеются шесть точек относительных минимумов с |h|=13 и 29. На шестиугольных гранях имеются по 9 целочисленных точек с |h|=7,8,13.

На рис. 8 фундаментальная область состоит из граней трех типов: (I) один равносторонний треугольник, (II) три скошенных треугольника и (III) три четырехугольника. Грань типа I отстоит от начала координат на расстояние 2, не содержит внутренних целочисленных точек и за ней имеется одна точка относительного минимума с |h|=|[(h)\tilde]7|=49. Грань второго типа отстоит на расстояние 3, не содержит внутренних целочисленных точек и за ней имеются две точки относительного минимума с |h|=29 и 56. Грань типа III отстоит на расстояние 1 и имеет одну внутреннюю целочисленную точку с |h|=13. Кроме того, на некоторых ребрах имеются целочисленные точки с |h|=8.

В [16] предложен алгоритм вычисления многогранника Клейна одновременно с его сопряженным многогранником, но этот алгоритм нельзя рассматривать как обобщение алгоритма цепной дроби.

Пусть в R3 заданы три линейные однородные формы (3.1) и отображение M(X)=(m1(X),m2(X),m3(X)), где mi(X)=|li(X)|, i=1,2,3. Значение M(X) в целочисленной точке X Z3 называется относительным минимумом, если нет такой целочисленной точки Y Z3, что

M(Y) ≤ M(X)    и    ||M(Y)|| < ||M(X)||,

где ||M||=m1+m2+m3. Вороной [28, отдел III] рассматривал в R3 точки X Z3, соответствующие относительным минимумам форм (3.1). Он предложил способ их частичного упорядочивания и построил алгоритм движения по этим упорядоченным точкам. Этот алгоритм он назвал обобщением алгоритма цепной дроби (см. также [47, гл. IV; 48]). По одному примеру вычислений алгоритмом Вороного имеется в работах [28, § 53; 47, § 59].

В [41] предложена следующая конструкция. Вектор-функция M(X) отображает пространство R3 с координатами X в пространство R3 с координатами M=(m1,m2,m3), точнее - в его неотрицательный октант. При этом множество Z3\0 всех целочисленных точек X кроме X=0 отображается в некоторое множество Z3 в R3. Пусть M - выпуклая оболочка точек множества Z3 и M - ее граница. Очевидно, что M - это выпуклый многогранник и M - это выпуклая многогранная поверхность, состоящая из вершин Vi, ребер Ri и граней Gi.

Грань Gi поверхности M назовем простой, если она является треугольником с вершинами

Vj=M(Bj),    BjZ3,    j=1,2,3

(3.3)

и не содержит других точек из множества Z3. Для простой грани Gi с вершинами (3.3) положим

w(Gi)=|

det

 (B1B2B3)|.

Очевидно, w(Gi) принимает целые неотрицательные значения.

Теорема 3.1. Если у простой грани Gi с вершинами (3.3) w(Gi)=0, то один из векторов B1,B2,B3 является суммой двух остальных.

Будем говорить, что тройка форм (3.1) находится в общем положении, если у их произведения (3.2), деленного на произведение l11l21l31, любой из коэффициентов может быть рациональным числом, но между коэффициентами lij нет других независимых от этих алгебраических соотношений с рациональными коэффициентами.

Теорема 3.2. В случае общего положения все грани Gi поверхности M являются простыми и w(Gi) 2.

Множество точек из Z3, лежащих на поверхности M обозначим M, т.е.

M=Z3 ∩ ∂ M.

Следствие 3.1. В случае общего положения все точки множества M являются вершинами поверхности M.

На рис. 9 и 10, взятых из [49], в координатах n1=lnm1,    n2=lnm2 показаны логарифмические проекции поверхности M для форм h7 и [(h)\tilde]7, многогранники Клейна для которых показаны на рис. 7 и 8 соответственно. На рис. 7 и 8 показаны вершины и ребра, а также точки относительных минимумов. Для каждой точки Y=M(X) указаны значение модуля формы h(X) и значение вектора X. Жирными линиями показаны границы фундаментальных областей. В них для каждой грани Gi указано значение w(Gi). Для обеих форм в вершинах многогранника M имеем |h|=1.

На рис. 9 фундаментальная область состоит из 6 треугольников, два имеют w =1 и четыре - w =0. В ней есть одна точка относительного минимума, соответствующая точке, лежащей в центре большой треугольной грани рис. 7. Следовательно, не все относительные минимумы соответствуют вершинам многогранников Клейна, как это было в двумерном случае. Очевидно, что всем вершинам многогранника M соответствуют вершины многогранников Клейна, но обратное не верно.

На рис. 10 фундаментальная область состоит из двух треугольников (для обоих w =1) и содержит четыре точки относительных минимумов, в одной |h|=|[(h)\tilde]7|=7 и в трех |h|=8 (точка с |h|=8 у левой границы фундаментальной области лежит в ней, а точка с |h|=7 лежит в правом треугольнике). Все эти точки с |h|=7 и 8 соответствуют вершинам многогранников Клейна. Здесь все вершины многогранников Клейна являются относительными минимумами.

Предлагаемое ниже обобщение выпуклой цепной дроби является направленным движением по поверхности M, один шаг которого дает переход от грани с w =1 к ближайшей грани с этим же свойством.

§ 4. Алгоритм движения по поверхности M

Лемма 4.1. Пусть в R3 заданы три точки U=(u1,u2,u3), V=(v1,v2,v3) и W=(w1,w2,w3). Проходящая через них плоскость пересекает третью координатную ось в точке

y3(U,V,W)=

det

 (UVW)


 

ú
ú
ú
ú

u1

v1

u2

v2

ú
ú
ú
ú

+

ú
ú
ú
ú

v1

w1

v2

w2

ú
ú
ú
ú

+

ú
ú
ú
ú

w1

u1

w2

u2

ú
ú
ú
ú

 

.

(4.1)

Пусть в R3 заданы три линейные формы (3.1) и такой вектор A=(a1,a2,a3), что l1(A)=l2(A)=0. Обозначим через pR3 полупространство l3(X) 0. Пусть A pR3 (этого всегда можно достичь изменением знака вектора A). Наша цель - построить целочисленные приближения к лучу mA, m > 0.

Предположим сначала, что на поверхности M

все грани простые

(4.1′)

и у них

w ≤ 1.

(4.2)

Согласно теореме 3.2 свойство (4.1) выполнено в случае общего положения.

Пусть целочисленные векторы B1,B2,B3 pZ3 образут базис, т.е det(B1B2B3)= ± 1. Тогда мы имеем lij[(   def) || ( = )]  li(Bj), i,j=1,2,3 и такой вектор L = (l1,l2,l3), что l1B1+l2B2+l3B3=mA, m 0. При этом j=13lijlj=0, i=1,2. Эти начальные данные удобно записать в виде таблицы

 

B1

l11

l21

l31

l1

B2

l12

l22

l32

l2

B3

l13

l23

l33

l3.

 

(4.3)

При этом Mi=M(Bi), т.е. mij=|lij|, i,j=1,2,3. Для точки M или множества точек, например Gi, в пространстве R3 чертой сверху [`(M)] или [`(G)]i будем обозначать их ортогональные проекции на плоскость (m1,m2). Пусть точки Mi являются вершинами треугольника G.

Переход к другому базису B1,B2,B3 состоит из последовательного выполнения следующих 5 шагов.

Шаг 1. Первым делом на плоскости (m1,m2) надо выяснить взаимное расположение трех точек [`(M)]j=(|l1j|,|l2j|)[(   def) || ( = )]  (m1j,m2j), j=1,2,3, которые являются вершинами треугольника [`(G)]. Ребро треугольника [`(G)], противоположное вершине [`(M)]j, обозначим [`(R)]j. Ребро [`(R)]j назовем отделяющим, если точка [`(M)]j и начало координат [`(M)] =0 расположены по разные стороны от прямой Lj, проведенной через ребро [`(R)]j. Очевидно, что у каждого треугольника [`(G)], целиком расположенного в первом квадранте, есть хотя бы одно отделяющее ребро. Пара точек из [`(M)]1, [`(M)]2, [`(M)]3, лежащих на этом ребре, является выделенной. Технически выделение такой пары точек можно сделать либо на рисунке, либо вычислениями, которые описаны ниже в § 5. Если таких ребер два, т.е. имеется две пары выделенных точек, то алгоритм разветвляется, и надо его продолжить для каждой из этих пар отдельно. Пусть для определенности выделенными являются точки [`(M)]1 и [`(M)]2. Прямую, проходящую через них, обозначим L.

Шаг 2. Вычисляем ai=[li/|l3|], i=1,2,3. Здесь a3= ± 1.

Шаг 3. Для каждой из шести точек

 

M(B1+B2)

   def
=
 

  U1,    M(B1-B2)

   def
=
 

  U2;

M(a1B1+a2B2+a3B3)

   def
=
 

  V1,

M((a1+1)B1+a2B2+a3B3)

   def
=
 

  V2,

M(a1B1+(a2+1)B2+a3B3)

   def
=
 

  V3,

M((a1+1)B1+(a2+1)B2+a3B3)

   def
=
 

  V4

 

(4.4)

выясняем расположение ее проекции [`(U)]i, [`(V)]j относительно прямой L. Точки Ui, Vj, у которых проекции [`(U)]i, [`(V)]j отделены от начала координат прямой L, отбрасываем. Оставляем только точки, проекции которых лежат от прямой L по ту же сторону, что и начало координат.

Лемма 4.2. Из двух точек [`(U)]1, [`(U)]2 не более одной точки лежит по ту же сторону прямой L, что и начало координат.

Лемма 4.3. Из четырех точек [`(V)]1-[`(V)]4 хотя бы одна лежит по ту же сторону прямой L, что и начало координат.

Шаг 4. Для каждой из оставшихся точек (4.4) по лемме 4.1 вычисляем точку пересечения плоскости, проведенной через точки M1,M2 и эту точку, с третьей координатной осью. Из этих значений выбираем наименьшее и соответствующую ему точку Ui или Vj. Если таких точек несколько, то процедура ветвится, ибо далее рассматриваем каждую из них.

Шаг 5. Если выбранная на шаге 4 точка соответствует одной из точек Ui, то делаем шаг 5а). Если она соответствует одной из точек Vi, то делаем шаг 5б).

Шаг 5а. Пусть выбрана точка U1. Рассматриваем треугольник с вершинами [`(M)]1, [`(M)]2, [`(U)]1. Из двух его ребер, инцидентных с вершиной [`(U)]1, выбираем то ребро, которое отделяет точку [`(M)]3 от начала координат [`(M)] =0. Если такого ребра нет, то берем ту точку Vj из оставленных на шаге 3, у которой значение y3, вычисленное на шаге 4, наименьшее. Если их два, то алгоритм разветвляется. Пусть точка [`(M)]2 принадлежит выбранному ребру. Тогда из двух векторов B1 и B2 оставляем B2. От базиса B1,B2,B3 переходим к базису B4=B1+B2, B2,B3. Выписываем матрицу N, для которой


ж
з
з
з
и
B1ў
B2ў
B3ў
ц
ч
ч
ч
ш
   def
=
 
   ж
з
з
з
и
B4
B2
B3
ц
ч
ч
ч
ш
= N ж
з
з
з
и
B1
B2
B3
ц
ч
ч
ч
ш
,    N= ж
з
з
з
и
1
1
0
0
1
0
0
0
1
ц
ч
ч
ч
ш
.

Матрица N*-1 дает преобразование


Lў=N*-1L,    N*-1= ж
з
з
з
и
1
0
0
-1
1
0
0
0
1
ц
ч
ч
ч
ш
,

где звездочка означает транспонирование. Если была выбрана точка U2, то B4=B1-B2 или B2-B1, чтобы B4 pR3, и соответственно меняются матрицы N и N*-1.

Шаг 5б. Пусть выбрана точка Vj=M(B3), где B3=[(a)\tilde]1B1+[(a)\tilde]2B2+a3B3 согласно (4.4). Тогда от базиса B1,B2,B3 переходим к базису B1=B1, B2=B2, B3=B3=[(a)\tilde]1B1+[(a)\tilde]2B2+a3B3 по формулам


ж
з
з
з
и
B1ў
B2ў
B3ў
ц
ч
ч
ч
ш
=N ж
з
з
з
и
B1
B2
B3
ц
ч
ч
ч
ш
,    N= ж
з
з
з
з
и
1
0
0
0
1
0
~
a
 

1 
~
a
 

2 
a3
ц
ч
ч
ч
ч
ш
.

При этом


Lў=N*-1L,    N*-1= ж
з
з
з
з
з
и
1
0
-a3
~
a
 

1 
0
1
-a3
~
a
 

2 
0
0
a3
ц
ч
ч
ч
ч
ч
ш
.

Векторы B1,B2,B3 дают новый базис; вектор - значение вектора A в этом базисе. Таким образом, переход от старого базиса B1,B2,B3 к новому базису B1,B2,B3 окончен.

Теорема 4.1. В предположениях (4.1) и (4.2) если базису B1,B2,B3 соответствовала грань поверхности M, то указанный переход к другому базису дает другую грань поверхности M с вершинами M1,M2 и Ui или Vj.

Теорема 4.2. В предположениях (4.1) и (4.2) если базису B1,B2,B3 соответствовала грань поверхности M, после нескольких указанных переходов к новому базису получен базис [(B)\tilde]1,[(B)\tilde]2,[(B)\tilde]3 и в последнем переходе была выбрана точка типа Vj вида (4.4), то новому базису [(B)\tilde]1,[(B)\tilde]2,[(B)\tilde]3 также соответствует грань поверхности M с вершинами M([(B)\tilde]i),i=1,2,3.

Замечание 4.1. Выше дана самая простая и общая формулировка перехода к другому базису. Можно выделить различные случаи и подслучаи, когда этот переход упрощается. Например, если l11l12 и l21l22 < 0, то можно не рассматривать точку U2; если l11l12 и l21l22 > 0, то - точку U1. Однако, эта общая форма перехода наиболее удобна для программирования.

Замечание 4.2. Если исходному базису не соответствует грань поверхности M, то предложенный алгоритм после нескольких переходов к другому базису выводит на грань поверхности M.

Если предположение (4.2) не выполнено, то для треугольника Gi поверхности M с w(Gi) > 1 алгоритм дает последовательность таких треугольников Dik с w(Dik)=0 или 1, которые расположены за треугольником Gi и проекции которых [`(D)]ik расположены внутри проекции [`(G)]i. Причем первый из этих треугольников Dik имеет с треугольником Gi общее ребро. Через несколько шагов алгоритм выходит на другое ребро треугольника Gi и продолжает двигаться по треугольникам поверхности M. Получается выпукло-вогнутая поверхность, которую обозначим N3.

Например, если w(Gi)=2, то имеется точка относительного минимума Wi, проекция которой [`(W)]i лежит внутри проекции [`(G)]i треугольника Gi. Эта точка получается при применении алгоритма к тому ребру R1 треугольника Gi, проекция которого [`(R)]1 не является отделяющей по отношению к треугольнику [`(G)]i. На точку Wi и ребра Rk треугольника Gi натянуты три треугольные грани Dik с w(Dik)=1, k=1,2,3. Алгоритм сначала выходит на грань Di1, затем на одну из граней Di2 или Di3, а потом - на грань поверхности M с w =1, примыкающую к грани Gi по соответствующему ребру R2 или R3. У поверхности M каждую грань Gi с w(Gi)=2 заменяем тройкой граней Dik, а грани Gi с w(Gi) 1 оставляем неизменными. В результате получаем многогранную поверхности N3, если для поверхности M все грани Gi имеют w(Gi) 2.

Если предположение (4.1) не выполнено, т.е. имеется непростая грань, то описанный алгоритм позволяет выходить на такую грань, двигаться по ней и сходить с нее на другую грань.

§ 5. Упорядочивание трех точек

Лемма 5.1. Пусть на плоскости R2 с координатами X=(x1,x2) заданы три точки A=(a1,a2), B=(b1,b2) и C=(c1,c2). Положим

æ = |AB|+|BC|+|CA|,

(5.1)

где


|AB|= det
ж
з
з
и
a1
b1
a2
b2
ц
ч
ч
ш
.

Если æ = 0, то точки A,B,C лежат на одной прямой.

Если æ 0, то точки A,B,C являются вершинами треугольника. При обходе этого треугольника в положительном направлении, т.е. против часовой стрелки, эти вершины расположены в прямой последовательности A,B,C, если æ < 0, и в обратной последовательности A,C,B, если æ > 0.

Следствие 5.1. У треугольника с вершинами A,B,C ребро AB является отделяющим, если величины |AB| и æ из (5.1) имеют разные знаки.

Поэтому для нахождения отделяющего ребра надо вычислить определители |AB|, |BC|, |CA| и их сумму æ. Если знак определителя отличен от знака æ, то соответствующее этому определителю ребро является отделяющим.

Если отделяющим является ребро AB, то точка D=(d1,d2) лежит по ту же сторону от прямой L, проведенной через точки A и B, что и начало координат, если величины |AB| и |AB|+|BD|+|DA| имеют одинаковые знаки. При этом |BD|+|DA|=|B-A,D|.

§ 6. Вычисления для формы h7

Первый этап вычислений для формы h7 представлен в табл. 1 и 2. Табл. 1 устроена так. В первом столбце указан номер k векторов басиса Bk. Во втором столбце указан вектор Bk. В третьем, четвертом и пятом столбце даны значения форм l1(Bk), l2(Bk), l3(Bk). В шестом столбце дан нормированный вектор-столбец L =(l1,l2,l3) такой, что mA=l1 B1+l2 B2+l3 B3 и min |li|=1. В седьмом столбце даны значения определителей |[`(M)]i+1[`(M)]i+2|. В восьмом столбце ставятся звездочки (и кружочки), отмечающие выделенные пары точек. В девятом столбце даны значения ai, вычисленные на втором шаге. В десятом столбце приведена матрица N, полученная на пятом шаге. В одиннадцатом столбце дана матрица N*-1. В двенадцатом столбце - вектор L=N*-1L.

Заметим, что в табл. 1 столбцы 1-6 соответствуют таблице начальных данных (4.3). Напомним, что mi(Bk)=|li(Bk)|. Поэтому специально таблица значений mi(Bk) не выписывается, но при вычислении определителей в столбце 7 используются модули значений, стоящих в столбцах 3-5. Сумма значений в столбце 7 есть æ = 1.2864 > 0. Поскольку в столбце 7 имеются два отрицательных значения, то получаем две выделенные пары точек: [`(M)]1,[`(M)]2 (отмеченные звездочками в столбце 8) и [`(M)]2,[`(M)]3 (отмеченные в столбце 8 кружочками). Следовательно, здесь алгоритм разветвляется на два варианта. Сначала рассмотрим

Вариант 1 (выделенные векторы B1 и B2). Для них результат шага 2 показан в столбце 9 табл. 1. Вычисления шагов 3 и 4 по этому варианту показаны в табл. 2, которая организована так. В первом столбце указываются векторы Ui и Vj из (4.4). В столбце 2 даны значения таких векторов Bk, что Ui=M(Bk) и Vj=M(Bk). В столбцах 3-5 даны значения форм l1(Bk), l2(Bk), l3(Bk). В столбцах 6 и7 даны значения определителей |[`(M)]2[`(M)]k| и |[`(M)]k[`(M)]1|, где Mk=M(Bk). В столбце 8 даны значения æk=|[`(M)]1[`(M)]2|+|[`(M)]2[`(M)]k|+|[`(M)]k[`(M)]1|. В столбце 9 даны значения det(M1M2Mk) и в столбце 10 - отношения (4.1). При этом шагу 3 соответствуют столбцы 1-8. Согласно последней строчке столбца 7 табл. 1 имеем |[`(M)]1[`(M)]2|=-.3351 < 0. Согласно столбцу 8 табл. 2 число æk для V4 положительно, а остальные æk отрицательны. Следовательно, на шаге 3 отбрасываем точку V4 (и точку U1), но оставляем точки U2, V1-V3. Согласно столбцу 10 табл. 2 наименьшее значение y3 имеется для точки U2. Поэтому далее делаем шаг 5а. По табл. 1 и 2 вычисляем |[`(M)]3[`(U)]2|=1.2687. Если вектор B1-B2 взять вместо B1, то æ = |[`(U)]2[`(M)]2|+|[`(M)]2[`(M)]3|+|[`(M)]3[`(U)]2|=-.3351-.1764+1.1687=.7572 имеет знак противоположный к |[`(U)]2[`(M)]2|=-.3351. Поэтому этот вариант не годится. Однако в качестве вектора B4 берем разность B2-B1=(-1,1,0), чтобы иметь l3(B4) > 0. Получаемые матрицы N и N*-1 приведены в столбцах 10 и 11 табл. 1. Наконец в столбце 12 табл. 1 дан вектор L=N*-1L.

В табл. 3, аналогичной табл. 1, приведены результаты вычислений шагов 1, 2 и 5 для второго этапа варианта 1. Здесь сумма значений в столбце 7 есть æ = .7572 > 0. В этом столбце имеются два отрицательных значения, т.е. процедура ветвится. Но вариант с выделенными точками M2 и M3 это вариант 2 этапа 1. Поэтому здесь остается единственный вариант - выделенные точки M4 и M2. На самом деле, результаты, приведенные в стобце 7, были получены на шаге 5а этапа 1. Значения ai для этого варианта приведены в столбце 9 табл. 3. Вычисления шагов 3 и 4, которые здесь не приводим, дают вектор B5=B4+B2=(-1,2,0). На шаге 5а получаем 2 варианта: вариант 1.1, где B5 берется вместо B4, и вариант 1.2, где B5 берется вместо B2. Соответствующие варианту 1.1 матрицы N, N*-1 и вектор N указаны в столбцах 10, 11, 12 табл. 3. Далее будем кратко описываь результаты этапов вычислений, не приводя подробные значения промежуточных величин. За этими результатами удобно следить по рис. 7.

В варианте 1.1 на четвертом этапе получаем B6=B5+B2=(-1,3,0) вместо B2. Поэтому


N= ж
з
з
з
и
1
0
0
1
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
-1
0
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
1.7146
1.8905
-1.
ц
ч
ч
ч
ш
,    A= ж
з
з
з
и
1
1
-1
ц
ч
ч
ч
ш
.

Здесь и далее A=(a1,a2,a3) - вектор, полученный на шаге 2. На пятом этапе получаем B7=2B5+2B6-B3=(-4,10,-1) вместо B3, т.е.


N= ж
з
з
з
и
1
0
0
0
1
0
2
2
-1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
2
0
1
2
0
0
-1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
-.2854
-.1095
1.
ц
ч
ч
ч
ш
,
L"= ж
з
з
з
и
-2.6064
-1.
9.1324
ц
ч
ч
ч
ш
.
(6.1)

Здесь и далее L" - это нормированный вектор N.

Итак, пришли к тройке векторов B5, B6, B7, образующих новый базис. Но продолжим вычисления. На шестом этапе получаем B8=B7-B6=(-3,7,-1) вместо B6, т.е.


N= ж
з
з
з
и
1
0
0
1
-1
1
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
0
0
-1
0
0
1
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
-2.6064
1.
8.1324
ц
ч
ч
ч
ш
.

На седьмом этапе получаем B9=B. Выделены B8 и B7, следовательно, A=(-1,0,3), и получаем B9=-B5+3B7=(-11,28,-3) вместо B5, т.е.


N= ж
з
з
з
и
-1
0
3
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
-1
0
0
0
1
0
3
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
2.6064
1.
.3132
ц
ч
ч
ч
ш
,
L"9= ж
з
з
з
и
8.3218
3.1928
1.
ц
ч
ч
ч
ш
.
(6.2)

Итак, получили три вектора B9, B8, B7, образующих новый базис. Здесь остановимся.

Теперь рассмотрим вариант 1.2. В нем B5=B4+B2=(-1,2,0) вместо B2, т.е.


N= ж
з
з
з
и
1
0
0
1
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
-1
0
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
-1.8905
5.4956
-1.
ц
ч
ч
ч
ш
,    A= ж
з
з
з
и
-2
5
-1
ц
ч
ч
ч
ш
.

На третьем этапе получаем B10=B4+B5=(-2,3,0) вместо B4, т.е.


N= ж
з
з
з
и
1
1
0
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
0
-1
1
0
0
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
-1.8905
7.3861
-1.
ц
ч
ч
ч
ш
,    A= ж
з
з
з
и
-2
7
-1
ц
ч
ч
ч
ш
.

На четвертом этапе получаем B11=-2B10+7B5-B3=(-3,8,-1) вместо B3, т.е.


N= ж
з
з
з
и
1
0
0
0
1
0
-2
7
-1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
-2
0
1
7
0
0
-1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
.1095
.3861
1.
ц
ч
ч
ч
ш
,
L"11= ж
з
з
з
и
1.
3.526
9.1324
ц
ч
ч
ч
ш
.
(6.3)

Итак, пришли к тройке векторов B10, B5, B11, образующих новый базис и здесь остановимся.

Рассмотрим вариант 2, возникший на первом этапе. Там выделены векторы B2 и B3 и A=(-1,2,-1). На втором этапе получается вектор B12=-B1+2B2-B3=(-1,2,-1) вместо B1, т.е.


N= ж
з
з
з
и
-1
2
-1
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
-1
0
0
2
1
0
-1
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
3.6051
1.8905
2.6051
ц
ч
ч
ч
ш
,
L"= ж
з
з
з
и
1.9069
1.
1.3780
ц
ч
ч
ч
ш
.

Получим тройку векторов B12, B2, B3, образующих новый базис, но продолжим вычисления. На третьем этапе выделенными являются векторы B10 и B2, получается новый вектор B13=B12-B2=(-1,1,-1) вместо B12, т.е.


N= ж
з
з
з
и
1
-1
0
0
1
0
0
0
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
0
1
1
0
0
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
1.9069
2.9069
1.3780
ц
ч
ч
ч
ш
,

и выделяются векторы B13 и B2, т.е A=(1,2,1). На четвертом этапе получаем B14=B13+2B2+B3=(-1,3,0)=B6 вместо B3, т.е.


N= ж
з
з
з
и
1
0
0
0
1
0
1
2
1
ц
ч
ч
ч
ш
,    N*-1= ж
з
з
з
и
1
0
-1
0
1
-2
0
0
1
ц
ч
ч
ч
ш
,    Lў= ж
з
з
з
и
.5289
.1509
1.3781
ц
ч
ч
ч
ш
,
L"14= ж
з
з
з
и
3.5049
1.
9.1318
ц
ч
ч
ч
ш
.

Итак, пришли к трем векторам B13, B2, B6, образующих новый базис. Здесь L" близка к L"11 из (6.3). Следовательно, унимодулярная матрица D1, удовлетворяющая уравнению


ж
з
з
з
и
B13
B2
B6
ц
ч
ч
ч
ш
= ж
з
з
и
B10
B5
B11
ц
ч
ч
ш
 D1,
(6.4)

дает автоморфизм формы h7. Из (6.4) находим


D1= ж
з
з
з
и
-2
3
0
-1
2
0
-3
8
-1
ц
ч
ч
ч
ш
-1





 
ж
з
з
з
и
-1
1
-1
0
1
0
-1
3
0
ц
ч
ч
ч
ш
= ж
з
з
з
и
-2
3
0
-1
2
0
-2
7
-1
ц
ч
ч
ч
ш
ж
з
з
з
и
-1
1
-1
0
1
0
-1
3
0
ц
ч
ч
ч
ш
=
= ж
з
з
з
и
2
1
2
1
1
1
3
2
2
ц
ч
ч
ч
ш
.

Список литературы

1.     Венков Б.А. Элементарная теория чисел. М.-Л.: ОНТИ, 1937.

2.     Хинчин А.Я. Цепные дроби. 3-е изд. М.: Физматгиз, 1961.

3.     Wallis J.A. Arithmetica infinitorum, 1655.

4.     Euler L. De fractinibus continuis // Comm. Acad. Sci. Imper. Petropol., 1737, v. 9.

5.     Lagrange J.L. Complement chez Elements dalgebre etc. par M.L. Euler, t. III, 1774.

6.     Euler L. De relatione inter ternas pluresve quantitates instituenda // Petersburger Akademie Notiz. Exhib. August 14, 1775 // Commentationes arithmeticae collectae. V. II. St. Petersburg, 1849. P. 99-104.

7.     Jacobi C.G.J. Allgemeine Theorie der Kettenbruchänlichen Algorith-
men, in welchen jede Zahl aus drei vorhergehenden gebildet wird // J. Reine Angew. Math., 1868. V. 69. P. 29-64. // Gesammelte Werke, Bd. IV. Berlin: Reimer, 1891. S. 385-426.

8.     Jacobi C.G.J. Ueber die Auflösung der Gleichung a1x1+a2x2++anxn=fn // J. Reine Angew. Math. 1868. V. 69. P. 21-28.

9.     Poincare H. Sur une generalization des fractionés continues // C.R. Acad. Sci. Paris. Ser. 1. 1884. V. 99. P. 1014-1016.

10. Brun V. En generalisation av Kjedebroken // Skrifter utgit av Videnskapsselskapeti Kristiania. I. Matematisk-Naturvidenskabelig Klasse 1919. N 6; 1920. N 6.

11. Perron O. Grundlagen für eine Theorie des Jacobischen Ketten-bruchalgorithmus // Math. Ann. 1907. V. 64. P. 1-76.

12. Bernstein L. The Jacobi-Perron algorithm - its theory and application. LNM 207. Berlin/Heidelberg/New York: Springer Verlag, 1971.

13. Пустыльников Л.Д. Обобщенные цепные дроби и эргодическая теория // УМН, 2003, т. 58, N 1, с. 113-164.

14. Schweiger F. Multidimensional Continued Fractions. Oxford Univ. Press: New York, 2000.

15. Hermite Ch. Correspondance dHermite et de Stieltjes. T. II, lettres 232, 238, 408. Gauthier-Villars, Paris, 1905.

16. Брюно А.Д., Парусников В.И. Многогранники Клейна для двух кубических форм Давенпорта // Матем. заметки. 1994. Т. 56. N 4. С. 9-27.

17. Брюно А.Д., Парусников В.И. Сравнение разных обобщений цепных дробей // Матем. заметки, 1997, т. 61, N 3, с. 339-348.

18. Parusnikov V.I. Klein polyhedra for complete decomposable forms // Number theory. Dyophantine, Computational and Algebraic Aspects. Editors: K. Györy, A. Pethö and V.T. Sós. De Gruyter. Berlin, New York. 1998, p. 453-463.

19. Парусников В.И. Многогранники Клейна для четвертой экстремальной кубической формы // Матем. заметки, 2000, т. 67, N 1, с. 110-128.

20. Парусников В.И. Многогранники Клейна с большими гранями // Препринт N 93. М.: ИПМ им. М.В.Келдыша, 1997.

21. Парусников В.И. Многогранники Клейна для пятой экстремальной кубической формы // Препринт N 69. М.: ИПМ им. М.В.Келдыша, 1998.

22. Парусников В.И. Многогранники Клейна для шестой экстремальной кубической формы // Препринт N 69. М.: ИПМ им. М.В.Келдыша, 1999. 31 с.

23. Парусников В.И. Многогранники Клейна для седьмой экстремальной кубической формы // Препринт N 79. М.: ИПМ им. М.В.Келдыша, 1999. 32 с.

24. Lejeune Dirichlet G.P. Verallgemeinerung eines Satzes aus der Lehre von den Kettenbrüchen nebst einigen Anwendungen auf die Theorie der Zahlen // S.-B. press. Akad. Wiss. 1842. S. 93-95 // Werke. Bd. I. Berlin: Reimer, 1889, S. 635-638.

25. Hermite Ch. Lettres de M. Ch. Hermite á M. Jacobi sur differents objets de la theorie des nombres // J. Reine Angew. Math. 1850, Bd. 40, S. 261-315 // Oeuvres, T. I, Paris: Gauther-Villares, 1905, p. 100-163 // Opuscule Mathematica de Jacobi, v. II.

26. Klein F. Über eine geometrische Auffassung der gewöhnlichen Kettenbruchentwicklung // Nachr. Ges. Wiss. Göttingen Math.-Phys. Kl. 1895. N 3. S. 357-359.

27. Minkowski H. Generalisation de le theorie des fractions continues // Ann. Sci. Ec. Norm. Super. ser III, 1896, t. 13, p. 41-60. Also in: Gesamm. Abh. I, p. 278-292.

28. Вороной Г.Ф. Об одном обобщении алгорифма непрерывных дробей. Варшава: Из-во Варш. Ун-та, 1896. Также: Собр. соч. в 3-х томах. Киев: Из-во АН УССР, 1952. Т. 1. С. 197-391.

29. Скубенко Б.Ф. Минимумы разложимых кубических форм от трех переменных // Записки научных семинаров Ленинградского отделения математич. ин-та им. Стеклова (ЛОМИ). 1988, т. 168, с. 125-139.

30. Арнольд В.И. Цепные дроби. М.: МЦНМО, 2001.

31. Brentjes A.J. Multi-dimensional Continued Fraction Algorithms. Ma-
thematical Centre Tracts 145, Amsterdam: Mathematisch Centrum, 1981.

32. Buchmann J. On the period length of the generalized Lagrange algorithm // J. Number Theory, 1987, v. 26, p. 8-37.

33. Быковский В.А. Теорема Валена для двумерных подходящих дробей // Матем. заметки, 1999, т. 66, N 1, с. 30-37.

34. Hurwitz A. Ueber die angenäherte Darstellung der Zahlen durch rationale Brüche // Math. Ann. 1894. Bd. 44, S. 417-436.

35. Брюно А.Д. Разложения алгебраических чисел в цепные дроби // Журнал вычислительной матем. и матем. физики, 1964, т. 4, N 2, с. 211-221.

36. Lang S., Trotter H. Continued fractions of some algebraic numbers // J. Reine Angew. Math. 1972, Bd. 252, S. 112-134.

37. Старк Х.М. Объяснение некоторых экзотических непрерывных дробей, найденных Бриллхартом // Вычисления в алгебре и теории чисел (ред. Б.Б. Венков и Д.К. Фаддеев). М.: Мир, 1976, с. 155-171.

38. Klein F. Sur une representation geometrique du developpement en fraction continue ordinare // Nouv. Ann. Math. (3), 1896, Bd. 15, S. 327-331.

39. Klein F. Ausgewählte Kapitel der Zahlentheorie. Bd. I, Einleitung. Göttingen, 1896, S. 16-50.

40. Koksma J.F. Diophantische Approximationen. Berlin: Julius Springer, 1936.

41. Брюно А.Д. Правильное обобщение цепной дроби // Препринт N 86. М.: ИПМ им. М.В.Келдыша, 2003. 17 с.

42. Коркина Е. Двумерные цепные дроби. Самые простые примеры. // Труды Мат. ин-та им. Стеклова. 1995, т. 203, с. 143-166.

43. Lachaud G. Polyédre dArnold et voile dun cône simplicial: analogues du théoreme de Lagrange // C.R. Acad. Sci. Ser. 1. 1993. V. 317. P. 711-716.

44. Lachaud G. Polyedre dArnold et voile dun cône simplicial, analogues du théoreme de Lagrange pour les irrationnels de degré quelconque. Prétirage N 93-17. Marseille: Laboratoire de Mathématiques Discretes du C.N.R.S., 1993.

45. Kontsevich M.L., Suhov Yu. M. Statistics of Klein polyhedra and multidimensional continued fractions // Amer. Math. Soc. Transl. (2) 1999, v. 197, p. 9-27.

46. Briggs K. Klein polyhedra // http: // www.btexact.com/people/bri-
ggsk2/klein-polyhedra.html

47. Делоне Б.Н., Фаддеев Д.К. Теория иррациональностей третьей степени. Труды МИ АН, т. 11, М.-Л.: АН СССР, 1947.

48. Делоне Б.Н. Петербургская школа теории чисел. М.-Л.: АН СССР, 1947.

49. Брюно А.Д., Парусников В.И. Многогранники модулей троек линейных форм // Препринт N 93. М.: ИПМ им. М.В.Келдыша, 2003. 20 с.

50. Pipping N. Zur Theorie der Diagonalkettenbrüche // Acta Acad. Aboens., 1924, B. 3. 22 S.

51. Нечаев В.И. Диагональная цепная дробь // Математ. Энциклоп. М.: Советская Энциклоп., 1979, т. 2, с. 123.

52. Hurwitz A. Ueber eine besondere Art der Kettenbruch-Entwiklung reller Grössen // Acta math., 1889, B. 12, S. 367-405.

53. Касселс Дж.В.С. Введение в теорию диофантовых приближений. М.: Изд-во иностр. лит., пер. с англ., 1961.

54. Брюно А.Д. К обобщениям цепной дроби // Препринт N 10. М.: ИПМ им. М.В.Келдыша, 2004. 31 с.

55. Perron O. Die Lehre von den Kettenbrüchen. Leipzig, Teubner, 1913.

 

Таблица 1. Вычисления для формы h2.

1

2

3

4

5

6

7

8

9

j

k

Bk

l1

l2

l3

L

*

D, б D,Mс

1

1

1,0,0

1.

1.

1.

1.

*

1.879

 

2

0,1,0

-1.879

1.534

.347

.347

 

2.226

 

3

0,0,1

-.653

-2.879

.532

.532

*

.347

 

4

1,0,1

.347

-1.879

1.532

(1)+(3)

 

1.304

2

1

1,0,0

1.

1.

1.

.468

*

.879

 

2

0,1,0

-1.879

1.534

.347

.347

 

1.532

 

4

1,0,1

.347

-.879

1.532

.532

*

.653

 

5

2,1,1

-.532

.655

2.879

(1)+(2)+(4)

 

.895

 

1

2

10

11

12

13

14

j

k

[(L)\tilde]

[[(L)\tilde]]

Nj

Nj*-1

L

1

1

 

 

1      0      0

1    0-1

.468

 

2

 

 

0      1      0

0      1      0

.347

 

3

 

 

1      0      1

0      0      1

.532

 

4

 

 

 

 

 

2

1

1.347

1

1      0      0

1-1    0

.347

 

2

1

1

1      1      1

0      1      0

1

 

4

1.532

1

0      0      1

0-1    1

.532

 

5

 

 

 

 

 

Таблица 2. Вычисления для формы h3.

1

2

3

4

5

6

7

8

9

j

k

Bk

l1

l2

l3

L

*

D, б D,Mi с

1

1

1,0,0

1.

1.

1.

1.

*

.631

 

2

0,1,0

2.481

-1.17

.689

.689

 

4.787

 

3

0,0,1

-5.156

-.369

.525

.525

*

4.156

 

4

1,0,1

-4.156

.631

1.525

(1)+(3)

 

5.244

 

5

1,0,-1

6.156

1.369

.475

(1)-(3)

 

 

 

6

1,1,0

3.481

-.17

1.689

(1)+(2)

 

2.903

2

1

1,0,0

1.

1.

1.

.451

*

.83

 

6

1,1,0

3.481

-.17

1.689

1

*

2.481

 

3

0,0,1

-5.156

-.369

.525

.762

 

3.311

 

7

2,1,0

4.481

.83

2.689

(1)+(6)

 

5.778

 

8

1,1,1

-1.675

-.539

2.214

(6)+(3)

 

2.727

3

1

1,0,0

1.

1.

1.

.592

*

.461

 

6

1,1,0

3.481

-.17

1.689

.312

 

1.136

 

8

1,1,1

-1.675

-.539

2.214

1

*

.675

 

9

2,1,1

-.675

.461

3.214

(1)+(8)

 

.622

 

10

2,2,1

1.806

-.709

3.903

(6)+(8)

 

 

 

1

2

10

11

12

13

14

j

k

[(L)\tilde]

[[(L)\tilde]]

Nj

N*-1j

L

1

1

1.451

1

1      0      0

1-1    0

.451

 

2

1

1

1      1      0

0      1      0

1.

 

3

.762

0

0      0      1

0      0      1

.762

 

4

 

 

 

 

 

 

5

 

 

 

 

 

 

6

 

 

 

 

 

2

1

.592

0

1      0      0

1      0      0

.592

 

6

1.312

1

0      1      0

0    1-1

.312

 

3

1

1

0      1      1

0      0      1

1

 

7

 

 

 

 

 

 

8

 

 

 

 

 

3

1

1

1

1      0      1

1      0      0

.592

 

6

.527

0

0      1      0

0      1      0

.526

 

8

1.689

1

0      0      1

-1  0      1

.689

 

9

 

 

 

 

 

 

10

 

 

 

 

 

 


File translated from TEX by TTH, version 3.40.
On 21 Dec 2004, 20:07.