Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 <без заголовка>   Vladimir Ivanchenko   13 Oct 2001 23:35:26 
 <без заголовка>   Vladimir Siltchenko   14 Oct 2001 23:33:20 
 <без заголовка>   Boris Sivko   15 Oct 2001 23:53:18 
 <без заголовка>   Alexander Hritonenkov   16 Oct 2001 11:34:26 
 <none>   Alex Astafiev   16 Oct 2001 21:06:42 
 <none>   Evgenij Masherov   18 Oct 2001 09:23:35 
 <без заголовка>   Andrew Simontsev   15 Oct 2001 10:58:17 
 <none>   Evgenij Masherov   15 Oct 2001 09:52:18 
 Re: <none>   EinWill   15 Oct 2001 17:38:33 
 <none>   Aleksey Loginov   16 Oct 2001 13:02:05 
 <none>   Andrew Plyako   21 Oct 2001 01:04:02 
 <none>   Aleksey Loginov   21 Oct 2001 10:47:27 
 <none>   Vladimir Ivanchenko   16 Oct 2001 23:59:56 
 Re: <none>   Serge Kanilo   17 Oct 2001 22:21:13 
Архивное /ru.algorithms/44213a241000.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional