Символьная матрица Теплица
toeplitz(
генерирует несимметричную матрицу Теплица, имеющую c
,r
)c
в качестве его первого столбца и r
как его первая строка. Если первые элементы c
и r
разные, toeplitz
выдает предупреждение и использует первый элемент столбца.
toeplitz(
генерирует симметричную матрицу Теплица, если r
)r
реально. Если r
является комплексным, но его первый элемент действителен, тогда этот синтаксис генерирует матрицу Гермитова Теплица, сформированную из r
. Если первый элемент r
не реально, тогда получающаяся матрица - Hermitian от главной диагонали, означая что <reservedrangesplaceholder7> <reservedrangesplaceholder6> <reservedrangesplaceholder5> = сопряженный (T <reservedrangesplaceholder3> <reservedrangesplaceholder2>) для <reservedrangesplaceholder1> ≠ <reservedrangesplaceholder0>.
Сгенерируйте матрицу Теплица из этих векторов. Поскольку эти векторы не являются символическими объектами, вы получаете результаты с плавающей точкой.
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
функция.