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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.96
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
#1

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

08.07.2011, 16:39. Просмотров 7036. Ответов 7
Метки нет (Все метки)

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

Вычисление следа матрицы и определителя - C++
воббщем надо реализовать вычисление следа матрицы и определителя алгоритм для следа : #include <stdio.h> typedef int *pInt; ...

Функция класса(вычисление определителя произвольной матрицы) работает не правильно(постоянно определитель 0) - C++
void deterMatr(matr matrx) { if (matrx.rows == matrx.columns){ //приведение матрицы к треугольному виду int maxl, k; ...

Вычисление определителя - C++
Здравствуйте, дорогие форумчане! Помогите, пожалуйста, отладить программу вычисления определителя на Cи++ Текст программы: ...

Вычисление определителя Методом Гаусса - C++
Как сделать обмен строк в этом методе? #include <stdio.h> #include <conio.h> #include <cstdlib> #include <iostream> #include...

Нахождение определителя матрицы - C++
Здравствуйте, помогите пожалуйста дописать. Нужно было реализовать в виде модуля, программку, которая выполняет действия над квадратными...

Считывание и запись определителя матрицы - C++
в файле записан массив , его надо считать и найти его определитель, и записать его в другой файл. программа не хочет считывать данные. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
08.07.2011, 16:53 #2
викижопия

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

Добавлено через 57 секунд
co6ak, зато Гаусс итеративный, а минор - рекурсивный. Мне Гаусс всегда больше нравился, да и пишется не сложно.
1
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
08.07.2011, 17:06  [ТС] #4
У Гаусса алгоритм такой же как и решение систем, я правильно понимаю, приведение к лестничному виду матрицы?
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.07.2011, 17:09 #5
CoVeReTeSS, да, я же написал, приведение к верхнему треугольному виду. При этом если две строки меняются местами, определитель меняет знак.
0
CoVeReTeSS
3 / 3 / 0
Регистрация: 24.03.2011
Сообщений: 99
08.07.2011, 17:15  [ТС] #6
Это правило я помню, хотя и учусь в школе, а так спасибо, попробую реализовать, может потом выложу.
0
Azazzelo
4 / 4 / 1
Регистрация: 14.11.2010
Сообщений: 31
08.07.2011, 17:34 #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|
При переходе с главной на побочную диагональ знак меняется.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.07.2011, 17:43 #8
Azazzelo, это только для треугольной матрицы. Вручную для матрицы порядка больше 3 обычно считают разложением на миноры вплоть до миноров третьего порядка, определители которых уже считают по приведённой формуле.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2011, 17:43
Привет! Вот еще темы с ответами:

Функции (Расчет определителя матрицы) - C++
Задание: Ввести с клавиатуры матрицу 4*4 и подсчитать ее определитель. Процедуру подсчета определителя оформить в виде функции. во я...

Нахождение детерминанта (определителя) матрицы - C++
У меня вот код есть для нахождения детерминанта (определителя) матрицы 5х5 :) а как сделать, чтобы я мог сам ввести данные матрицы? ...

Нахождение определителя матрицы через рекурсию - C++
Помогите, пожалуйста, реализовать на с программу нахождения определителя матрицы.

Рекурсивный метод вычисления определителя матрицы - C++
суть в том, что не получается реализовать рекурсивный метод Determinant в классе Matrix. #include <iostream> using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.07.2011, 17:43
Ответ Создать тему
Опции темы

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