Начиная с R2021a
Переменные символьной матрицы представляют матрицы, векторы и скаляры в компактном матричном обозначении. Когда математические формулы включают матрицы и векторы, писание их использующий переменные символьной матрицы более кратко и ясно, чем запись их покомпонентно. Когда вы делаете это, можно взять основанные на векторе выражения и уравнения из учебников, ввести их в Symbolic Math Toolbox™, выполнить математические операции на них и вывести дальнейшие уравнения от них.
Включающие переменные символьной матрицы выведенных уравнений отображены в набранном, как они были бы в учебниках. Например, создайте три переменные символьной матрицы , , и при помощи syms
. Найдите дифференциал выражения относительно вектора .
syms A [3 4] matrix syms x [4 1] matrix syms y [3 1] matrix eq = y.'*A*x
eq =
D = diff(eq,x)
D =
Переменные символьной матрицы являются альтернативой символьным скалярным переменным. Эти две опции имеют различные типы и отображены по-другому.
Например, создайте два 3
- 4 матрицы символьных скалярных переменных при помощи syms
. Для краткости матрицы символьных скалярных переменных иногда называются символьными матрицами. Эти матрицы отображены путем листинга их компонентов.
syms A B [2 3] A
A =
B
B =
Матрица A символьных скалярных переменных имеет тип sym
.
class(A)
ans = 'sym'
Применение символьных математических операций к этим матрицам может привести к сложному решению, описанному в терминах матричных компонентов. Например, умножьте матрицы A
и B'
.
C = A*B'
C =
Чтобы создать переменные символьной матрицы, одного размера, используйте syms
команда сопровождается именами переменных, их размером и matrix
ключевое слово. Переменные символьной матрицы отображены полужирным, чтобы отличить их от символьных скалярных переменных.
syms A B [2 3] matrix A
A =
B
B =
Переменные символьной матрицы имеют тип symmatrix
.
class(A)
ans = 'symmatrix'
Применение символьных математических операций к переменным символьной матрицы приводит к краткому отображению. Например, умножьте A
и B'
.
C = A*B'
C =
Переменные символьной матрицы распознаны некоммутативными объектами. Они поддерживают общие математические операции, и можно использовать эти операции, чтобы создать переменные выражения символьной матрицы.
syms A B [2 2] matrix A*B - B*A
ans =
Например, проверяйте коммутационное отношение на умножение между двумя переменными символьной матрицы.
isequal(A*B,B*A)
ans = logical
0
Проверяйте коммутационное отношение на сложение.
isequal(A+B,B+A)
ans = logical
1
Если операция имеет какие-либо аргументы типа symmatrix
, результат автоматически преобразован, чтобы ввести symmatrix
. Например, умножьте матричный A
это представлено переменной символьной матрицы и скалярным c
это представлено символьной скалярной переменной. Результат имеет тип symmatrix
.
syms A [2 2] matrix syms c class(A)
ans = 'symmatrix'
class(c)
ans = 'sym'
M = c*A
M =
class(M)
ans = 'symmatrix'
Умножьте три матрицы, которые представлены переменными символьной матрицы. Результатом X является symmatrix
объект.
syms V [2 1] matrix X = V.'*A*V
X =
class(X)
ans = 'symmatrix'
Можно передать symmatrix
объекты в качестве аргументов к математическим функциям. Например, выполните математическую операцию к X
путем взятия дифференциала X
относительно V
.
diff(X,V)
ans =
Можно преобразовать массив символьных скалярных переменных к одной переменной символьной матрицы использование symmatrix
функция. Переменные символьной матрицы, которые преобразованы таким образом, отображены поэлементно.
syms A [3 4] class(A)
ans = 'sym'
B = symmatrix(A)
B =
class(B)
ans = 'symmatrix'
Можно создать переменные символьной матрицы, вывести уравнения, и затем преобразовать результат в массивы символьных скалярных переменных с помощью symmatrix2sym
функция.
Например, найдите матричное произведение двух переменных A
символьной матрицы и
B
. Результат X
имеет тип symmatrix
.
syms A B [2 2] matrix X = A*B
X =
class(X)
ans = 'symmatrix'
Преобразуйте переменную X
символьной матрицы к массиву символьных скалярных переменных. Конвертированный матричный
Y
имеет тип sym
.
Y = symmatrix2sym(X)
Y =
class(Y)
ans = 'sym'
Проверяйте, что продукт, полученный путем преобразования переменных символьной матрицы, равен продукту двух массивов символьных скалярных переменных.
syms A B [2 2] isequal(Y,A*B)
ans = logical
1
Индексация в переменную символьной матрицы возвращает соответствующие элементы матрицы в форме другой переменной символьной матрицы.
syms A [2 3] matrix a = A(2,3)
a =
class(a)
ans = 'symmatrix'
В качестве альтернативы преобразуйте переменную A
символьной матрицы к матрице символьных скалярных переменных. Затем индексируйте в ту матрицу.
Asym = symmatrix2sym(A)
Asym =
asym = Asym(2,3)
asym =
class(asym)
ans = 'sym'
Обратите внимание на то, что оба результата равны.
isequal(a,symmatrix(asym))
ans = logical
1
Матрицы как возвращенные eye
нули
, и ones
часто имейте особое значение с определенным обозначением в символьных рабочих процессах. При объявлении этих матриц, когда переменные символьной матрицы отображают матрицы полужирным наряду с матричными размерностями.
symmatrix(eye(3))
ans =
symmatrix(zeros(2,3))
ans =
symmatrix(ones(3,5))
ans =
Если входные параметры к покомпонентной операции в MATLAB® являются переменными символьной матрицы, выход - также. Эти операции отображены в специальных обозначениях, которые следуют соглашениям из учебников.
syms A B [3 3] matrix A.*B
ans =
A./B
ans =
A.\B
ans =
A.*hilb(3)
ans =
A.^(2*ones(3))
ans =
A.^B
ans =
kron(A,B)
ans =
adjoint(A)
ans =
trace(A)
ans =
syms
| symmatrix
| symmatrix2sym