Создайте следующее выражение, представляющее функцию синуса.
syms w t f = sin(w*t);
Предположим, ваша задача включает в себя создание матрицы, элементы которой являются синусоидальными функциями с скоростями вращения, представленными матрицей Теплица. Сначала создайте матрицу Теплица 4 на 4.
W = toeplitz(sym([3 2 1 0]))
W = [ 3, 2, 1, 0] [ 2, 3, 2, 1] [ 1, 2, 3, 2] [ 0, 1, 2, 3]
Затем замените переменную w
в выражении f
с матрицей Теплица W
. Когда вы заменяете скаляр в символьном выражении на матрицу, subs
расширяет выражение в матрицу. В этом примере, subs
расширяет f = sin(w*t)
в матрицу 4 на 4, элементы которой sin(w*t)
. Затем он заменяет w
в этой матрице с соответствующими элементами матрицы Теплица W
.
F = subs(f, w, W)
F = [ sin(3*t), sin(2*t), sin(t), 0] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ 0, sin(t), sin(2*t), sin(3*t)]
Найдите сумму этих синусоид в t = π
, t = π/2
, t = π/3
, t = π/4
, t = π/5
, и t = π/6
. Во-первых, найдите сумму всех элементов матрицы F
. Здесь первый вызов на sum
возвращает вектор-строку, содержащую суммы элементов в каждом столбце. Второй вызов на sum
возвращает сумму элементов этого вектора-строки.
S = sum(sum(F))
S = 6*sin(2*t) + 4*sin(3*t) + 4*sin(t)
Теперь используйте subs
для оценки S
для конкретных значений переменной t
.
subs(S, t, sym(pi)./[1:6])
[ 0,... 0,... 5*3^(1/2), 4*2^(1/2) + 6,... 2^(1/2)*(5 - 5^(1/2))^(1/2) + (5*2^(1/2)*(5^(1/2) + 5)^(1/2))/2,... 3*3^(1/2) + 6]
Вы также можете использовать subs
чтобы заменить скалярный элемент массива матрицы на другую матрицу. В этом случае, subs
расширяет матрицу для размещения новых элементов. Для примера замените нулевые элементы матрицы F
с помощью вектора-столбца [1;2]
. Исходная матрица 4 на 4 F
расширяется до матрицы 8 на 4. subs
функция дублирует каждую строку исходной матрицы, а не только строки, содержащие нулевые элементы.
F = subs(F, 0, [1;2])
F = [ sin(3*t), sin(2*t), sin(t), 1] [ sin(3*t), sin(2*t), sin(t), 2] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(2*t), sin(3*t), sin(2*t), sin(t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ sin(t), sin(2*t), sin(3*t), sin(2*t)] [ 1, sin(t), sin(2*t), sin(3*t)] [ 2, sin(t), sin(2*t), sin(3*t)]