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 |
---|---|---|---|
1 | syms x positive или syms x; | x | x > 0 |
2 | clear x | пустой | x > 0 |
3 | syms x | x | пустой |
Чтобы проверять, имеет ли переменная, скажем 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