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

UptoLike

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

Прил. 1 Коды Maple-процедур 537
# находится его размерность и
# "экономное" представление первым способом
# (с помощью матриц JA1,JA2, JA0 соответственно).
# Дополнительно определяется размерность d3
# суммы W3=W1+W2.
local n,n1,n2,alg,JA1,JA2,A0,JA0,B0,d1,d2,d3,d0,sys0;
n1:=ColumnDimension(A1); n2:=ColumnDimension(A2);
if n1<>n2 then
ERROR(`Вводимые матрицы должны иметь
равное количество столбцов!`);
else
n:=n1;
fi;
# Контроль совпадения размерностей по столбцам
# для данных матриц А1 и А2.
# Размерность всего пространства: dim(V)=n.
JA1:=algorithm_1(A1)[3];d1:=n-RowDimension(JA1);
JA2:=algorithm_1(A2)[3];d2:=n-RowDimension(JA2);
# Процедура algorithm_1 применяется
# к каждой из данных матриц.
# Определены (и записаны в матрицы JA1 и JA2)
# виды ЖорданаГаусса для матриц A1 и A2.
# Определены "экономные" задания первым способом
# (с помощью матриц JA1 и JA2)
# для данных подпространств W1 и W2,
# а также размерности d1=dim(W1) и d2=dim(W2).
A0:=<JA1,JA2>;
# Вертикальная конкатенация матриц, задающих W1 и W2.
# Пересечение W0 задается (первым способом)
# как нуль
-пространство матрицы A0.
alg:=algorithm_1(A0);
B0:=alg[1];d0:=alg[2];JA0:=alg[3];sys0:=alg[4];
# Процедура algorithm_1 применяется
# к матрице A0.
# Определяется (и заносится в матрицу B0),
# некоторый базис в пересечении W0;
# вычисляется размерность d0=dim(W0);
# находится матрица JA0, с помощью которой
# осуществляется "экономное" задание
# для W0 (первым способом).
# Это задание представляется также
# в виде однородной с.л.у. sys0.
d3:=d1+d2-d0;
# Размерность суммы W3=W1+W2.
Прил. 1                   Коды Maple-процедур               537

#   находится его размерность и
#   "экономное" представление первым способом
#   (с помощью матриц JA1,JA2, JA0 соответственно).
#   Дополнительно определяется размерность d3
#   суммы W3=W1+W2.

    local n,n1,n2,alg,JA1,JA2,A0,JA0,B0,d1,d2,d3,d0,sys0;

n1:=ColumnDimension(A1); n2:=ColumnDimension(A2);

if n1<>n2 then
  ERROR(`Вводимые матрицы должны иметь
         равное количество столбцов!`);
else
  n:=n1;
fi;
# Контроль совпадения размерностей по столбцам
# для данных матриц А1 и А2.
# Размерность всего пространства: dim(V)=n.

JA1:=algorithm_1(A1)[3];d1:=n-RowDimension(JA1);
JA2:=algorithm_1(A2)[3];d2:=n-RowDimension(JA2);
# Процедура algorithm_1 применяется
# к каждой из данных матриц.
# Определены (и записаны в матрицы JA1 и JA2)
# виды Жордана – Гаусса для матриц A1 и A2.
# Определены "экономные" задания первым способом
# (с помощью матриц JA1 и JA2)
# для данных подпространств W1 и W2,
# а также размерности d1=dim(W1) и d2=dim(W2).

A0:=;
# Вертикальная конкатенация матриц, задающих W1 и W2.
# Пересечение W0 задается (первым способом)
# как нуль-пространство матрицы A0.

alg:=algorithm_1(A0);
B0:=alg[1];d0:=alg[2];JA0:=alg[3];sys0:=alg[4];
# Процедура algorithm_1 применяется
# к матрице A0.
# Определяется (и заносится в матрицу B0),
# некоторый базис в пересечении W0;
# вычисляется размерность d0=dim(W0);
# находится матрица JA0, с помощью которой
# осуществляется "экономное" задание
# для W0 (первым способом).
# Это задание представляется также
# в виде однородной с.л.у. sys0.

d3:=d1+d2-d0;
# Размерность суммы W3=W1+W2.