Работа с полиномами. Умножение и деление полиномов.
Полиномы (у нас их принято называть также степенными многочленами) – широко известный объект математических вычислений и обработки данных. Обычно полином записывается в виде:
р(х) = а n х^n + x n-1 x^n – 1+… + а 2 x^2 + а 1 ^х + а 0 ,
И так обычно принято в MATLAB для п, отрицательных по умолчанию, хотя и возможны иные формы записи, например:
р(х) = a 1 x^n + а 2 x^n-1 +… + а n х + а n+1.
Последняя запись обычно принята в MATLAB для n, по умолчанию положительных.
Широкое применение полиномов отчасти обусловлено большими возможностями полиномов в представлении данных, а также их простотой и единообразием вычислений. В этом разделе описаны основные функции для работы с полиномами. При этом полиномы обычно задаются векторами их коэффициентов.
Умножение и деление полиномов
Ниже приведены функции, осуществляющие умножение и деление полиномов, или, что то же самое, свертку двух входных векторов, в которых находятся коэффициенты полиномов, и операцию, обратную свертке.
- w = conv(u.v) – возвращает свертку векторов u и v. Алгебраически свертка – то же самое, что и произведение полиномов, чьи коэффициенты – элементы векторов и и v. Если длина вектора и равна т, а длина вектора v – n, то вектор w имеет длину т+n-1, а его k-й элемент вычисляется по следующей формуле
Пример:
>
>
f
=
[
2.3.5.6
];d
=
[
7.8.3
]:r
=
conv(f,d)
r
=
14
37
65
91
63
18
- [q,r] = deconv(v.u) – возвращает результат деления полинома v на полином и. Вектор q представляет собой частное от деления, а г – остаток от деления, так что выполняется соотношение v=conv(u,q)+r.
Пример:
>
>
t
=
[
14.37.65.91.63.18
]:r
=
[
7.8.3
];[w.e]
=
deconv(t.r)
w
=
2.0000
3.0000
5.0000
6.0000
e
=
1.0e
-
013
0
0
0.1421
-
0.1421
-
0.2132
-
0.1066