ВУЗ:
Составители:
Рубрика:
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);
# Тест на существование полного жорданова базиса.
Страницы
- « первая
- ‹ предыдущая
- …
- 538
- 539
- 540
- 541
- 542
- …
- следующая ›
- последняя »
