Понижение порядка определителя

Пишу код для расчёта определителя матрицы любого порядка, и у меня вопрос для тех кто шарит по матрицам: Есть т. н. "матрица знаков", от неё зависит знак, на который мы умножим определитель матрицы порядком меньше. Но в примере полноценно объясняется как это делается только для матрицы 3го порядка (читал , всё понятно, кроме этого момента) . В этом случае есть только один цикл понижения порядка матрицы. Допустим у меня будет матрица 5го порядка. Я вычёркиваю строку и столбец, и ищу определитель матрицы 4го порядка, затем умножаю его на элемент, который находится на пересечении вычеркнутой строки и столбца. Но, в свою очередь, чтобы найти определитель матрицы 3го порядка, мне нужно вычеркнуть строку и столбец уже матрицы 4го порядка, и тоже умножить на элемент, лежащий на пересечении. КАКУЮ "МАТРИЦУ ЗНАКОВ" МНЕ В ЭТОМ СЛУЧАЕ БРАТЬ: ИЗНАЧАЛЬНУЮ (5го ПОРЯДКА) ИЛИ ТУ, ИЗ КОТОРОЙ Я ВЫЧЕРКИВАЛ СТРОКУ И СТОЛБЕЦ (4го ПОРЯДКА) ?
4 года назад от LayneMcGaw30

3 Ответы

0 голосов
Балуйся, но слишком сильно не заигрывайся - помни, бывают и другие методы вычисления определителя, пошустре (и даже при этом вычислительно устойчивые) .

Касаемо знаков - см. определение алгебраического дополнения, там все знаки и зарыты.
math. semestr. ru/matrix/cofactors. php
4 года назад от GeorgettaMcC
0 голосов
считать определитель разложением по строке - это путь в никуда, потому что вычислительная сложность O (n^3) .
для вычисления определителей произвольных матриц используются другие алгоритмы, например, метод Гаусса.

если же так прям хочется разложение по строке, "матрица знаков", имхо, не поможет, ибо постоянно меняется.
4 года назад от Марина Соловьева
0 голосов
Знаки просто чередуются. Или посчитай по формуле (-1) ^k, где k - порядковый номер.
А расчёт определителей ПРОЩЕ (но не оптимально) программировать рекурсивно.

k=i*n+j, где i и j - номера строки и столбца, если их нумеровать не с единицы, а с нуля;
n - число столбцов
4 года назад от Armenian Power

Связанные вопросы