|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : EinWill 2:5020/400 15 Oct 2001 17:38:33 To : Vladimir Ivanchenko Subject : Re: <none> -------------------------------------------------------------------------------- Мы к Вам, профессор "Vladimir Ivanchenko" <Vladimir.Ivanchenko@f975.n461.z2.fidonet.org>, и вот по какому делу: > Дайте плз алгоpитм на C++ быстpого вычисления опpеделителя матpицы большой > pазмеpности, а то мой пpостым pекуpентным pазложением по элементам пеpвой > стpоки на матpицах 12x12 ОЧЕЕHЬ тоpмозит.... ;( Чего-то ты людей путаешь. Либо "алгоритм", либо "на C++" А алогритм понятен: 1) Приводим матрицу к треугольному виду 2) Считаем произведение элементов, стоящих на диагонали -- это и есть детерминант Пояснения по "1)" Hадо при помощи операций "прибавление к строке другой строки, поэлементно домноженной на некоторый коэффициент" и "перемена строчек местами" получить из матрицы матрицу, ниже (или выше) главной диагонали которой будут стоять нули. Пример: 1 2 3 4 5 6 7 8 0 Умножаю первую строчку на 4 и отнимаю от второй: 1 2 3 0 -3 -6 7 8 0 Умножаю первую строчку на 7 и отнимаю от третьей: 1 2 3 0 -3 -6 0 -6 -21 Умножаю вторую строчку на 2 и отнимаю от третьей: 1 2 3 0 -3 -6 0 0 -9 => определитель матрицы = 27 Из примера, полагаю видна возможная реализация алгоритма: * цикл1 по строчкам (счетчик i) * если элемент i,i нуль, то * пытаемся среди строчек i+1,..n найти строчку k не содержащую 0 в i-м столбце если это удается, то меняем местами строчки k и i; продолжаем алгортим иначе - определитель матрицы = 0, выходим из цикла; конец работы алгоритма * конец (если элемент i,i нуль) * вложенный цикл2 от текущей строчки и до конца (счетчик j) * так как элемент i,i не нуль, то можем вычесть из j-й строчки i-ю так, чтобы в j-й строчке на i-м месте (в i-м столбце) оказался нуль. * конец (вложенный цикл2) * конец (цикл1) Удачи. EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/44213a241000.html, оценка из 5, голосов 10
|