Метод Квадратного Корня

  • Автор темы blackcat
  • Дата начала
B

blackcat

Гость
#1
Разбираю чужой код. суть задачи - решение слау методом квадратного корня для ленточных матриц. в коде существует процедура,которая,насколько я поняла, умножает матрицу саму на себя для избежания выхода в комплексную область при извлечении корней. но матрица перемножается каким-то странным образом. может кто знает,что это за метод? сама процедура ниже

Код:
MatrixB = array[1..maxn, 1..maxl] of real;

Procedure TFormMain.MultiB (n,l: integer; Var B:MatrixB);
var i,j,k,u:integer;
temp: MatrixB;
begin
for i:=1 to maxn do
for j:=1 to maxl do
temp[i,j] := 0;

for i:=1 to n do
for j:=1 to l do
temp[i,1] := temp[i,1] + B[i,j]*B[i,j];
for i:=1 to n do
for j:=2 to l do
begin
u := 1;
for k:=j to l do
begin
temp[i,j] := temp[i,j] + B[i,k]*B[j+i-1,u];
inc(u);
end;
end;
for i:=1 to n do
for j:=1 to l do
B[i,j] := temp[i,j]
end;