Линейная алгебра. Теоремы и алгоритмы. Яцкин Н.И. - 582 стр.

UptoLike

Составители: 

582 Коды Maple-процедур Прил. 1
print(`T=`,T);
AT:=A.T;
# Вычисление произведения
# матрицы квадратичной формы
# на матрицу перехода.
print(map(simplify,AT));
sys:={}:
# Начало формирования
# системы (множества) линейных уравнений
# для отыскания неопределенных элементов
# матрицы перехода.
for i from 1 to n do
for j from i+1 to n do
sys:=sys union {AT[i,j]=0};
# К (изначально пустому)
# множеству уравнений добавляется
# очередное, отвечающее
# наддиагональному элементу
# ранее вычисленного произведения матриц.
od;
od;
print(sys);
sol:=solve(sys);
# Вычисляется решение указанной системы.
print(sol);
# Далее в матрицу перехода
# заносятся вычисленные значения
# наддиагональных элементов.
for i from 1 to n do
for j from i+1 to n do
for k from 1 to nops(sol) do
if T[i,j]=lhs(sol[k]) then
T[i,j]:=rhs(sol[k]);
break;
fi;
od;
od;
od;
RETURN(B,T);
# Возвращаются: диагональная матрица,
# задающая диагональный вид данной
# квадратичной формы,
# и матрица перехода к диагональному виду.
end proc;
582                        Коды Maple-процедур   Прил. 1

print(`T=`,T);

AT:=A.T;
# Вычисление произведения
# матрицы квадратичной формы
# на матрицу перехода.

print(map(simplify,AT));

sys:={}:
# Начало формирования
# системы (множества) линейных уравнений
# для отыскания неопределенных элементов
# матрицы перехода.
for i from 1 to n do
  for j from i+1 to n do
    sys:=sys union {AT[i,j]=0};
    # К (изначально пустому)
    # множеству уравнений добавляется
    # очередное, отвечающее
    # наддиагональному элементу
    # ранее вычисленного произведения матриц.
  od;
od;

print(sys);

sol:=solve(sys);
# Вычисляется решение указанной системы.
print(sol);

# Далее в матрицу перехода
# заносятся вычисленные значения
# наддиагональных элементов.
for i from 1 to n do
  for j from i+1 to n do
    for k from 1 to nops(sol) do
      if T[i,j]=lhs(sol[k]) then
        T[i,j]:=rhs(sol[k]);
        break;
      fi;
    od;
  od;
od;

RETURN(B,T);
# Возвращаются: диагональная матрица,
# задающая диагональный вид данной
# квадратичной формы,
# и матрица перехода к диагональному виду.

end proc;