Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ К вопросу о вычислении определителя

Автор: Ricko 20.08.2006 22:01

К вопросу о вычислении определителя матрицы методом приведения к диагональному виду.
Судя по всему, у данного метода есть какие-то серьезные ограничения применимости. Попытка применить данную функцию к матрице

Код

A[1,1]=2; A[1,2]=1; A[1,3]=3;
A[2,1]=4; A[2,2]=2; A[1,1]=1;
A[3,1]=2; A[3,2]=1; A[3,3]=2;


приводит к следующему результату, при i=2, a[2,2] модифицированной матрицы становится равноым нулю, а следовательно, согласно условнию
                                        for i:=1 to pred(n) do 
begin
if abs(a[i,i])<epsilon thenт
begin
det:=0.0;
exit
end;

определитель тоже становится равным нулю. "Ручной" подсчет определителя разложением по первой строке, а также для самопроверки методом суммирования произведений элементов ( т.н. "звездочка") дает значение равное -5. Буду признателен за любые коментарии/замечания по данному вопросу.

Автор: volvo 20.08.2006 22:18

Цитата
"Ручной" подсчет определителя разложением по первой строке, а также для самопроверки методом суммирования произведений элементов ( т.н. "звездочка") дает значение равное -5.

Правда?
|2  1  3|
|4 2 1| = 2*2*2 + 1*1*2 + 3*4*1 - 3*2*2 - 4*1*2 - 2*1*1 = 8 + 2 + 12 - 12 - 8 - 2 = 0
|2 1 2|

Что я неправильно делаю? smile.gif