В математике нормальная форма Смита (иногда сокращенно SNF [1] ) — это нормальная форма , которая может быть определена для любой матрицы (не обязательно квадратной ) с элементами в главной идеальной области (PID). Нормальная форма Смита матрицы является диагональной и может быть получена из исходной матрицы путем умножения слева и справа на обратимые квадратные матрицы. В частности, целые числа являются PID, поэтому всегда можно вычислить нормальную форму Смита целочисленной матрицы . Нормальная форма Смита очень полезна для работы с конечно порожденными модулями над PID и, в частности, для вывода структуры фактора свободного модуля . Она названа в честь ирландского математика Генри Джона Стивена Смита .
Пусть будет ненулевой матрицей над областью главных идеалов . Существуют обратимые и -матрицы (с элементами в ), такие, что произведение равно
и диагональные элементы удовлетворяют для всех . Это нормальная форма Смита матрицы . Элементы уникальны с точностью до умножения на единицу и называются элементарными делителями , инвариантами или инвариантными множителями . Их можно вычислить (с точностью до умножения на единицу) как
где (называемый i - м делителем определителя ) равен наибольшему общему делителю определителей всех миноров матрицы и .
Пример: Для матрицы с и .
Первая цель — найти обратимые квадратные матрицы и такие, что произведение будет диагональным. Это самая сложная часть алгоритма. Как только диагональ достигнута, становится относительно легко привести матрицу к нормальной форме Смита. Выражаясь более абстрактно, цель — показать, что, думая о как о отображении из (свободного -модуля ранга ) в (свободный -модуль ранга ), существуют изоморфизмы и такие, что имеют простую форму диагональной матрицы. Матрицы и можно найти, начав с единичных матриц соответствующего размера и изменяя каждый раз, когда в алгоритме выполняется операция со строкой, соответствующую операцию со столбцом (например, если строка добавляется к строке , то столбец следует вычесть из столбца , чтобы сохранить инвариант произведения), и аналогичным образом изменяя для каждой выполняемой операции со столбцом. Поскольку операции со строками являются левыми умножениями, а операции со столбцами являются правыми умножениями, это сохраняет инвариант, где обозначают текущие значения, а обозначают исходную матрицу; В конечном итоге матрицы в этом инварианте становятся диагональными. Выполняются только обратимые операции строк и столбцов, что гарантирует, что и остаются обратимыми матрицами.
Для запишите число простых множителей (они существуют и уникальны, поскольку любой PID также является уникальной областью факторизации ). В частности, также является областью Безу , поэтому это область gcd , и gcd любых двух элементов удовлетворяет тождеству Безу .
Чтобы привести матрицу к нормальной форме Смита, можно многократно применить следующее, где циклы от 1 до .
Выберите наименьший индекс столбца с ненулевым значением, начав поиск с индекса столбца , если .
Мы хотим иметь ; если это так, то этот шаг завершен, в противном случае по предположению существует некоторое с , и мы можем поменять строки и , получив тем самым .
Выбранная нами точка опоры теперь находится в положении .
Если существует запись в позиции ( k , jt ) такая, что , то, допуская , мы знаем по свойству Безу , что существуют σ, τ в R такие, что
Путем левого умножения с соответствующей обратимой матрицей L можно добиться того, что строка t матричного произведения будет суммой σ, умноженной на исходную строку t, и τ, умноженной на исходную строку k , что строка k произведения будет другой линейной комбинацией этих исходных строк, и что все остальные строки не изменятся. Явно, если σ и τ удовлетворяют приведенному выше уравнению, то для и (какие деления возможны по определению β) имеем
так что матрица
обратим, с обратным
Теперь L можно получить, подгоняя строки и столбцы t и k единичной матрицы. По построению матрица, полученная после левого умножения на L, имеет элемент β в позиции ( t , j t ) (и из-за нашего выбора α и γ она также имеет элемент 0 в позиции ( k , j t ), что полезно, хотя и не существенно для алгоритма). Этот новый элемент β делит элемент , который был там раньше, и, в частности , ; поэтому повторение этих шагов должно в конечном итоге закончиться. В итоге получается матрица, имеющая элемент в позиции ( t , j t ), который делит все элементы в столбце j t .
Наконец, добавляя соответствующие кратные строки t , можно добиться того, что все записи в столбце j t , за исключением той, что находится в позиции ( t , j t ), будут нулевыми. Этого можно добиться путем умножения слева с соответствующей матрицей. Однако, чтобы сделать матрицу полностью диагональной, нам нужно также исключить ненулевые записи в строке позиции ( t , j t ). Этого можно добиться, повторив шаги в Шаге II для столбцов вместо строк и используя умножение справа путем транспонирования полученной матрицы L . В общем случае это приведет к тому, что нулевые записи из предыдущего применения Шага III снова станут ненулевыми.
Однако обратите внимание, что каждое применение шага II для строк или столбцов должно продолжать уменьшать значение , и поэтому процесс должен в конечном итоге остановиться после некоторого количества итераций, что приведет к матрице, где запись в позиции ( t , j t ) является единственной ненулевой записью как в ее строке, так и в столбце.
На этом этапе только блок A справа внизу от ( t , j t ) необходимо диагонализировать, и концептуально алгоритм можно применять рекурсивно, рассматривая этот блок как отдельную матрицу. Другими словами, мы можем увеличить t на единицу и вернуться к шагу I.
Применяя описанные выше шаги к оставшимся ненулевым столбцам результирующей матрицы (если таковые имеются), мы получаем -матрицу с индексами столбцов , где . Элементы матрицы ненулевые, а каждый второй элемент равен нулю.
Теперь мы можем переместить нулевые столбцы этой матрицы вправо, так чтобы ненулевые элементы оказались на позициях для . Для краткости, установить для элемента в позиции .
Условие делимости диагональных записей может не выполняться. Для любого индекса , для которого , можно исправить этот недостаток операциями над строками и столбцами и только: сначала добавить столбец к столбцу , чтобы получить запись в столбце i, не нарушая запись в позиции , а затем применить операцию строки, чтобы сделать запись в позиции равной , как в Шаге II; наконец, продолжить, как в Шаге III, чтобы снова сделать матрицу диагональной. Поскольку новая запись в позиции является линейной комбинацией исходной , она делится на β.
Значение не изменяется при выполнении вышеуказанной операции (это δ определителя верхней подматрицы), следовательно, эта операция уменьшает (перемещая простые множители вправо) значение
Таким образом, после конечного числа применений этой операции дальнейшее применение невозможно, что означает, что мы получили желаемое.
Поскольку все манипуляции строками и столбцами, участвующие в процессе, обратимы, это показывает, что существуют обратимые и -матрицы S, T , так что произведение SAT удовлетворяет определению нормальной формы Смита. В частности, это показывает, что нормальная форма Смита существует, что предполагалось без доказательства в определении.
Нормальная форма Смита полезна для вычисления гомологии цепного комплекса , когда цепные модули цепного комплекса конечно порождены . Например, в топологии ее можно использовать для вычисления гомологии конечного симплициального комплекса или комплекса CW над целыми числами, поскольку граничные отображения в таком комплексе являются просто целочисленными матрицами. Ее также можно использовать для определения инвариантных множителей , которые встречаются в структурной теореме для конечно порожденных модулей над областью главных идеалов , которая включает в себя фундаментальную теорему о конечно порожденных абелевых группах .
Нормальная форма Смита также используется в теории управления для вычисления нулей передачи и блокировки матрицы передаточной функции . [2]
В качестве примера найдем нормальную форму Смита следующей матрицы над целыми числами.
Следующие матрицы представляют собой промежуточные шаги при применении алгоритма к вышеуказанной матрице.
Итак, нормальная форма Смита:
а инвариантные множители — 2, 2 и 156.
Нормальная форма Смита матрицы A размером N на N может быть вычислена за время [3] . Если матрица разреженная , вычисления обычно происходят намного быстрее.
Нормальная форма Смита может использоваться для определения того, подобны ли матрицы с записями в общем поле. В частности, две матрицы A и B подобны тогда и только тогда , когда характеристические матрицы и имеют одинаковую нормальную форму Смита (работая в PID ).
Например, с
A и B подобны, поскольку нормальная форма Смита их характеристических матриц совпадает, но не подобны C, поскольку нормальная форма Смита характеристических матриц не совпадает.