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

Примечание

Symbolic Math Toolbox™ включает операции и функции для символьных математических выражений, которые параллельны функциональности MATLAB® для числовых значений. В отличие от функциональности MuPAD®, функции Symbolic Math Toolbox позволяют вам работать в знакомых интерфейсах, таких как Окно Команды MATLAB или Live Editor, которые предлагают сглаженный рабочий процесс и оптимизированы для удобства пользования.

Поэтому используйте эквивалентную функциональность Symbolic Math Toolbox, чтобы работать с символьными математическими выражениями. Для списка доступных функций см. список функций Symbolic Math Toolbox.

Если вы не можете найти Symbolic Math Toolbox эквивалентным для функциональности MuPAD, свяжитесь с MathWorks Technical Support.

Символьная рабочая область механизма, сопоставленная с рабочим пространством MATLAB, обычно пуста. Рабочее пространство MATLAB отслеживает значения символьных переменных и передает их символьному механизму для оценки по мере необходимости. Однако символьная рабочая область механизма содержит все предположения, которые вы делаете о символьных переменных, такой как, является ли переменная действительной, положительной, целочисленной, больше или меньше, чем некоторое значение и так далее. Эти предположения могут влиять на решения уравнений, упрощений и преобразований, как объяснено в Эффектах Предположений на Вычислениях.

Примечание

Эти команды

x = sym('x');
clear x
очистите любое существующее значение x в рабочем пространстве MATLAB, но не очищайте предположения о x в символьной рабочей области механизма. Однако
syms x
действительно очищает предположения о x.

Если вы делаете предположение о природе переменной, например, с помощью команд

syms x
assume(x,'real')

или

syms x
assume(x > 0)

затем очистка переменной x из рабочего пространства MATLAB не очищает предположение от символьной рабочей области механизма. Чтобы очистить предположение, введите команду

assume(x,'clear')

или, эквивалентно,

syms x

Для получения дополнительной информации смотрите Набор Предположений Проверки На Переменных и Эффектах Предположений на Вычислениях.

Если вы сбрасываете символьный механизм путем ввода команды

reset(symengine)

MATLAB больше не распознает символьных переменных, которые существуют в рабочем пространстве MATLAB. Очистите переменные с командой clear или возобновите их с командой sym или syms.

Этот пример показывает, как рабочее пространство MATLAB и символьная рабочая область механизма отвечают на последовательность команд.

ШагКомандаРабочее пространство MATLABРабочая область MuPAD Engine
1syms x positive
или
syms x;
примите (x> 0)
xx > 0
2clear xпустойx > 0
3syms xxпустой

Проверяйте набор предположений на переменных

Чтобы проверять, имеет ли переменная, скажем 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. Они также могут влиять на результаты упрощений. Например, решите это уравнение без любых дополнительных предположений на его переменной:

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