ВУЗ:
Составители:
Рубрика:
550 Коды Maple-процедур Прил. 1
# Приведение к ступенчатому виду матрицы M[i][k]
# и печать полученных результатов.
MG[i][k]:=GaussianElimination(M[i][k]);
print(evaln(M[i][k])=M[i][k],
evaln(MG[i][k])=MG[i][k]);
# Формирование списка blist
# номеров добавочных базисных векторов,
# из третьей (правой) зоны матрицы M[i][k],
# дополняющих до базиса в k-м ядре N[i][k]
# базис в прямой сумме
# (k-1)-го ядра N[i][k-1]
# и образа B[i](C[i][k+1]).
# Изначально этот список пуст.
blist:=[];
# Номер первого столбца в третьей зоне
# матрицы-конкатенации M[i][k].
v:=d[i][k-1]+p[i][k+1]+1;
# Цикл по номеру строки
# в ступенчатой матрице MG[i][k],
# начиная с первой строки, являющейся
# чисто нулевой в первых двух зонах конкатенации,
# и заканчивая последней ненулевой строкой
# во всей матрице.
for u from d[i][k-1]+p[i][k+1]+1 to d[i][k] do
# Просматриваем (слева направо) строку с номером u,
# пока не встретим первый ненулевой элемент.
# (При этом работает счетчик столбцов.)
while MG[i][k][u,v]=0 do
v:=v+1;
od;
# Встретив в строке с номером u,
# в столбце с номером v
# первый ненулевой элемент,
# мы добавляем номер v к списку blist
# и переходим к следующей строке.
blist:=[blist[],v];
od;
# Формируем матрицу H[i][k], отвечающую
# ступеньке уровня k
# (т. е. содержащую базис в D[i][k])
# как подматрицу в исходной конкатенации M[i][k],
# содержащую столбцы, номера которых
# входят в список blist.
H[i][k]:=SubMatrix(M[i][k],1..n,blist);
# Формируем матрицу G[i][k], отвечающую
# всему k-му уровню
550 Коды Maple-процедур Прил. 1
# Приведение к ступенчатому виду матрицы M[i][k]
# и печать полученных результатов.
MG[i][k]:=GaussianElimination(M[i][k]);
print(evaln(M[i][k])=M[i][k],
evaln(MG[i][k])=MG[i][k]);
# Формирование списка blist
# номеров добавочных базисных векторов,
# из третьей (правой) зоны матрицы M[i][k],
# дополняющих до базиса в k-м ядре N[i][k]
# базис в прямой сумме
# (k-1)-го ядра N[i][k-1]
# и образа B[i](C[i][k+1]).
# Изначально этот список пуст.
blist:=[];
# Номер первого столбца в третьей зоне
# матрицы-конкатенации M[i][k].
v:=d[i][k-1]+p[i][k+1]+1;
# Цикл по номеру строки
# в ступенчатой матрице MG[i][k],
# начиная с первой строки, являющейся
# чисто нулевой в первых двух зонах конкатенации,
# и заканчивая последней ненулевой строкой
# во всей матрице.
for u from d[i][k-1]+p[i][k+1]+1 to d[i][k] do
# Просматриваем (слева направо) строку с номером u,
# пока не встретим первый ненулевой элемент.
# (При этом работает счетчик столбцов.)
while MG[i][k][u,v]=0 do
v:=v+1;
od;
# Встретив в строке с номером u,
# в столбце с номером v
# первый ненулевой элемент,
# мы добавляем номер v к списку blist
# и переходим к следующей строке.
blist:=[blist[],v];
od;
# Формируем матрицу H[i][k], отвечающую
# ступеньке уровня k
# (т. е. содержащую базис в D[i][k])
# как подматрицу в исходной конкатенации M[i][k],
# содержащую столбцы, номера которых
# входят в список blist.
H[i][k]:=SubMatrix(M[i][k],1..n,blist);
# Формируем матрицу G[i][k], отвечающую
# всему k-му уровню
Страницы
- « первая
- ‹ предыдущая
- …
- 548
- 549
- 550
- 551
- 552
- …
- следующая ›
- последняя »
