Jump to content

Алгоритм Барейсса

(Перенаправлено из алгоритма Барейсса )

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

Алгоритм был первоначально анонсирован Джеком Эдмондсом в 1966 году и опубликован в 1967 году. [1] Общий алгоритм Барейсса отличается от алгоритма Барейсса для матриц Теплица .

В некоторых испаноязычных странах этот алгоритм также известен как Bareiss-Montante в честь Рене Марио Монтанте Пардо , профессора Автономного университета Нуэво-Леона , в Мексике который популяризировал этот метод среди своих студентов.

Определение определителя имеет только операции умножения, сложения и вычитания. Очевидно, что определитель является целым, если все элементы матрицы целые. Однако фактическое вычисление определителя с использованием определения или формулы Лейбница непрактично, поскольку требует O( n! ) операций.

Метод исключения Гаусса имеет O( n 3 ) сложность, но вводит деление, что приводит к ошибкам округления при реализации с использованием чисел с плавающей запятой.

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

Барейсс поднимает вопрос о выполнении исключения, сохраняющего целые числа, сохраняя при этом величины промежуточных коэффициентов достаточно небольшими. Предлагаются два алгоритма: [2] [3]

  1. Алгоритм без деления — выполняет приведение матрицы к треугольной форме без операции деления.
  2. Алгоритм без дробей — использует деление, чтобы уменьшить промежуточные элементы, но из-за тождества Сильвестра преобразование по-прежнему сохраняет целые числа (остаток от деления равен нулю).

Для полноты картины Барейс также предлагает методы исключения без умножения, производящие дроби. [2]

Алгоритм

[ редактировать ]

Структура программы этого алгоритма представляет собой простой тройной цикл, как и в стандартном методе исключения Гаусса. Однако в этом случае матрица модифицируется так, что каждая запись M k,k содержит ведущий главный минор [ M ] k,k . Корректность алгоритма легко показать индукцией по k . [4]

  • Входные данные: M n -квадратная матрица.
    предполагая, что все его ведущие главные миноры [ M ] k,k не равны нулю.
  • Пусть M 0,0 = 1 (Примечание: M 0,0 — специальная переменная)
  • Для k от 1 до n −1:
    • Для i от k +1 до n :
      • Для j от k +1 до n :
        • Набор
  • Вывод: матрица изменяется на месте ,
    каждая запись M k,k содержит ведущий минор [ M ] k,k ,
    запись M n,n содержит определитель исходного M .

Если предположение о главных минорах окажется неверным, например, если M k −1, k −1 = 0 и некоторые M i , k −1 ≠ 0 ( i = k ,..., n ), то мы можем поменять местами k −1-ю строку с i -й строкой и поменяйте знак окончательного ответа.

Во время выполнения алгоритма Барейсса каждое вычисляемое целое число является определителем подматрицы входной матрицы. Это позволяет с помощью неравенства Адамара ограничить размер этих целых чисел. В противном случае алгоритм Барейсса можно рассматривать как вариант исключения Гаусса , требующий примерно такого же количества арифметических операций.

Отсюда следует, что для матрицы размера n × n максимального (абсолютного) значения 2 л для каждой записи алгоритм Барейсса выполняется за O( n 3 ) элементарные операции с O( n н /2  2 Нидерланды ) привязано к абсолютному значению необходимых промежуточных значений. Таким образом, его вычислительная сложность равна O( n 5 л 2 (журнал( п ) 2 + Л 2 )) при использовании элементарной арифметики или O( n 4 L (log( n ) + L ) log(log( n ) + L ))) с помощью быстрого умножения .

  1. ^ Миддеке, Дж.; Джеффри, диджей; Кутшан, К. (2020), «Общие факторы в разложении матриц без дробей», Mathematics in Computer Science , 15 (4): 589–608, arXiv : 2005.12380 , doi : 10.1007/s11786-020-00495-9
  2. ^ Jump up to: Перейти обратно: а б Барейсс, Эрвин Х. (1968), «Идентичность Сильвестра и многошаговое исключение Гаусса с сохранением целых чисел» (PDF) , Mathematics of Computation , 22 (103): 565–578, doi : 10.2307/2004533 , JSTOR   2004533
  3. ^ Барейсс, Эрвин Х. (1966), МНОГОШАГОВОЕ ГАУССОВОЕ УСТРАНЕНИЕ С СОХРАНЕНИЕМ ЦЕЛЫХ ЦЕЛ (PDF) . (Содержит более четкое представление о последовательности операций)
  4. ^ Яп, Чи Кенг (2000), Фундаментальные проблемы алгоритмической алгебры , Oxford University Press
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b6ad9b740297400e3ade1b092fe7a50e__1716584400
URL1:https://arc.ask3.ru/arc/aa/b6/0e/b6ad9b740297400e3ade1b092fe7a50e.html
Заголовок, (Title) документа по адресу, URL1:
Bareiss algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)