4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
||||||
1 | ||||||
Нахождение определителя методом Гаусса29.05.2012, 16:24. Показов 6418. Ответов 16
Метки нет (Все метки)
Нужно написать макрос который сможет найти определитель матрицы (n*n) используя метод Гаусса (вводится матрица с листа экселя).
Вот процедура решения СЛАУ методом Гаусса, но как с её помощью найти определитель - не могу понять, буду благодарен за помощь.
0
|
29.05.2012, 16:24 | |
Ответы с готовыми решениями:
16
Макрос нахождения определителя матрицы методом Гаусса Вычисление определителя и нахождение обратной матрицы методом исключения Нахождение определителя главной диагонали Решение СЛАУ методом Гаусса |
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
|
29.05.2012, 16:54 [ТС] | 3 |
ну вот в том и проблема, что не знаю как привести матрицу к ступенчатому виду (Верхнетреугольная матрица)
0
|
призрак
|
|
29.05.2012, 17:05 | 4 |
можно было бы ответить вежливо: "с помощью метода Гаусса" (типо - тупой ответ на тупой вопрос),
можно было бы дать ссылку на страничку в той же википедию, с описанием алгоритма метода Гаусса и пошаговым примером (предположив, что Вам религия не позволяет искать информацию на форуме и в сети), можно было бы дать советы по циклам и операторам (когда Вы сделаете хоть какой-то, пусть и неправильный вариант)... ...но Вам ведь не это надо? ок. тогда ждите.
0
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
||||||
08.06.2012, 13:15 [ТС] | 5 | |||||
Написал код для нахождения определителя методом Гаусса - всё правильно считает, выводит в дебаг принт результат, но одна проблема - код не выдаёт отрицательный определитель, например для матрицы
2 1 1 4 3 0 -2 2 3 Определитель должен быть определитель 20 (это код делает правильно) А для матрицы 4 3 0 2 1 1 -2 2 3 Код должен выдавать определитель -20, а выдаёт снова 20. По методу Гаусса в формуле нужно возвести (-1) в степень p и умножить это на элементы главной диагонали(где p - это число перестановок строк) Проблема в том, что не могу понять, как задать это число перестановок строк. Вот сам код:
0
|
призрак
|
|
08.06.2012, 14:11 | 6 |
его не надо "задавать".
его надо подсчитать. p - это количество перестановок строк, выполненных в ходе работы алгоритма. перестановки в вашем коде выполняются в строках 11-13.
0
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
|
08.06.2012, 14:39 [ТС] | 7 |
Я понимаю, что там происходят перестановки, но все попытки сделать там подсчёт количества перестановок - оказались тщетны.
0
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
||||||
08.06.2012, 14:53 [ТС] | 9 | |||||
например
0
|
призрак
|
|||||||||||
08.06.2012, 15:01 | 10 | ||||||||||
я не разобрал в деталях Ваш код, увидел только, что там многолишнего.
к примеру, зачем Вам строки с 23 по 28? они нужны только для решения СЛАУ, для определителя - не нужны. но, в принципе, пусть остаются - пользы от них никакой, но и вреда немного по вопросу: попробуйте так: 1) объявите переменную уровня модуля (перед всеми процедурами)
проверяйте.
1
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
||||||
08.06.2012, 15:12 [ТС] | 11 | |||||
Проблема сохранилась, как выдавал определитель с плюсом - так и выдаёт, даже когда должен быть отрицальным
0
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
|
08.06.2012, 15:20 [ТС] | 13 |
0
|
4 / 4 / 0
Регистрация: 10.03.2012
Сообщений: 60
|
||||||
09.06.2012, 16:55 [ТС] | 16 | |||||
Опять проблема с этим же кодом - он через раз выдаёт - то 20, то -20, иногда угадывает, иногда не угадывает. Может где еще есть ошибки?
0
|
призрак
|
||||||
09.06.2012, 17:57 | 17 | |||||
таки пришлось
иначе - мне скоро гаусс будет сниться в обнимку с мейгасом гаусс будет материться как баварский сапожник, а мейгас грустно улыбаться и тихо спрашивать: "ну почему?" получилось так:
0
|
09.06.2012, 17:57 | |
09.06.2012, 17:57 | |
Помогаю со студенческими работами здесь
17
Обращение матрицы методом Гаусса Решить СЛАУ методом Гаусса Решение СЛАУ методом Гаусса Решение трехдиагональной матрицы методом Гаусса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |