Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в геометрию чисел / Введение в геометрию чисел.doc
Скачиваний:
148
Добавлен:
27.03.2015
Размер:
1.95 Mб
Скачать
    1. Решение системы линейных уравнений в целых числах.

Одним из самых широко применяемых методов решения систем линейных уравнений является метод Гаусса. Однако, при бездумном применении этого метода может наблюдаться экспоненциальный рост длины коэффициентов. Ниже будет разобран вариант метода Гаусса, в котором длины промежуточных результатов ограничены полиномом от длины входной информации (в предположении целочисленности входа). Вторым достоинством предложенного подхода является сохранение целочисленности коэффициентов на протяжении всего метода.

Напомним метод Гаусса решения системы линейных уравнений Ах=b. Для простоты, будем считать А невырожденной матрицей с целочисленными коэффициентами, и все ее угловые миноры отличны от нуля. Положим ,. Матрицу коэффициентов при неизвестных наk-ом шаге обозначим через , правые части уравнений — через, матрицу— через. Наk-1 шаге система уравнений имеет вид:

Из предложения о невырожденности угловых миноров матрицы А следует неравенство .

Итерация метода Гаусса заключается в исключении из всех уравнений, кроме k-го, переменной . Для этого изi-го уравнения, где i=1,…,n, i≠k, вычтем k-ое уравнение, умноженное на величину . Таким образом,,и,при. Или, что тоже самое, и.

Выразим элементы через элементы исходной системы. Для этого обозначим черезминор матрицы, расположенный на пересечении строки столбцов. Наk-ом шаге ко всем строкам матрицы прибавлялисьk-ая строка с некоторыми коэффициентами. Следовательно, любой минор, матрицы , содержащийk-ую строку, не изменяется на k-ой итерации алгоритма. Таким образом, каждый минор матрицы , содержащий первыеk-строк, совпадает с соответствующим минором матрицы . Тем самым установлены равенства,, приi,j>k, и при,j>k. Матрица - диагональная,- верхнетреугольная,- отличается от диагональной матрицы толькоi-ым столбцом. Во всех случаях, их определитель равен произведению элементов, расположенных на главной диагонали. Тем самым установлены тождества ,приi,j>k, и при,j>k. Все элементы матрицы , расположенные в первыхk столбцах матрицы и не лежащие на главной диагонали, равны нулю. Следовательно, элементы матрицы , расположенные в первыхk столбцах, на k-ой итерации метода Гаусса не изменятся. В частности, , где, и. Подставим полученное равенство в установленные ранее тождества, выведем равенства,приi,j>k, и при,j>k. Преобразуем полученные равенства к виду ,приi,j>k, и при,j>k.

Для оценки длин промежуточных вычислений нам понадобится неравенство Адамара для определителя матрицы

Заметим, что из полученных формул следует, что все промежуточные величины в методе Гаусса, ограничены сверху полиномом от длины входной информации. Пусть элементы - целые числа, не превосходящие по абсолютной величине α. Тогда любой минорk-го порядка этой матрицы, по неравенству Адамара, не превосходит . Таким образом, числитель и знаменатель элементовне превосходит. Отметим, эта оценка верна, если числитель и знаменатель каждого рационального числа, получаемого в ходе алгоритма, сокращать на их наибольший делитель.

      1. Полностью целочисленный вариант метода Гаусса.

В методе Гаусса можно обойтись и без использования рациональной арифметики, при этом уменьшается верхняя оценка трудоёмкости алгоритма за счёт отказа от операции взятия наибольшего общего делителя. Отметим, что общий знаменатель i-ой строки матрицы равен при i>k и при ik. Помножив каждую строку матрицы на ее общий знаменатель, получим целочисленную матрицу .

Выведем формулы пересчета от матрицы к. Величинаравнаприi>k, приi=k, и приi<k. Отметим, что . По формулам пересчета от матрицыквыводим,приi>k, приi<k, и . Подставим в эти формулы вместо элементов матрицыих выражение через элементы матрицыполучим равенствапри, и.

Из вышесказанного вытекает следующий вариант метода Гаусса, приводящий систему линейных уравнений Ax=b (m-уравненийn-неизвестных) к ступенчатому виду. В приведённом алгоритме все операции над строками матрицыA понимаются как операции со строками расширенной матрицы (A,b).

Алгоритм 4.4 Целочисленный вариант метода Гаусса.

  1. Положим d=1, k=1, i=1, j=1.

  2. Если i>m или j>n, то конец, иначе перейдём на следующий шаг.

  3. Если , то перейдём на шаг 5, иначе на следующий шаг.

  4. Если в j-ом столбце все элементы, расположенные в строчках с номерами i+1,…,m, равны 0, то увеличим j на 1 и вернёмся на шаг 2. В противном случае найдём номер s, что (s>i). Переставим строки s и i. Перейдём на следующий шаг.

  5. Вычтем из каждой строки s (), умноженной на, строку с номеромi, предварительно умноженную на . Каждый элемент полученной строки поделим наd.

  6. Положим . Увеличимi,j,k на 1, вернёмся на шаг 2

Оценим трудоёмкость алгоритма при предположении целочисленности входной информации, причем наибольший по абсолютной величине из элементов матрицы (A,b) не превосходит . Ранг матрицы(A,b) положим равным r.

Количество арифметических операций, совершаемых методом Гаусса, не превосходит . Все промежуточные величины в методе Гаусса, суть миноры матрицы(A,b), которые не превосходят . Умножив количество арифметических операцийна максимальную трудоёмкость операции (считаем, что трудоёмкость деления оценивается сверху той же величиной, что и трудоёмкость умножения, а умножение вычисляем "столбиком"), которая не превосходит, получим оценку трудоёмкости алгоритма.

Отметим, что после работы алгоритма, в k находится ранг матрицы A, а в d будет храниться определитель какого-то ненулевого минора наибольшего размера.

Если матрица A - квадратная и невырожденная, и в качестве b взять столбцы единичной матрицы, то в качестве решения будут получаться столбцы присоединенной матрицы. Таким образом, трудоемкость нахождения обратной, присоединенной матрицы и определителя равна .