Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Опять к вопросу об алгоритме [D6, WinME]


Pinochet ©   (2002-04-06 10:14:00) 

На прошлых выходных я уже задавал этот вопрос:
мне нужно написать алгоритм вычисления детерминанта для данной матрицы(матрица может быть любого порядка, правило треугольника не поможет). Тогда мне предложили использовать метод Гаусса.
Порывшись в литературе я нашел, что метод Гаусса используется для решения систем линейных уравнений, и его смысл заключается в приведении матрицы коэффициентов к треугольному виду. Причем здесь вычесление детерминанта!?
...Или я в чем-то ошибаюсь!


Pat   (2002-04-06 10:20:00) [1]

Когда-то писал на Паскале...разберешься...

function opr:real;
var
l,count,y,z,i,j,n1:integer;
x,k,p:real;

begin {function opr}

n1:=n;

p:=1;count:=0;
while n>1 do
begin{while}

if a[1,1]=0 then
begin
p:=-p;
for j:=1 to n do
if a[1,j]=0 then inc(count)
else count:=0; { исключение }
if count=n then { деления }
begin { на 0 }
n:=1;
a[1,1]:=0;
break; {выход из while"a}
end;

for j:=n downto 2 do
if a[1,j]<>0 then l:=j;
for i:=1 to n do
begin
x:=a[i,l];
a[i,l]:=a[i,1];
a[i,1]:=x;
end;
end;

p:=p*a[1,1];
x:=a[1,1]; {элемент [1,1]=1}
for i:=1 to n do
a[i,1]:=a[i,1]/x;

for j:=2 to n do {получаем 0 и 1}
begin
k:=a[1,j];
for i:=1 to n do
a[i,j]:=a[i,j]-a[i,1]*k;
end;

for i:=2 to n do {понижение порядка}
for j:=2 to n do
a[i-1,j-1]:=a[i,j];

dec(n);


end;{while}

opr:=p*a[1,1]; {определитель}

n:=n1;

for i:=1 to n do
for j:=1 to n do
a[i,j]:=b[i,j];

end;{function opr}


MBo   (2002-04-06 10:19:00) [2]

а приведение к треугольному виду позволяет вычислить определитель как произведение элементов главной диагонали, т.к. все остальные слагаемые будут равны 0


MBo   (2002-04-06 10:17:00) [3]

http://www.srcc.msu.su/num_anal/lib_na/cat/cat5.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо