Создайте переменные символьной матрицы

Начиная с R2021a

Переменные символьной матрицы представляют матрицы, векторы и скаляры в компактном матричном обозначении. Когда математические формулы включают матрицы и векторы, писание их использующий переменные символьной матрицы более кратко и ясно, чем запись их покомпонентно. Когда вы делаете это, можно взять основанные на векторе выражения и уравнения из учебников, ввести их в Symbolic Math Toolbox™, выполнить математические операции на них и вывести дальнейшие уравнения от них.

Включающие переменные символьной матрицы выведенных уравнений отображены в набранном, как они были бы в учебниках. Например, создайте три переменные символьной матрицы A, x, и y при помощи syms. Найдите дифференциал выражения yTAx относительно вектора x.

syms A [3 4] matrix
syms x [4 1] matrix
syms y [3 1] matrix
eq = y.'*A*x
eq = yTAx
D = diff(eq,x)
D = yTA

Сравнение между матрицей символьных скалярных переменных и переменными символьной матрицы

Переменные символьной матрицы являются альтернативой символьным скалярным переменным. Эти две опции имеют различные типы и отображены по-другому.

Например, создайте два 3- 4 матрицы символьных скалярных переменных при помощи syms. Для краткости матрицы символьных скалярных переменных иногда называются символьными матрицами. Эти матрицы отображены путем листинга их компонентов.

syms A B [2 3]
A
A = 

(A1,1A1,2A1,3A2,1A2,2A2,3)

B
B = 

(B1,1B1,2B1,3B2,1B2,2B2,3)

Матрица A символьных скалярных переменных имеет тип sym.

class(A)
ans = 
'sym'

Применение символьных математических операций к этим матрицам может привести к сложному решению, описанному в терминах матричных компонентов. Например, умножьте матрицы A и B'.

C = A*B'
C = 

(A1,1B1,1+A1,2B1,2+A1,3B1,3A1,1B2,1+A1,2B2,2+A1,3B2,3A2,1B1,1+A2,2B1,2+A2,3B1,3A2,1B2,1+A2,2B2,2+A2,3B2,3)

Чтобы создать переменные символьной матрицы, одного размера, используйте syms команда сопровождается именами переменных, их размером и matrix ключевое слово. Переменные символьной матрицы отображены полужирным, чтобы отличить их от символьных скалярных переменных.

syms A B [2 3] matrix
A
A = A
B
B = B

Переменные символьной матрицы имеют тип symmatrix.

class(A)
ans = 
'symmatrix'

Применение символьных математических операций к переменным символьной матрицы приводит к краткому отображению. Например, умножьте A и B'.

C = A*B'
C = ABT

Математические операции с переменными символьной матрицы

Переменные символьной матрицы распознаны некоммутативными объектами. Они поддерживают общие математические операции, и можно использовать эти операции, чтобы создать переменные выражения символьной матрицы.

syms A B [2 2] matrix
A*B - B*A
ans = AB-BA

Например, проверяйте коммутационное отношение на умножение между двумя переменными символьной матрицы.

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 = cA
class(M)
ans = 
'symmatrix'

Умножьте три матрицы, которые представлены переменными символьной матрицы. Результатом X является symmatrix объект.

syms V [2 1] matrix
X = V.'*A*V
X = VTAV
class(X)
ans = 
'symmatrix'

Можно передать symmatrix объекты в качестве аргументов к математическим функциям. Например, выполните математическую операцию к X путем взятия дифференциала X относительно V.

diff(X,V)
ans = VTAT+VTA

Создайте переменную символьной матрицы из массива символьных скалярных переменных

Можно преобразовать массив символьных скалярных переменных к одной переменной символьной матрицы использование symmatrix функция. Переменные символьной матрицы, которые преобразованы таким образом, отображены поэлементно.

syms A [3 4]
class(A)
ans = 
'sym'
B = symmatrix(A)
B = 

Σ1where  Σ1=(A1,1A1,2A1,3A1,4A2,1A2,2A2,3A2,4A3,1A3,2A3,3A3,4)

class(B)
ans = 
'symmatrix'

Преобразуйте переменную символьной матрицы в массив символьных скалярных переменных

Можно создать переменные символьной матрицы, вывести уравнения, и затем преобразовать результат в массивы символьных скалярных переменных с помощью symmatrix2sym функция.

Например, найдите матричное произведение двух переменных A символьной матрицы и B. Результат X имеет тип symmatrix.

syms A B [2 2] matrix
X = A*B
X = AB
class(X)
ans = 
'symmatrix'

Преобразуйте переменную X символьной матрицы к массиву символьных скалярных переменных. Конвертированный матричный Y имеет тип sym.

Y = symmatrix2sym(X)
Y = 

(A1,1B1,1+A1,2B2,1A1,1B1,2+A1,2B2,2A2,1B1,1+A2,2B2,1A2,1B1,2+A2,2B2,2)

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 = A2,3
class(a)
ans = 
'symmatrix'

В качестве альтернативы преобразуйте переменную A символьной матрицы к матрице символьных скалярных переменных. Затем индексируйте в ту матрицу.

Asym = symmatrix2sym(A)
Asym = 

(A1,1A1,2A1,3A2,1A2,2A2,3)

asym = Asym(2,3)
asym = A2,3
class(asym)
ans = 
'sym'

Обратите внимание на то, что оба результата равны.

isequal(a,symmatrix(asym))
ans = logical
   1

Отображение операций, включающих переменные символьной матрицы

Матрицы как возвращенные eyeнули, и ones часто имейте особое значение с определенным обозначением в символьных рабочих процессах. При объявлении этих матриц, когда переменные символьной матрицы отображают матрицы полужирным наряду с матричными размерностями.

symmatrix(eye(3))
ans = I3
symmatrix(zeros(2,3))
ans = 02,3
symmatrix(ones(3,5))
ans = 13,5

Если входные параметры к покомпонентной операции в MATLAB® являются переменными символьной матрицы, выход - также. Эти операции отображены в специальных обозначениях, которые следуют соглашениям из учебников.

syms A B [3 3] matrix
A.*B
ans = AB
A./B
ans = AB
A.\B
ans = BA
A.*hilb(3)
ans = 

AΣ1where  Σ1=(11213121314131415)

A.^(2*ones(3))
ans = A213,3
A.^B
ans = AB
kron(A,B)
ans = AB
adjoint(A)
ans = adj(A)
trace(A)
ans = Tr(A)

Смотрите также

| |

Похожие темы