Коллекция алгоритмов

Вычисление обратной матрицы размерности n
    Пусть имеется матрица obr размерности kol. Для нахождения матрицы, обратной obr, требуется выполнить следующий код:
var k, i, j: integer;
b: array[0..300, 0..300] of real;
begin
 for k:=0 to kol - 1 do
 begin
      for i:=0 to kol - 1 do
       for j:=0 to kol - 1 do
       begin
            if (i=k) and (j=k) then
               b[i,j] := 1/obr[i,j];
               if (i=k) and (j<>k) then
                  b[i,j] := -obr[i,j]/obr[k,k];
               if (i<>k) and (j=k) then
                  b[i,j] := obr[i,k]/obr[k,k];
               if (i<>k) and (j<>k) then
                  b[i,j] := obr[i,j] - obr[k,j] * obr[i,k]/obr[k,k];
       end;
      for i:= 0 to kol - 1 do
       for j:= 0 to kol - 1 do obr[i, j]:= b[i, j];
 end;
end; 
 
	  
    В результате матрица obr и есть искомая обратная матрица.
    Ниже Вашему вниманию представлены блок-схема нерекурсивного алгоритма нахождения обратной матрицы размерности n, а также исходники программы, реализующей данный алгоритм.


Блок-схема алгоритма нахождения обратной матрицы размерности n
Скачать пример программы на Delphi7

Рейтинг@Mail.ru Rambler's Top100
Сайт управляется системой uCoz