В 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
Для получения дополнительной информации об очистке символьных переменных смотрите Clear Assumption и Reset the Symbolic Engine.