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

UptoLike

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

546 Коды Maple-процедур Прил. 1
# Обновление матрицы RIS[i].
for j from 1 to d[i][1] do
for k from 1 to l[i] do
RIS[i][k,j]:=DIAGR[i][l[i]-k+1,j];
od;
od;
od:
# Печать обновленных вариантов столбчатых диаграмм
# (со сквозной нумерацией ячеек).
for i from 1 to s do
print(evaln(DIAGR[i])=RIS[i]);
od;
print(str);print(str);
# Формирование списка jlist
# пар вида [lambda[i],k],
# где lambda[i] - собственное значение,
# k - высота столбца
# в соответствующей столбчатой диаграмме,
# в порядке убывания высот
# (т. е. продвигаясь слева направо по диаграмме).
# Изначально список jlist пуст.
jlist:=[];
# Цикл по номеру собственного значения.
for i from 1 to s do
# Цикл по номеру столбца в DIAGR[i].
for k from l[i] to 1 by -1 do
# Если зона столбцов высоты k не пуста,
# то к списку jlist добавляется
# q[i][k] одинаковых пар [lambda[i],k].
if q[i][k]<>0 then
for j from 1 to q[i][k] do
jlist:=[jlist[],[lambda[i],k]];
od:
fi:
od:
od:
# Формирование матрицы JS -
# жордановой нормальной формы матрицы A (порядка n)
# или - частичного жорданова блока (порядка ms) -
# как блочно-диагональной матрицы,
# с блоками - жордановыми ящиками,
# причем каждой паре [lambda[i],k]
# отвечает жорданов ящик J[k](lambda[i])
# k-го порядка с lambda[i] на диагонали.
546                       Коды Maple-процедур           Прил. 1

  # Обновление матрицы RIS[i].
  for j from 1 to d[i][1] do
    for k from 1 to l[i] do
      RIS[i][k,j]:=DIAGR[i][l[i]-k+1,j];
    od;
  od;
od:

# Печать обновленных вариантов столбчатых диаграмм
# (со сквозной нумерацией ячеек).
for i from 1 to s do
  print(evaln(DIAGR[i])=RIS[i]);
od;
print(str);print(str);

#   Формирование списка jlist
#   пар вида [lambda[i],k],
#   где lambda[i] - собственное значение,
#   k - высота столбца
#   в соответствующей столбчатой диаграмме,
#   в порядке убывания высот
#   (т. е. продвигаясь слева направо по диаграмме).

# Изначально список jlist пуст.
jlist:=[];

# Цикл по номеру собственного значения.
for i from 1 to s do

    # Цикл по номеру столбца в DIAGR[i].
    for k from l[i] to 1 by -1 do

      # Если зона столбцов высоты k не пуста,
      # то к списку jlist добавляется
      # q[i][k] одинаковых пар [lambda[i],k].
      if q[i][k]<>0 then
        for j from 1 to q[i][k] do
          jlist:=[jlist[],[lambda[i],k]];
        od:
      fi:
    od:

od:

#   Формирование матрицы JS -
#   жордановой нормальной формы матрицы A (порядка n)
#   или - частичного жорданова блока (порядка ms) -
#   как блочно-диагональной матрицы,
#   с блоками - жордановыми ящиками,
#   причем каждой паре [lambda[i],k]
#   отвечает жорданов ящик J[k](lambda[i])
#   k-го порядка с lambda[i] на диагонали.