С R2021a г.
Символьные матричные переменные представляют матрицы, векторы и скаляры в компактной матричной нотации. Когда математические формулы включают матрицы и векторы, запись их с использованием символьных матричных переменных более лаконична и ясна, чем запись их компонентно. При этом можно брать векторные выражения и уравнения из учебников, вводить их в символьные математические 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-by-4 матрицы символьных скалярных переменных с помощью syms. Для краткости матрицы символьных скалярных переменных иногда называют символьными матрицами. Эти матрицы отображаются путем перечисления их компонентов.
syms A B [2 3] A
A =
B
B =
Матрица символьных скалярных переменных имеет тип 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, zeros, и 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 =
symmatrix | symmatrix2sym | syms