symmatrix

Создайте символьную матричную переменную

Описание

пример

X = symmatrix('X',[nrow ncol]) создает nrow-by- ncol символьная матричная переменная X. Символьные матричные переменные представляют матрицы, векторы и скаляры в компактном матричном обозначении. Для получения дополнительной информации см. Раздел «Создание переменных символьной матрицы»

пример

X = symmatrix('X',n) создает n-by- n символьная матричная переменная X.

X = symmatrix('X') создает переменную символьной матрицы 1 на 1 X.

пример

X = symmatrix(S) преобразует числовую матрицу или матрицу символьных скалярных переменных, заданную как S в символьную матричную переменную X.

Примеры

свернуть все

Создайте две переменные символьной матрицы с 2 size-by- 3. Нескалярные переменные символьной матрицы отображаются жирными символами в Live Editor и Командном окне.

A = symmatrix('A',[2 3])
A = Asymmatrix('A', [2 3])
B = symmatrix('B',[2 3])
B = Bsymmatrix('B', [2 3])

Добавьте две матрицы. Суммирование двух переменных символьной матрицы обозначается матричным обозначением A+B.

X = A + B
X = A+Bsymmatrix('A', [2 3]) + symmatrix('B', [2 3])

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

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

A = symmatrix('A',[2 2]);
B = symmatrix('B',[2 2]);

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

A*B - B*A
ans = AB-BAsymmatrix('A', [2 2])*symmatrix('B', [2 2]) - symmatrix('B', [2 2])*symmatrix('A', [2 2])
isequal(A*B,B*A)
ans = logical
   0

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

isequal(A+B,B+A)
ans = logical
   1

Создание 3-by- 3 и 3-by- 1 символьные матричные переменные.

A = symmatrix('A',3)
A = Asymmatrix('A', [3 3])
X = symmatrix('X',[3 1])
X = Xsymmatrix('X', [3 1])

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

f = X.'*A*X;
H = diff(f,X,X.')
H = AT+Aтранспонирование (симматрица ('A', [3 3])) + симматрица ('A', [3 3])

Создайте Гильбертову матрицу порядка 4. Тип данных матрицы double.

H = hilb(4)
H = 4×4

    1.0000    0.5000    0.3333    0.2500
    0.5000    0.3333    0.2500    0.2000
    0.3333    0.2500    0.2000    0.1667
    0.2500    0.2000    0.1667    0.1429

class(H)
ans = 
'double'

Преобразуйте числовую матрицу в символьную матрицу переменную. Тип данных преобразованной матрицы symmatrix.

X = symmatrix(H)
X = 

(1121314121314151314151614151617)[sym (1), sym (1/2), sym (1/3), sym (1/4); sym (1/2), sym (1/3), sym (1/4), sym (1/5); sym (1/3), sym (1/4), sym (1/5), sym (1/6); sym (1/4), sym (1/5), sym (1/6), sym (1/7)]

class(X)
ans = 
'symmatrix'

Создайте две переменные символьной матрицы с 2 size-by- 2.

A = symmatrix('A',2)
A = Asymmatrix('A', [2 2])
B = symmatrix('B',2)
B = Bsymmatrix('B', [2 2])

Выполните матричное умножение между A и B. Умножение двух переменных символьной матрицы представлено матричным обозначением AB.

X = A*B
X = ABsymmatrix('A', [2 2])*symmatrix('B', [2 2])

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

S = symmatrix2sym(X)
S = 

(A1,1B1,1+A1,2B2,1A1,1B1,2+A1,2B2,2A2,1B1,1+A2,2B2,1A2,1B1,2+A2,2B2,2)[A1_1*B1_1 + A1_2*B2_1, A1_1*B1_2 + A1_2*B2_2; A2_1*B1_1 + A2_2*B2_1, A2_1*B1_2 + A2_2*B2_2]

Входные параметры

свернуть все

Имя переменной, заданное как вектор символов. Аргументы в X должно быть допустимым именем переменной. То есть X должен начинаться с буквы и может содержать только алфавитно-цифровые символы и символ нижнего подчеркивания. Чтобы убедиться, что имя является допустимым именем переменной, используйте isvarname.

Пример: x, y12, z_1

Векторные или матричные размерности, заданные как вектор из целых чисел. nrow количество строк и ncol количество столбцов. В качестве ярлыка можно создать переменную квадратной символьной матрицы, задав только одно целое число. Для примера, X = symmatrix('X',3) создает квадратную 3-by- 3 символьная матричная переменная.

Пример: [2 3], [2,3]

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

Пример: 10, eye(3), pi, hilb(3)

Ограничения

  • Используя Symbolic Math Toolbox™, можно создать символические функции, которые зависят от символьных скалярных переменных в качестве параметров. Однако переменные символьной матрицы не могут быть зависящими от параметра. Для примера, команда symmatrix('A(x)',[3 2]) в настоящее время ошибки.

  • Функции дифференцирования, такие как jacobian и laplacian, в настоящее время не принимают переменные символьной матрицы как входные. Чтобы вычислить дифференциацию относительно векторов и матриц, можно использовать diff вместо этого функция.

  • Чтобы показать все функции в Symbolic Math Toolbox, которые принимают переменные символьной матрицы в качестве входных параметров, используйте команду methods symmatrix.

Альтернативная функциональность

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

Чтобы создать несколько символьных матричных переменных в одном вызове функции, используйте syms var1 ... varN [nrow ncol] matrix. Для получения дополнительной информации см. syms.

Введенный в R2021a