Очистить допущения и сбросить символьный Engine

Рабочая рабочая область символического двигателя, сопоставленное с 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
1syms x positive
или
syms x;
assume(x > 0)
xx > 0
2clear xпустойx > 0
3syms xxпустой
4clear 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