Символьная рабочая область механизма, сопоставленная с рабочей областью MATLAB®, обычно пуста. Рабочее пространство MATLAB отслеживает значения символьных переменных и передает их символьному механизму для оценки по мере необходимости. Однако символьная рабочая область механизма содержит все предположения, которые вы делаете о символьных переменных, такой как, является ли переменная действительной, положительной, целочисленной, больше или меньше, чем определенное значение и так далее. Эти предположения могут влиять на решения уравнений, упрощений и преобразований, как объяснено в Эффектах Предположений на Расчетах.
Например, создайте символьную переменную x
и примите, что это положительно.
syms x assume(x > 0)
Если вы очищаете переменную x
использование команды clear x
, рабочее пространство MATLAB не очищает предположение от символьной рабочей области механизма.
clear x assumptions
ans = 0 < x
Очистить предположение для переменной x
, используйте команду assume(x,'clear')
.
syms x assume(x > 0) assume(x,'clear') assumptions
ans = Empty sym: 1-by-0
В качестве альтернативы можно создать новую символьную переменную без предположений с помощью syms
.
syms x
Если вы хотите очистить символьную переменную и также сбросить символьный механизм, используйте команду clear all
.
syms x positive clear all whos assumptions
ans = Empty sym: 1-by-0
Следующее показывает, как рабочее пространство MATLAB и символьная рабочая область механизма отличаются по их ответам на последовательность команд.
Шаг | Команда | Рабочее пространство MATLAB | Символьная рабочая область Engine |
---|---|---|---|
1 | syms x positive или syms x; assume(x > 0) | x | x > 0 |
2 | clear x | пустой | x > 0 |
3 | syms x | x | пустой |
4 | clear all | пустой | пустой |
Чтобы проверять ли переменная, скажите x
, имеет любые предположения в символьной рабочей области механизма, сопоставленной с рабочим пространством MATLAB, используйте assumptions
функция в Live Editor MATLAB:
assumptions(x)
Если функция возвращает пустой символьный объект, на переменной нет никаких дополнительных предположений. Предположением по умолчанию является тот x
представляет любое комплексное число. В противном случае существуют дополнительные предположения на значении, что переменная представляет.
Например, при объявлении символьной переменной x
, сделайте предположение, что значение этой переменной является вещественным числом.
syms x real assumptions(x)
ans = in(x, 'real')
Другой способ установить предположение состоит в том, чтобы использовать assume
функция.
syms z assume(z ~= 0); assumptions(z)
ans = z ~= 0
Чтобы видеть набор предположений на всех переменных в рабочем пространстве MATLAB, используйте assumptions
без входных параметров.
assumptions
ans = [ in(x, 'real'), z ~= 0]
Очистите набор предположений на x
и z
.
assume([x z],'clear')
assumptions
ans = Empty sym: 1-by-0
Эквивалентно, следующая команда также очищает предположения от x
и z
.
syms x z
Предположения могут влиять на многие расчеты, включая результаты, возвращенные solve
и simplify
функции. Например, решите это уравнение без любых дополнительных предположений на его переменной.
syms x solve(x^4 == 1, x)
ans = -1 1 -1i 1i
Теперь примите тот x
действительно, и решите то же уравнение.
syms x real solve(x^4 == 1, x)
ans = -1 1
Используйте assumeAlso
функция, чтобы добавить предположение, что x
также положительно.
assumeAlso(x > 0) solve(x^4 == 1, x)
ans = 1
Очистка x
не изменяет базовые предположения что x
действительно и положителен.
clear x x = sym('x'); assumptions(x) solve(x^4 == 1, x)
ans = [ in(x, 'real'), 0 < x] ans = 1
Очистка x
с assume(x,'clear')
или syms x
очищает предположения.
syms x assumptions(x)
ans = Empty sym: 1-by-0