ВУЗ:
Составители:
Рубрика:
548 Коды Maple-процедур Прил. 1
# Рассматриваются три случая расположения этажа:
# 1) верхний этаж;
# 2) промежуточные этажи;
# 3) нижний этаж.
if k:=l[i] then
# Определение векторов верхнего этажа
# столбчатой диаграммы.
# Формирование матрицы-конкатенации,
# содержащей базисы
# в предстабильном и в стабильном ядрах,
# приведение этой матрицы
# к ступенчатому виду
# и печать результатов.
M[i][k]:=<F[i][k-1]|F[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],
# дополняющих базис в предстабильном ядре N[i][l[i]-1]
# до базиса в стабильном ядре N[i][l[i]]
# (корневом подпространстве, отвечающем lambda[i]).
# Изначально этот список пуст.
blist:=[];
# Номер первого столбца во второй зоне
# матрицы-конкатенации M[i][k] (где k=l[i]).
v:=d[i][k-1]+1;
# Цикл по номеру строки в ступенчатой матрице MG[i][k],
# начиная с первой
строки, являющейся
# чисто нулевой в первой (левой) зоне конкатенации,
# и заканчивая последней ненулевой строкой
# во всей матрице.
for u from d[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
# и переходим к следующей строке.
548 Коды Maple-процедур Прил. 1
# Рассматриваются три случая расположения этажа:
# 1) верхний этаж;
# 2) промежуточные этажи;
# 3) нижний этаж.
if k:=l[i] then
# Определение векторов верхнего этажа
# столбчатой диаграммы.
# Формирование матрицы-конкатенации,
# содержащей базисы
# в предстабильном и в стабильном ядрах,
# приведение этой матрицы
# к ступенчатому виду
# и печать результатов.
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],
# дополняющих базис в предстабильном ядре N[i][l[i]-1]
# до базиса в стабильном ядре N[i][l[i]]
# (корневом подпространстве, отвечающем lambda[i]).
# Изначально этот список пуст.
blist:=[];
# Номер первого столбца во второй зоне
# матрицы-конкатенации M[i][k] (где k=l[i]).
v:=d[i][k-1]+1;
# Цикл по номеру строки в ступенчатой матрице MG[i][k],
# начиная с первой строки, являющейся
# чисто нулевой в первой (левой) зоне конкатенации,
# и заканчивая последней ненулевой строкой
# во всей матрице.
for u from d[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
# и переходим к следующей строке.
Страницы
- « первая
- ‹ предыдущая
- …
- 546
- 547
- 548
- 549
- 550
- …
- следующая ›
- последняя »
