Форум программистов, компьютерный форум CyberForum.ru

Вычисление определителя матрицы N*N - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.96
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
08.07.2011, 16:39     Вычисление определителя матрицы N*N #1
Дорогие форумчане, никто не подскажет как вычислить определитель квадратной матрицы, сам код не нужен, только алгоритм. Насколько я слышал есть два метода:
1) Через Гаусса
2) Через минор
Объясните мне если можно, спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2011, 16:39     Вычисление определителя матрицы N*N
Посмотрите здесь:

C++ Нахождение определителя матрицы через рекурсию
Функции (Расчет определителя матрицы) C++
Нахождение детерминанта (определителя) матрицы C++
C++ Нахождение определителя матрицы
Вычисление следа матрицы и определителя C++
Вычисление определителя Методом Гаусса C++
Оптимизация алгоритма вычисления определителя матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
406 / 499 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
08.07.2011, 16:53     Вычисление определителя матрицы N*N #2
викижопия

Добавлено через 3 минуты
гауссом труднее написать. вот через минор алгоритм довольно простой
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2011, 16:54     Вычисление определителя матрицы N*N #3
Через Гаусса: С помощью элементарных преобразований (умножение строки на число и прибавление к другой строке, перестановка строк) приводим матрицу к верхнему треугольному виду. Тогда определитель матрицы - произведение элементов на главной диагонали полученной треугольной матрицы.
Через миноры: Определитель порядка n раскладывается на произведение определителей порядка (n-1) и и коэффициентов, которыми являются элементы строки (столбца), по которой(му) раскладывались миноры. Полученные определители (n-1)-го порядка считаются рекурсивно.
Подробнее смотрим на вики.

Добавлено через 57 секунд
co6ak, зато Гаусс итеративный, а минор - рекурсивный. Мне Гаусс всегда больше нравился, да и пишется не сложно.
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
08.07.2011, 17:06  [ТС]     Вычисление определителя матрицы N*N #4
У Гаусса алгоритм такой же как и решение систем, я правильно понимаю, приведение к лестничному виду матрицы?
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2011, 17:09     Вычисление определителя матрицы N*N #5
CoVeReTeSS, да, я же написал, приведение к верхнему треугольному виду. При этом если две строки меняются местами, определитель меняет знак.
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
08.07.2011, 17:15  [ТС]     Вычисление определителя матрицы N*N #6
Это правило я помню, хотя и учусь в школе, а так спасибо, попробую реализовать, может потом выложу.
Azazzelo
 Аватар для Azazzelo
4 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 31
08.07.2011, 17:34     Вычисление определителя матрицы N*N #7
А метод треугольников не подходит? там по формуле типа:
|a11 a12 a13|
|a21 a22 a23| = a11∗a22∗a33+a12∗a23∗a31+a21∗a32∗a13−a13∗a22∗a31−a21∗a12∗a33−a23∗a32∗a11
|a31 a32 a33|
При переходе с главной на побочную диагональ знак меняется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2011, 17:43     Вычисление определителя матрицы N*N
Еще ссылки по теме:

C++ Считывание и запись определителя матрицы
Нахождение определителя матрицы методом гаусса C++
Код вычисления определителя матрицы до 10-го порядка C++
Формула для нахождения определителя матрицы C++
Вычисление определителя C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2011, 17:43     Вычисление определителя матрицы N*N #8
Azazzelo, это только для треугольной матрицы. Вручную для матрицы порядка больше 3 обычно считают разложением на миноры вплоть до миноров третьего порядка, определители которых уже считают по приведённой формуле.
Yandex
Объявления
08.07.2011, 17:43     Вычисление определителя матрицы N*N
Ответ Создать тему
Опции темы

Текущее время: 21:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru