28.3 Произведения полиномов
-
:
y =conv(a, b) -
:
y =conv(a, b, shape) -
Вычисляет свёртку двух векторов a и b.
Если a и b — векторы коэффициентов двух полиномов, свёртка представляет собой вектор коэффициентов произведения этих полиномов.
Размер результата определяется необязательным аргументом shape, который может принимать следующие значения:
-
shape =
"full" -
Возвращает полную свёртку. (По умолчанию.) Результат представляет собой вектор длины
length (a) + length (b) - 1. -
shape =
"same" -
Возвращает центральную часть свёртки того же размера, что и a.
-
shape =
"valid" Возвращает только части, не содержащие краёв, дополненных нулями. Размер результата —
max (size (a) - size (b) + 1, 0).
-
shape =
-
:
C =convn(A, B) -
:
C =convn(A, B, shape) -
Возвращает n-мерную свёртку A и B.
Размер результата определяется необязательным аргументом shape, который может принимать следующие значения:
-
shape =
"full" -
Возвращает полную свёртку. (По умолчанию.)
-
shape =
"same" -
Возвращает центральную часть свёртки того же размера, что и A. Центральная часть свёртки начинается с индексов
floor ([size(B)/2] + 1). -
shape =
"valid" Возвращает только части, не содержащие краёв, дополненных нулями. Размер результата —
max (size (A) - size (B) + 1, 0).
-
shape =
-
:
b =deconv(y, a) -
:
[b, r] =deconv(y, a) -
Вычисляет деконволюцию двух векторов (деление полиномов).
[b, r] = deconv (y, a)находит b и r такие, чтоy = conv (a, b) + r.Если y и a — векторы коэффициентов полиномов, b будет содержать коэффициенты частного полиномов, а r — остаточный полином наименьшего порядка.
-
:
C =conv2(A, B) -
:
C =conv2(v1, v2, m) -
:
C =conv2(…, shape) -
Возвращает двумерную свёртку A и B.
Размер результата определяется необязательным аргументом shape, который может принимать следующие значения:
-
shape =
"full" -
Возвращает полную свёртку. (По умолчанию.)
-
shape =
"same" -
Возвращает центральную часть свёртки того же размера, что и A. Центральная часть свёртки начинается с индексов
floor ([size(B)/2] + 1). -
shape =
"valid" Возвращает только части, не содержащие краёв, дополненных нулями. Размер результата —
max (size (A) - size (B) + 1, 0).
Если третий аргумент является матрицей, возвращает свёртку матрицы m с вектором v1 в направлении столбцов и с вектором v2 в направлении строк.
-
shape =
-
:
q =polygcd(b, a) -
:
q =polygcd(b, a, tol) -
Находит наибольший общий делитель двух полиномов.
Это эквивалентно полиному, полученному перемножением всех общих корней. Вместе с deconv эту функцию можно использовать для сокращения отношения двух полиномов.
Допуск tol по умолчанию равен
sqrt (eps).Внимание: этот алгоритм численно неустойчив, поэтому его не следует применять к полиномам высокой степени.
Пример кода:
polygcd (poly (1:8), poly (3:12)) - poly (3:8) ⇒ [ 0, 0, 0, 0, 0, 0, 0 ] deconv (poly (1:8), polygcd (poly (1:8), poly (3:12))) - poly (1:2) ⇒ [ 0, 0, 0 ]
-
:
[r, p, k, e] =residue(b, a) -
:
[b, a] =residue(r, p, k) -
:
[b, a] =residue(r, p, k, e) -
Первая форма вызова вычисляет разложение на простые дроби частного полиномов b и a.
Частное определяется следующим образом:
B(s) M r(m) N ---- = SUM ------------- + SUM k(i)*s^(N-i) A(s) m=1 (s-p(m))^e(m) i=1
где M — число полюсов (длина векторов r, p и e), вектор k — полином порядка N-1, представляющий прямую составляющую, а вектор e задаёт кратность полюса m-го вычета.
Например,
b = [1, 1, 1]; a = [1, -5, 8, -4]; [r, p, k, e] = residue (b, a) ⇒ r = [-2; 7; 3] ⇒ p = [2; 2; 1] ⇒ k = [](0x0) ⇒ e = [1; 2; 1]
что представляет собой следующее разложение на простые дроби:
s^2 + s + 1 -2 7 3 ------------------- = ----- + ------- + ----- s^3 - 5s^2 + 8s - 4 (s-2) (s-2)^2 (s-1)
Вторая форма вызова выполняет обратную операцию и вычисляет восстановленное частное полиномов b(s)/a(s) по разложению на простые дроби; оно задаётся вычетами, полюсами и прямым полиномом, определёнными r, p и k, а также кратностью полюсов e.
Если кратность e явно не указана, она определяется функцией
mpoles.Например:
r = [-2; 7; 3]; p = [2; 2; 1]; k = [1, 0]; [b, a] = residue (r, p, k) ⇒ b = [1, -5, 9, -3, 1] ⇒ a = [1, -5, 8, -4] where mpoles is used to determine e = [1; 2; 1]
Кроме того, кратность можно задать явно, например:
r = [7; 3; -2]; p = [2; 1; 2]; k = [1, 0]; e = [2; 1; 1]; [b, a] = residue (r, p, k, e) ⇒ b = [1, -5, 9, -3, 1] ⇒ a = [1, -5, 8, -4]
что представляет собой следующее разложение на простые дроби:
-2 7 3 s^4 - 5s^3 + 9s^2 - 3s + 1 ----- + ------- + ----- + s = -------------------------- (s-2) (s-2)^2 (s-1) s^3 - 5s^2 + 8s - 4
© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Products-of-Polynomials.html