Символьное рабочее пространство модуля, связанное с рабочим пространством 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 | Рабочее пространство символьного модуля |
|---|---|---|---|
| 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:
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