Вычисление определителя методом Гаусса

      Комментарии к записи Вычисление определителя методом Гаусса отключены

Главная Форумы Программирование Алгоритмы и структуры данных Вычисление определителя методом Гаусса

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 4 мес., 3 нед. назад.

  • Автор
    Сообщения
  • #3415

    Определитель матрицы А размера n может быть вычислен по формуле:

    где α1, α2, ..., αn представляет собой перестановку чисел 1, 2, ..., n (номеров строк матрицы)
    Матрица сводится к треугольному виду, вычисляется произведение элементов на главной диагонали.

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

    В этой формуле M обозначает минор к элементу матрицы a1j, т.е. определитель матрицы, полученный вычеркиванием первой строки и j-того столбца.

    Вычисление определителя по этим формулам потребует порядка n! (факториал) операций, т.к. первый метод связан с генерацией перестановок, а второй — требует n раз вычислить определитель размерности (n-1) (рекурсивно). Более эффективным методом вычисления определителя является метод Гаусса, основанный на том доказанном факте, что определитель треугольной матрицы (в которой все элементы выше или ниже главной диагонали равны нулю) равен произведению элементов на диагонали. Для вычисления определителя исходная матрица эквивалентными преобразованиями приводится к треугольному виду. После чего, остается лишь вычислить произведение элементов диагонали.

    Алгоритм вычисления определителя методом Гаусса можно изобразить в виде блок-схемы:

    Кроме того, стоит учитывать, что при перестановке строк знак детерминанта меняется на противоположный.

    В качестве примера возьмем следующую матрицу:

    Домножим первую строку на -110/73 и прибавим ко второй строке:

    Домножим первую строку на -148/73 и прибавим к третьей строке:

    Вторую строку умножим на 4.19/5.45, сложим с третьей строкой:

    Матрица приведена к треугольному виду, для получения детерминанта остается перемножить элементы на главной диагонали:

    Обратите внимание, что в данном случае при приведении матрицы к треугольному виду не выполнялась перестановка строк (она не является обязательной если на главной диагонали не получаются нули).

Для ответа в этой теме необходимо авторизоваться.