exponenta event banner

Выбирать syms или sym Функция

В символьных математических Toolbox™ можно объявить символические объекты с помощью одного syms или sym. Эти две функции концептуально различны.

  • syms функция создает символический объект, который автоматически назначается переменной MATLAB ® с тем же именем.

  • sym функция относится к символьному объекту, который может быть назначен переменной MATLAB с тем же именем или другим именем.

Назначение символьных переменных переменным MATLAB

syms функция создает переменную динамически. Например, команда syms x создает символьную переменную x и автоматически назначает его переменной MATLAB с тем же именем.

syms x
x
x = xx

sym функция относится к символьной переменной, которую затем можно назначить переменной MATLAB с другим именем. Например, команда f1 = sym('x') относится к символьной переменной x и назначает его переменной MATLAB f1.

f1 = sym('x')
f1 = xx

Создать символическое число

Используйте syms функция для создания символьной переменной x и автоматически присваивать его переменной MATLAB x. При присвоении номера переменной MATLAB x, число представлено двойной точностью, и это назначение перезаписывает предыдущее назначение символьной переменной. Класс x становится double.

syms x
x = 1/33
x = 0.0303
class(x)
ans = 
'double'

Используйте sym для ссылки на точное символьное число без аппроксимации с плавающей запятой. Затем этот номер можно присвоить переменной MATLAB. x. Класс x является sym.

x = sym('1/33')
x = 

133sym(1/33)

class(x)
ans = 
'sym'

Создание символьной переменной с допущениями

При создании символьной переменной с предположением MATLAB сохраняет ее отдельно.

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

syms x positive
syms x
assumptions
 
ans =
 
Empty sym: 1-by-0
 

Использовать sym для ссылки на существующую символьную переменную. Если эта символьная переменная использовалась в сеансе MATLAB ранее, то sym относится к нему и его нынешнему предположению. Если он не использовался раньше, то sym создает его без предположений.

syms x positive
x = sym('x');
assumptions
ans = 0<x0 < x

Создание нескольких символьных переменных

Для одновременного создания нескольких символьных переменных используйте syms функция удобнее. В одной строке кода можно создать несколько переменных.

syms a b c

При использовании sym, необходимо объявлять переменные MATLAB поочередно и ссылаться на соответствующие символьные переменные.

a = sym('a');
b = sym('b');
c = sym('c');

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

Чтобы объявить символьный массив, содержащий символьные переменные в качестве его элементов, можно использовать либо syms или sym.

Команда syms a [1 3] создает символьный массив 1 на 3 a и символьные переменные a1, a2, и a3 в рабочей области. Символьные переменные a1, a2, и a3 автоматически назначаются символьному массиву a.

clear
syms a [1 3]
a
a = (a1a2a3)[a1, a2, a3]
whos
  Name      Size            Bytes  Class    Attributes

  a         1x3                 8  sym                
  a1        1x1                 8  sym                
  a2        1x1                 8  sym                
  a3        1x1                 8  sym                

Команда a = sym('a',[1 3]) относится к символьным переменным a1, a2, и a3, которые назначены символьному массиву a в рабочей области. Элементы a1, a2, и a3 не создаются в рабочей области.

clear
a = sym('a',[1 3])
a = (a1a2a3)[a1, a2, a3]
whos
  Name      Size            Bytes  Class    Attributes

  a         1x3                 8  sym                

Символьная переменная во вложенной функции

Чтобы объявить символьную переменную во вложенной функции, используйте sym. Например, можно явно определить переменную MATLAB. x в рабочей области родительской функции и см. x к символьной переменной с тем же именем.

function primaryFx
    x = sym('x')
    function nestedFx
        ...
    end
end

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

Связанные темы