В Symbolic Math Toolbox™ символьные переменные являются комплексными переменными по умолчанию. Например, если вы объявляете z
как символьное переменное использование
syms z
затем MATLAB® принимает, что z
является комплексной переменной. Можно всегда проверять, принята ли символьная переменная, чтобы быть комплексной или действительной при помощи assumptions
. Если z
является комплексным, assumptions(z)
возвращает пустой символьный объект:
assumptions(z)
ans = Empty sym: 1-by-0
Чтобы установить предположение на символьной переменной, используйте функцию assume
. Например, примите, что переменная x
является неотрицательной:
syms x assume(x >= 0)
assume
заменяет все предыдущие предположения на переменной с новым предположением. Если вы хотите добавить новое предположение существующим предположениям, используйте assumeAlso
. Например, добавьте предположение, что x
является также целым числом. Теперь переменная x
является неотрицательным целым числом:
assumeAlso(x,'integer')
assume
и assumeAlso
позволяют вам утвердить, что переменная или выражение принадлежат одному из этих наборов: целые числа, положительные числа, рациональные числа и вещественные числа.
Также можно установить предположение при объявлении символьной переменной с помощью sym
или syms
. Например, создайте действительные символьные переменные a
и b
и положительную символьную переменную c
:
a = sym('a', 'real'); b = sym('b', 'real'); c = sym('c', 'positive');
или более эффективно:
syms a b real syms c positive
Предположения, что можно присвоить символьному объекту с sym
или syms
, являются действительными, рациональными, целочисленными и положительными.
Чтобы видеть весь набор предположений на символьной переменной, используйте функцию assumptions
с именем переменной как входной параметр. Например, эта команда возвращает предположения, в настоящее время используемые для переменной x
:
assumptions(x)
Чтобы видеть все предположения, используемые для всех символьных переменных в рабочем пространстве MATLAB, используйте assumptions
без входных параметров:
assumptions
Для получения дополнительной информации смотрите Набор Предположений Проверки На Переменных.
Символьные объекты и их предположения хранятся отдельно. Когда вы устанавливаете предположение, что x
является действительным использованием
syms x assume(x,'real')
вы на самом деле создаете символьный объект x
и предположение, что объект действителен. Объект хранится в рабочем пространстве MATLAB, и предположение хранится в символьном механизме. Когда вы удаляете символьный объект из использования рабочего пространства MATLAB
clear x
предположение, что x
является действительным пребыванием в символьном механизме. Если вы объявляете новую символьную переменную x
позже с помощью sym
, это наследовало предположение, что x
действителен вместо того, чтобы получить предположение по умолчанию. Если позже вы решаете уравнение и упрощаете выражение с символьной переменной x
, вы могли получить неполные результаты.
Если вы объявляете переменную с помощью syms
, существующие предположения очищены. Если вы объявляете переменную с помощью sym
, существующие предположения не очищены.
Например, предположение, что x
является действительными причинами полиномиальный x
2 + 1, чтобы не иметь никаких корней:
syms x real clear x x = sym('x'); solve(x^2 + 1 == 0, x)
ans = Empty sym: 0-by-1
Комплексные корни этого полинома исчезают, потому что символьная переменная x
все еще имеет предположение, что x
действителен сохраненный в символьном механизме. Чтобы очистить предположение, войти
syms x
После того, как вы очистите предположение, символьный объект остается в рабочем пространстве MATLAB. Если вы хотите удалить и символьный объект и его предположение, используйте две команды:
Чтобы очистить предположение, войти
syms x
Чтобы удалить символьный объект, войти
clear x
Для получения дополнительной информации при очищении символьных переменных, смотрите Ясные Предположения и Сброс Символьный Engine.