Решение полиномиальных матричных уравнений. Разложение на простые дроби.
Приведенная ниже функция вычисляет собственные значения матричного полинома.
- [Х.е] = polyeig(A0,A1,…Ap) – решает задачу собственных значений для матричного полинома степени р вида:
Где степень полинома р – целое неотрицательное число, а А 0, А1 ,…, Аp – входные матрицы порядка n. Выходная матрица X размера nхnр содержит собственные векторы в столбцах. Вектор е размером nр содержит собственные значения.
Пример:
>
>
A
=
[
1
:
4
:
5
:
8
:
9
:
12
:
13
:
16
]
A
=
1
2
3
4
5
6
7
8
9
10
11
12
1314
15
16
>
>
В
=
[
4
:
7
;
2
:
5
;
10
:
13
;
23
:
26
]
3
4
5
6
7
2
3
4
5
10
11
12
13
23
24
25
26
>
>
[F.a]
=
polyeig(A.B)
F
=
0.4373
0.0689
-
0.5426
-
0.7594
-
0.3372
-
0.4969
0.6675
-
0.1314
-
0.6375
0.7870
0.2927
-
0.1314
0.5374
-
0.3591
-
0.4176
0.3771
a
=
4.4048
0.4425
-
0.3229
-
1.0000
Разложение на простые дроби
Для отношения полиномов b и а используются следующие функции:
- [r,p,k] = residue (b, a) – возвращает вычеты, полюса и многочлен целой части отношения двух полиномов b(s) и a(s) в виде:
- [b.a] = residue(r.p.k) – выполняет обратную свертку суммы простых дробей (см. более подробное описание в справочной системе) в пару полиномов с коэффициентами в векторах b и а.
Пример:
>
>
b
=
[
4.3.1
]:a
=
[
1.3.7.1
]:[r.p,k]
=
residue(b,a)
r
=
1.9484
+
0.80641
1.9484
-
0.80641
0.1033
P
=
-
1.4239
+
2.13051
-
1.4239
-
2.13051
-
0.1523
k
=
[ ]
>
>
[bl,al]
=
residue(r,p,k)
b1
=
4.0000
3.0000
1.0000
a1
=
1.0000
3.0000
7.0000
1.0000