Вычислить определитель матрицы 5-го порядка |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Вычислить определитель матрицы 5-го порядка |
AliKs |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Помогите, пожалуйста с решением проблемы. Дано задание: "написать программу, которая вычисляет определитель матрицы пятого порядка". Моих знаний, к сожалению недотаточно, чобы выполнить. Способы приведённые в FAQ не смогу объяснить преподавателю..
|
volvo |
Сообщение
#2
|
Гость |
И что, ты хочешь, чтобы мы придумали новый способ, который ты сможешь объяснить? Что именно непонятно?
|
habi |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 44 Пол: Мужской Реальное имя: Артём Репутация: 0 |
|
volvo |
Сообщение
#4
|
Гость |
Я спрашиваю, что непонятно... Код я помню... Ты пальцем покажи, в какой строке затрудняешься объяснить? И заодно скажи, ты сам алгоритм нахождения определителя методом "понижения порядка" знаешь?
|
AliKs |
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Ну, допустим. Взять способ "Вычисление детерминанта (определителя) матрицы
приведением к диагональному виду." В массиве используется тип данных real. С одной стороны правильно, дабы появилась возможность работы с вещественными числами. Но, я, чтобы упростить себе задачу, решил работать только с целыми числами. Мне непонятно, для чего используется константа epsilon. И как реализовать этот алгоритм для работы только с целыми числами. Добавлено через 1 мин. И заодно скажи, ты сам алгоритм нахождения определителя методом "понижения порядка" знаешь? к сожалению, нет. Сообщение отредактировано: AliKs - |
volvo |
Сообщение
#6
|
Гость |
Цитата И как реализовать этот алгоритм для работы только с целыми числами. Никак. По алгоритму требуется делить элементы строки на элемент главной диагонали, а частное - это всегда вещественный тип...Цитата Мне непонятно, для чего используется константа epsilon. Для того, чтобы корректно проводить проверку на 0. С вещественными числами нельзя делать так:if a[i, i] = 0 then ... нужно сравнивать с очень маленьким числом, эту роль и выполняет epsilon, т.е., число, меньшее чем epsilon считается равным нулю... |
AliKs |
Сообщение
#7
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
попробовал просто использовать готовый вариант из FAQ: "Вычисление детерминанта (определителя) матрицы
приведением к диагональному виду". Заменил только порядок: с 3 на 5. По непонятным мне причинам, вне зависимости от вводимой матрицы, ответ (определитель) равен нулю. Пробовал вводить и с клавиатуры и random'ом. ps: Ещё мне непонятно, что происходит внутри функции det. Т.е., какие логические и математические действия в ней выполняются. |
volvo |
Сообщение
#8
|
Гость |
Цитата По непонятным мне причинам, вне зависимости от вводимой матрицы, ответ (определитель) равен нулю. Задал матрицу вот так: const, и maxN = 5, в результате - получил правильный ответ: 52. Что я делаю не так? Может, ты забыл в вызове Det заменить? Determ := Det(a, 5); Цитата Ещё мне непонятно, что происходит внутри функции det. Т.е., какие логические и математические действия в ней выполняются. Матрица приводится к диагональному виду. Алгоритм Гаусса см. здесь: Вики: Алгоритм Гаусса |
Текстовая версия | 23.12.2024 20:43 |