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

UptoLike

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

540 Коды Maple-процедур Прил. 1
# Булевозначная переменная - индикатор
# наличия/отсутствия полного жорданова базиса.
exist_jbas:=true;
# Характеристический многочлен.
h:=CharacteristicPolynomial(A,lambda);
print('h(lambda)'=h);
# Характеристические корни (собственные значения)
# и их алгебраические кратности;
# разложение характеристического многочлена
# на неприводимые множители.
hroots:=roots(h);hf:=factor(h);
# ВНИМАНИЕ! Для перехода к работе в поле Q[i]
# строку выше можно "закомментировать"
# и заменить на "раскомментированную" строку ниже:
# hroots:=roots(h,I);hf:=factor(h,I));
print('h(lambda)'=hf);
# Отработка исключительной ситуации:
# в случае пустоты спектра выдается сообщение об ошибке.
if hroots=[] then
ERROR(`Матрица имеет пустой спектр!`);
fi;
# Мощность спектра.
s:=nops(hroots);
print('s'=s);
# Формирование массивов собственных значений
# и соответствующих алгебраических кратностей.
lambda:=array(1..s);m:=array(1..s);
for i from 1 to s do
lambda[i]:=hroots[i][1];m[i]:=hroots[i][2];
print(evaln(lambda[i])=lambda[i],evaln(m[i])=m[i]);
od;
print(str);
# Сумма алгебраических кратностей собственных значений.
ms:=sum('m[j]',j=1..s);
print(evaln(ms)=ms);
# Тест на существование полного жорданова базиса.
540                      Коды Maple-процедур               Прил. 1

# Булевозначная переменная - индикатор
# наличия/отсутствия полного жорданова базиса.
exist_jbas:=true;

# Характеристический многочлен.
h:=CharacteristicPolynomial(A,lambda);

print('h(lambda)'=h);

# Характеристические корни (собственные значения)
# и их алгебраические кратности;
# разложение характеристического многочлена
# на неприводимые множители.
hroots:=roots(h);hf:=factor(h);

# ВНИМАНИЕ! Для перехода к работе в поле Q[i]
# строку выше можно "закомментировать"
# и заменить на "раскомментированную" строку ниже:

# hroots:=roots(h,I);hf:=factor(h,I));

print('h(lambda)'=hf);

# Отработка исключительной ситуации:
# в случае пустоты спектра выдается сообщение об ошибке.

if hroots=[] then
  ERROR(`Матрица имеет пустой спектр!`);
fi;

# Мощность спектра.
s:=nops(hroots);

print('s'=s);

# Формирование массивов собственных значений
# и соответствующих алгебраических кратностей.
lambda:=array(1..s);m:=array(1..s);
for i from 1 to s do
  lambda[i]:=hroots[i][1];m[i]:=hroots[i][2];
  print(evaln(lambda[i])=lambda[i],evaln(m[i])=m[i]);
od;

print(str);

# Сумма алгебраических кратностей собственных значений.
ms:=sum('m[j]',j=1..s);

print(evaln(ms)=ms);

# Тест на существование полного жорданова базиса.