4.2. Использование полиномов в matlab.
4.2.1. Представление полиномов в MATLAB и полиномиальные функции.
Представление полинома.
MATLAB представляет полином как вектор-строку, содержащую коэффициенты расположенные по уменьшению степеней. Например,
Для введения в MATLAB, испоьзуем
p = [1 0 -2 -5];
Для получения краткой справки по полиномиальным функциям, наберите:
help polyfun
Список полиномиальных функций
Функция |
Описание |
conv |
Умножение полиномов |
deconv |
Деление полиномов |
poly |
Определения полинома с заданными корнями |
polyder |
Производная от полинома |
polyfit |
Подбор кривой полиномом |
polyval |
Вычисление значения полинома |
polyvalm |
Вычисление значения матричного полинома |
residue |
Разложение дробно-рационального полинома на простые дроби |
roots |
Определение корней полинома |
Вычисление корней полинома.
Корни полинома вычисляет функция roots:
r = roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
MATLAB хранит корни полиномов в вектор-столбце. Функция poly возвращает коэффициенты полинома:
p2 = poly(r)
p2 =
1 8.8818e-16 -2 -5
poly и roots являются обратными функциями одна относительно другой.
Вычисление полинома при определенном значении.
Вычисление полинома при заданном значении возвращает функция polyval. Вычислим p при s = 5,
polyval(p,5)
ans =
110
Возможно также вычисление полинома от матрицы. Если p(x) = x3 – 2x – 5, имеем, p(X) = X3 – 2X – 5I, где X – квадратная матрица и I единичная матрица. Например:
X = [2 4 5; -1 0 3; 7 1 5];
Y = polyvalm(p,X)
Y =
377 179 439
111 81 136
490 253 639
Умножение и деление полиномов.
Функции conv и deconv возвращают произведение и частное полиномов. Рассмотрим а(s) = s2 + 2s + 3 и b(s) = 4s2 + 5s + 6. Для вычисления их произведения,
a = [1 2 3]; b = [4 5 6];
c = conv(a,b)
c =
4 13 28 27 18
Для получения сомножителя b, воспользуемся делением c на а,
[q,r] = deconv(c,a)
q =
4 5 6
r =
0 0 0 0 0
Вычисление производной от полинома.
Функция polyder возвращает производную от любого полинома. Например, определим производную от полинома,
р = [1 0 -2 -5],
q = polyder(p)
q =
3 0 -2
Функция polyder также вычисляет производную от произведения или частного двух полиномов. Например,
a = [1 3 5];
b = [2 4 6];
Вычислим производную от произведения a*b вызвав функцию polyder с одним аргументом:
c = polyder(a,b)
c =
8 30 56 38
Вычислим производную от частного a/b вызвав функцию polyder с двумя аргументами:
[q,d] = polyder(a,b)
q =
-2 -8 -2
d =
4 16 40 48 36
q/d – результат операции.
Вычисление коэффициентов характеристического полинома матрицы.
Функция poly также вычисляет коэффициенты характеристического полинома матрицы:
A = [1.2 3 -0.9; 5 1.75 6; 9 0 1];
poly(A)
ans =
1.0000 -3.9500 -1.8500 -163.2750
Корни этого полинома, вычисленные функцией roots, являются характеристическими корнями, или непосредственно собственными значениями матрицы.