Помогите, пожалуйста с решением проблемы. Дано задание: "написать программу, которая вычисляет определитель матрицы пятого порядка". Моих знаний, к сожалению недотаточно, чобы выполнить. Способы приведённые в FAQ не смогу объяснить преподавателю..
volvo
24.05.2008 17:56
И что, ты хочешь, чтобы мы придумали новый способ, который ты сможешь объяснить? Что именно непонятно?
Я спрашиваю, что непонятно... Код я помню... Ты пальцем покажи, в какой строке затрудняешься объяснить? И заодно скажи, ты сам алгоритм нахождения определителя методом "понижения порядка" знаешь?
AliKs
24.05.2008 18:20
Ну, допустим. Взять способ "Вычисление детерминанта (определителя) матрицы приведением к диагональному виду."
В массиве используется тип данных real. С одной стороны правильно, дабы появилась возможность работы с вещественными числами. Но, я, чтобы упростить себе задачу, решил работать только с целыми числами. Мне непонятно, для чего используется константа epsilon. И как реализовать этот алгоритм для работы только с целыми числами.
Добавлено через 1 мин.
Цитата(volvo @ 24.05.2008 15:17)
И заодно скажи, ты сам алгоритм нахождения определителя методом "понижения порядка" знаешь?
к сожалению, нет.
volvo
24.05.2008 19:25
Цитата
И как реализовать этот алгоритм для работы только с целыми числами.
Никак. По алгоритму требуется делить элементы строки на элемент главной диагонали, а частное - это всегда вещественный тип...
Цитата
Мне непонятно, для чего используется константа epsilon.
Для того, чтобы корректно проводить проверку на 0. С вещественными числами нельзя делать так:
if a[i, i] = 0 then ...
нужно сравнивать с очень маленьким числом, эту роль и выполняет epsilon, т.е., число, меньшее чем epsilon считается равным нулю...
AliKs
25.05.2008 0:12
попробовал просто использовать готовый вариант из FAQ: "Вычисление детерминанта (определителя) матрицы приведением к диагональному виду". Заменил только порядок: с 3 на 5.
По непонятным мне причинам, вне зависимости от вводимой матрицы, ответ (определитель) равен нулю. Пробовал вводить и с клавиатуры и random'ом.
ps: Ещё мне непонятно, что происходит внутри функции det. Т.е., какие логические и математические действия в ней выполняются.
volvo
25.05.2008 0:37
Цитата
По непонятным мне причинам, вне зависимости от вводимой матрицы, ответ (определитель) равен нулю.