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

UptoLike

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

Приложение 1
Коды Maple-процедур
1. Пакет процедур BiS
(к ТР1 "Базисы в подпространствах"; п. 11.3)
> restart;with(LinearAlgebra):
> # Задание шести процедур,
# составляющих пакет BiS (Bases in Subspaces).
> BiS[algorithm_1]:=proc(A::Matrix)
# Построение базиса в линейном подпространстве W
# (в арифметическом линейном пространстве V);
# подпространство W задано первым способом
# (как совокупность решений однородной с.л.у. Ax=0).
local m,n,i,j,k,h,GA,JA,rA,pr,fr,ZA,FA,sys;
m:=RowDimension(A);n:=ColumnDimension(A);
# Размеры данной матрицы; n=dim(V).
ZA:=ZeroMatrix(m,n);
# Нулевая матрица.
if Equal(A,ZA) then
# Особый случай: A=O и, следовательно, W=V.
# Выдается естественный базис в виде
# единичной матрицы.
FA:=IdentityMatrix(n);
JA:=Matrix(0,n);rA:=0;
# Пустая матрица.
pr:=[];
# Список номеров главных неизвестных пуст.
fr:=[seq(k,k=1..n)];
# Все неизвестные свободны.
else
GA:=ReducedRowEchelonForm(A);rA:=Rank(GA);
# Вид Жордана-Гаусса и ранг.
JA:=SubMatrix(GA,1..rA,1..n);
# Вид Жордана-Гаусса (с удаленными
# нулевыми строками) для матрицы А.
                                                    Приложение 1

                         Коды Maple-процедур


1. Пакет процедур BiS
   (к ТР1 "Базисы в подпространствах"; п. 11.3)


> restart;with(LinearAlgebra):

> # Задание шести процедур,
# составляющих пакет BiS (Bases in Subspaces).


>   BiS[algorithm_1]:=proc(A::Matrix)
#   Построение базиса в линейном подпространстве W
#   (в арифметическом линейном пространстве V);
#   подпространство W задано первым способом
#   (как совокупность решений однородной с.л.у. Ax=0).

    local m,n,i,j,k,h,GA,JA,rA,pr,fr,ZA,FA,sys;

m:=RowDimension(A);n:=ColumnDimension(A);
# Размеры данной матрицы; n=dim(V).

ZA:=ZeroMatrix(m,n);
# Нулевая матрица.

if Equal(A,ZA) then
  # Особый случай: A=O и, следовательно, W=V.
  # Выдается естественный базис в виде
  # единичной матрицы.
  FA:=IdentityMatrix(n);

    JA:=Matrix(0,n);rA:=0;
    # Пустая матрица.

    pr:=[];
    # Список номеров главных неизвестных пуст.

    fr:=[seq(k,k=1..n)];
    # Все неизвестные свободны.

else
  GA:=ReducedRowEchelonForm(A);rA:=Rank(GA);
  # Вид Жордана-Гаусса и ранг.

    JA:=SubMatrix(GA,1..rA,1..n);
    # Вид Жордана-Гаусса (с удаленными
    # нулевыми строками) для матрицы А.