Приведение матрицы к треугольному виду
Приведение матрицы к треугольному виду методом Гаусса и методом Барейса.
Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/1959/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).
Ниже два калькулятора для приведения матриц к треугольному, или ступенчатому, виду. Первый использует для этого метод Гаусса, второй — метод Барейса. Описание методов и немного теории — под калькуляторами.
Итак, для начала определимся с понятием треугольной, или ступенчатой матрицы:
Матрица имеет ступенчатый вид, если:
- Все нулевые строки матрицы стоят последними
- Первый ненулевой элемент строки всегда находится строго правее первого ненулевого элемента предыдущей строки
- Все элементы столбца под первым ненулевым элементом строки равны нулю (это впрочем следует из первых двух пунктов)
Пример ступенчатой матрицы:
1 0 2 5
0 3 0 0
0 0 0 4
Понятие треугольной матрицы более узкое, оно используется только для квадратных матриц (хотя я думаю, что это не строго), и формулируется проще: треугольная матрица — квадратная матрица, в которой все элементы ниже главной диагонали равны нулю. Строго говоря, это даже определение верхнетреугольной матрицы, но мы будем использовать его. Понятно, что такая верхнетреугольная матрица является также и ступенчатой.
Пример треугольной (верхнетреугольной) матрицы:
1 0 2 5
0 3 1 3
0 0 4 2
0 0 0 3
Кстати, определитель треугольной матрицы вычисляется простым перемножением ее диагональных элементов.
Чем же так интересны ступенчатые (и треугольные) матрицы, что к ним надо приводить все остальные? — спросите вы.
У них есть замечательной свойство, а именно, любую прямоугольную матрицу можно с помощью элементарных преобразований привести к ступенчатой форме.
Что же такое элементарные преобразования? — спросите вы.
Элементарными преобразованиями матрицы называют следующие операции:
- перестановка любых двух строк (столбцов) матрицы
- умножение любой строки (столбца) на призвольное, отличное от нуля, число
- сложение любой строки (столбца) с другой строкой (столбцом), умноженной (умноженным) на произвольное, отличное от нуля, число.
И что? — спросите вы.
А то, что элементарные преобразования матрицы сохраняют эквивалентность матриц. А если вспомнить, что системы линейных алгебраический уравнений (СЛАУ) записывают как раз в матричной форме, то это означает, что элементарные преобразования матрицы не изменяют множество решений системы линейных алгебраических уравнений, которую представляет эта матрица.
Приведя матрицу системы линейных уравнений AX=B к треугольной форме A'X = B', то есть, с соответствующими преобразованиями столбца B, можно найти решение этой системы так называемым «обратным ходом».
Чтобы было понятно, используем треугольную матрицу выше и перепишем систему уравнений в более привычной форме (столбец B я придумал сам):
Понятно, что сначала мы найдем , потом, подставив его в предыдущее уравнение, найдем и так далее — двигаясь от последнего уравнения к первому. Это и есть обратный ход.
Алгоритм приведения матрицы к ступенчатой форме с помощью элементарных преобразований называют методом Гаусса. Метод Гаусса — классический метод решения систем линейных алгебраических уравнений. Также его еще называют Гауссовым исключением, так как это метод последовательного исключения переменных, когда с помощью элементарных преобразований система уравнений приводится к эквивалентной системе ступенчатого (или треугольного) вида, из которого последовательно, начиная с последних (по номеру) переменных, находятся все остальные переменные.
Теперь про сам метод.
Собственно, как можно занулить переменную во втором уравнении? Вычтя из него первое, домноженное на коэффициент
Поясним на примере:
Зануляем во втором уравнении:
Во втором уравнении больше не содержится
Обобщенно алгоритм метода Гаусса можно представить следующим образом:
где N — число строк,
— i-тая строка,
— элемент, находящийся в i-той строке, j-том столбце
И все бы ничего, да и метод отличный, но. Дело все в делении на , присутствующем в формуле. Во-первых, если диагональный элемент будет равен нулю, то метод работать не будет. Во-вторых, в процессе вычисления будет накапливаться погрешность, и чем дальше, тем больше. Результат будет отличаться от точного.
Для уменьшения погрешности используют модификации метода Гаусса, которые основаны на том, что погрешность тем меньше, чем больше знаменатель дроби. Эти модификации — метод Гаусса с выбором максимума в столбце и метод Гаусса с выбором максимума по всей матрице. Как следует из названия, перед каждым шагом исключения переменной по столбцу (всей матрице) ищется элемент с максимальным значением и проводится перестановка строк (строк и столбцов), таким образом, чтобы он оказался на месте .
Но есть еще более радикальная модификация метода Гаусса, которая называется методом Барейса (Bareiss).
Как можно избавиться от деления? Например, умножив перед вычитанием строку на . Тогда вычитать надо будет строку , домноженную только на , без всякого деления.
.
Уже хорошо, но возникает проблема с ростом значений элементов матрицы в ходе вычисления.
Барейс предложил делить выражение выше на и показал, что если исходные элементы матрицы — целые числа, то результатом вычисления такого выражения тоже будет целое число. При этом принимается, что для нулевой строки .
Кстати, то, что в случае целочисленных элементов исходной матрицы алгоритм Барейса приводит к треугольной матрице с целочисленными элементами, то есть без накопления погрешности вычислений — довольно важное свойство с точки зрения машинной арифметики.
Алгоритм Барейса можно представить следующим образом:
Алгоритм, аналогично методу Гаусса, также можно улучшить поиском максимума по столбцу(всей матрице) и перестановкой соответствующих строк (строк и столбцов).
Похожие калькуляторы
- • Решение неоднородной системы линейных алгебраических уравнений матричным методом
- • Определитель матрицы методом Гаусса
- • Решение системы линейных алгебраических уравнений методом Гаусса
- • Метод Крамера с подробным решением
- • Решение системы линейных алгебраических уравнений методом Гаусса с сохранением дробей
- • Раздел: Математика ( 269 калькуляторов )
Комментарии