И другие программы этой серии
Решение полиномиальных матричных уравнений
Приведенная ниже функция вычисляет собственные значения матричного полинома.
• [X,e] = polyeig(A0,A1,…Ap) решает задачу собственных значений для матричного полинома степени p вида
(A0 + λA1 + … + λpAp)x = 0,
где степень полинома p – целое неотрицательное число, а A0, A1, …, Ap – входные матрицы порядка n. Выходная матрица X размера n×np содержит собственные векторы в столбцах. Вектор e размером np содержит собственные значения. Пример:
>> A=[1:4;5:8;9:12;13:16] A =
1234
5678
9 10 11 12 13 14 15 16
>> B=[4:7;2:5;10:13;23:26] B =
4567
2345
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
416 Программные средства численных методов
-0.6375 0.7870 0.2927 0.3771
0.5374 -0.3591 -0.4176 0.5136
a =
4.4048 0.4425
-0.3229
-1.0000
8.7.7. Разложение полиномов на простые дроби
Для отношения полиномов b и a функция [r,p,k] = residue(b,a)
возвращает вычеты, полюса и многочлен целой части отношения двух полиномов b(s) и a(s) в виде
• [b,a] = residue(r,p,k) выполняет обратную свертку суммы простых дробей (см. более подробное описание в справочной системе) в пару полиномов с коэффициентами в векторах b и a. Пример:
>> b=[4,3,1];a=[1,3,7,1];[r,p,k]=residue(b,a) r =
1.9484 + 0.8064i
1.9484 – 0.8064i
0.1033 p =
-1.4239 + 2.1305i
-1.4239 – 2.1305i
-0.1523 k =[ ]
>> [b1,a1]=residue(r,p,k) b1 = 4.0000 3.0000 1.0000
a1 = 1.0000 3.0000 7.0000 1.0000
8.8. Обыкновенные дифференциальные уравнения (ОДУ)
8.8.1.
Начало в части 1