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

UptoLike

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

534 Коды Maple-процедур Прил. 1
elif d1=d2 then
C1:=Matrix(n,0);
# Отработка особого случая, когда W1=W2.
# Прямое дополнение в этом случае является нулевым,
# базис в нем, содержащийся
# в матрице C1, - пустым.
else
C1:=SubMatrix(B3,1..n,d1+1..d3);
# Основной случай: W1 является
# подпространством в W2, отличным от W2;
# базис в прямом дополнении составляется
# из добавочных векторов, расположенных
# в "правой зоне" матрицы B3.
fi;
RETURN(C1,d2-d1,B3,[B1,d1],[B2,d2]);
# Возвращаются:
# 1) матрица C1, содержащая "добавочные" векторы
# (базис в некотором прямом дополнении к W1 в W2);
# 2) размерность d2-d1 этого прямого дополнения;
# 3) матрица B3, содержащая базис в W2,
# продолжающий некоторый базис в W1;
# 4) список [B1,d1], содержащий матрицу B1,
# столбцы которой образуют исходный базис в W1
# и размерность d1=dim(W1).
# 5) список [B2,d2], содержащий матрицу B2,
# столбцы которой образуют исходный базис в W2
# и размерность d2=dim(W2).
end proc;
> BiS[algorithm_5]:=proc(G1::Matrix,G2::Matrix)
# Построение базиса в сумме W3=W1+W2
# линейных подпространств W1,W2 в пространстве V.
# Подпространства W1,W2 заданы вторым способом
# (как линейные оболочки столбцов матриц G1 и G2).
# В подпространстве W3 находятся два базиса:
# базис, записанный в матрице B3[1],
# продолжает базис B1 в W1;
# базис, записанный в матрице B3[2],
# продолжает базис B2 в W2.
# Находятся также некоторые прямые дополнения
# к каждому из подпространств-слагаемых в их сумме
# (базисы для прямых дополнений
# записываются в матрицы C1,C2).
# Дополнительно определяется размерность d0
# пересечения W0 данных подпространств.
534                       Коды Maple-процедур           Прил. 1

elif d1=d2 then
  C1:=Matrix(n,0);
  # Отработка особого случая, когда W1=W2.
  # Прямое дополнение в этом случае является нулевым,
  # базис в нем, содержащийся
  # в матрице C1, - пустым.

else
  C1:=SubMatrix(B3,1..n,d1+1..d3);
  # Основной случай: W1 является
  # подпространством в W2, отличным от W2;
  # базис в прямом дополнении составляется
  # из добавочных векторов, расположенных
  # в "правой зоне" матрицы B3.

fi;

RETURN(C1,d2-d1,B3,[B1,d1],[B2,d2]);
# Возвращаются:
# 1) матрица C1, содержащая "добавочные" векторы
#    (базис в некотором прямом дополнении к W1 в W2);
# 2) размерность d2-d1 этого прямого дополнения;
# 3) матрица B3, содержащая базис в W2,
#    продолжающий некоторый базис в W1;
# 4) список [B1,d1], содержащий матрицу B1,
#    столбцы которой образуют исходный базис в W1
#    и размерность d1=dim(W1).
# 5) список [B2,d2], содержащий матрицу B2,
#    столбцы которой образуют исходный базис в W2
#    и размерность d2=dim(W2).

end proc;



>   BiS[algorithm_5]:=proc(G1::Matrix,G2::Matrix)
#   Построение базиса в сумме W3=W1+W2
#   линейных подпространств W1,W2 в пространстве V.
#   Подпространства W1,W2 заданы вторым способом
#   (как линейные оболочки столбцов матриц G1 и G2).
#   В подпространстве W3 находятся два базиса:
#   базис, записанный в матрице B3[1],
#   продолжает базис B1 в W1;
#   базис, записанный в матрице B3[2],
#   продолжает базис B2 в W2.
#   Находятся также некоторые прямые дополнения
#   к каждому из подпространств-слагаемых в их сумме
#   (базисы для прямых дополнений
#   записываются в матрицы C1,C2).
#   Дополнительно определяется размерность d0
#   пересечения W0 данных подпространств.