Символьная матрица Теплица
toeplitz(
генерирует несимметричную матрицу Теплица, имеющую c
,r
)c
как его первый столбец и r
как его первая строка. Если первые элементы c
и r
отличаются, toeplitz
выдает предупреждение и использует первый элемент столбца.
toeplitz(
генерирует симметричную матрицу Теплица если r
)r
isreal. Если r
является комплексным, но его первый элемент действителен, затем этот синтаксис генерирует Эрмитовую матрицу Теплица, сформированную из r
. Если первый элемент r
не действительно, затем получившаяся матрица является Эрмитовой от основной диагонали, означая что T i j = сопряженный (T j i) для i ≠ j.
Сгенерируйте матрицу Теплица от этих векторов. Поскольку эти векторы не являются символьными объектами, вы получаете результаты с плавающей точкой.
c = [1 2 3 4 5 6]; r = [1 3/2 3 7/2 5]; toeplitz(c,r)
ans = 1.0000 1.5000 3.0000 3.5000 5.0000 2.0000 1.0000 1.5000 3.0000 3.5000 3.0000 2.0000 1.0000 1.5000 3.0000 4.0000 3.0000 2.0000 1.0000 1.5000 5.0000 4.0000 3.0000 2.0000 1.0000 6.0000 5.0000 4.0000 3.0000 2.0000
Теперь преобразуйте эти векторы в символьный объект и сгенерируйте матрицу Теплица:
c = sym([1 2 3 4 5 6]); r = sym([1 3/2 3 7/2 5]); toeplitz(c,r)
ans = [ 1, 3/2, 3, 7/2, 5] [ 2, 1, 3/2, 3, 7/2] [ 3, 2, 1, 3/2, 3] [ 4, 3, 2, 1, 3/2] [ 5, 4, 3, 2, 1] [ 6, 5, 4, 3, 2]
Сгенерируйте матрицу Теплица от этого вектора:
syms a b c d T = toeplitz([a b c d])
T = [ a, b, c, d] [ conj(b), a, b, c] [ conj(c), conj(b), a, b] [ conj(d), conj(c), conj(b), a]
Если вы указываете, что все элементы действительны, то получившаяся матрица Теплица симметрична:
syms a b c d real T = toeplitz([a b c d])
T = [ a, b, c, d] [ b, a, b, c] [ c, b, a, b] [ d, c, b, a]
Для дальнейших расчетов очистите предположения путем воссоздания переменных с помощью syms
:
syms a b c d
Сгенерируйте матрицу Теплица от вектора, содержащего комплексные числа:
T = toeplitz(sym([1, 2, i]))
T = [ 1, 2, 1i] [ 2, 1, 2] [ -1i, 2, 1]
Если первый элемент вектора действителен, то получившаяся матрица Теплица является Эрмитовой:
isAlways(T == T')
ans = 3×3 logical array 1 1 1 1 1 1 1 1 1
Если первый элемент не действителен, то получившаяся матрица Теплица является Эрмитовой от основной диагонали:
T = toeplitz(sym([i, 2, 1]))
T = [ 1i, 2, 1] [ 2, 1i, 2] [ 1, 2, 1i]
isAlways(T == T')
ans = 3×3 logical array 0 1 1 1 0 1 1 1 0
Сгенерируйте матрицу Теплица, использующую эти векторы, чтобы задать первый столбец и первую строку. Поскольку первые элементы этих векторов отличаются, toeplitz
выдает предупреждение и использует первый элемент столбца:
syms a b c toeplitz([a b c], [1 b/2 a/2])
Warning: First element of given column does not match first element of given row. Column wins diagonal conflict. ans = [ a, b/2, a/2] [ b, a, b/2] [ c, b, a]
Вызов toeplitz
для числовых аргументов, которые не являются символьными объектами, вызывает MATLAB® toeplitz
функция.