Рабочая рабочая область символического двигателя, сопоставленное с 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 | Рабочая область Symbolic 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
функция в редакторе MATLAB Live Editor:
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