Помогите, пожалуйста с решением проблемы. Дано задание: "написать программу, которая вычисляет определитель матрицы пятого порядка". Моих знаний, к сожалению недотаточно, чобы выполнить. Способы приведённые в FAQ не смогу объяснить преподавателю..
И что, ты хочешь, чтобы мы придумали новый способ, который ты сможешь объяснить? Что именно непонятно?
http://volvo71.narod.ru/faq_folder/matrices.htm#mx_det
Я спрашиваю, что непонятно... Код я помню... Ты пальцем покажи, в какой строке затрудняешься объяснить? И заодно скажи, ты сам алгоритм нахождения определителя методом "понижения порядка" знаешь?
Ну, допустим. Взять способ "Вычисление детерминанта (определителя) матрицы
приведением к диагональному виду."
В массиве используется тип данных real. С одной стороны правильно, дабы появилась возможность работы с вещественными числами. Но, я, чтобы упростить себе задачу, решил работать только с целыми числами.
Мне непонятно, для чего используется константа epsilon. И как реализовать этот алгоритм для работы только с целыми числами.
Добавлено через 1 мин.
if a[i, i] = 0 then ...
попробовал просто использовать готовый вариант из FAQ: "Вычисление детерминанта (определителя) матрицы
приведением к диагональному виду". Заменил только порядок: с 3 на 5.
По непонятным мне причинам, вне зависимости от вводимой матрицы, ответ (определитель) равен нулю. Пробовал вводить и с клавиатуры и random'ом.
ps: Ещё мне непонятно, что происходит внутри функции det. Т.е., какие логические и математические действия в ней выполняются.
const, и maxN = 5, в результате - получил правильный ответ: 52. Что я делаю не так?
a: matrix = (
(1, 2, 3, 4, 5),
(2, 3, 7, 10, 13),
(3, 5, 11, 16, 21),
(2, -7, 7, 7, 2),
(1, 4, 5, 3, 10)
);
Determ := Det(a, 5);