В символьных математических Toolbox™ по умолчанию символьные переменные являются сложными переменными. Например, при объявлении z в качестве символьной переменной с использованием
syms z
тогда MATLAB ® предполагает, чтоz является комплексной переменной. Можно всегда проверить, является ли символьная переменная сложной или действительной, используя assumptions. Если z является сложным, assumptions(z) возвращает пустой символический объект:
assumptions(z)
ans = Empty sym: 1-by-0
Чтобы задать предположение для символьной переменной, используйте assume функция. Например, предположим, что переменная x является неотрицательным:
syms x assume(x >= 0)
assume заменяет все предыдущие допущения для переменной новым предположением. Если требуется добавить новое предположение к существующим предположениям, используйте assumeAlso. Например, добавьте предположение, что x также является целым числом. Теперь переменная x - неотрицательное целое число:
assumeAlso(x,'integer')
assume и assumeAlso допустим, что переменная или выражение принадлежит одному из этих множеств: целые числа, положительные числа, рациональные числа и вещественные числа.
Кроме того, можно задать предположение при объявлении символьной переменной с помощью sym или syms. Например, создайте вещественные символьные переменные a и bи положительная символьная переменная c:
a = sym('a', 'real');
b = sym('b', 'real');
c = sym('c', 'positive');или более эффективно:
syms a b real syms c positive
Предположения, которые можно назначить символическому объекту с помощью sym или syms вещественные, рациональные, целочисленные и положительные.
Для просмотра всех допущений, установленных для символьной переменной, используйте assumptions с именем переменной в качестве входного аргумента. Например, эта команда возвращает предположения, используемые в настоящее время для переменной x:
assumptions(x)
Для просмотра всех допущений, используемых для всех символьных переменных в рабочей области MATLAB, используйте assumptions без входных аргументов:
assumptions
Дополнительные сведения см. в разделе Проверка набора допущений для переменных.
Символические объекты и их предположения хранятся отдельно. Когда вы устанавливаете предположение, что x реально с использованием
syms x assume(x,'real')
фактически создается символический объект x и предположение, что объект реален. Объект сохраняется в рабочей области MATLAB, а допущение - в символьной подсистеме. При удалении символьного объекта из рабочей области MATLAB с помощью
clear x
предположение, что x - реальное пребывание в символическом движке. При объявлении новой символьной переменной x позднее с использованием sym, он наследует предположение, что x является действительным вместо получения предположения по умолчанию. Если позже решить уравнение и упростить выражение с символической переменной x, вы можете получить неполные результаты.
Примечание
При объявлении переменной с помощью symsсуществующие допущения устранены. При объявлении переменной с помощью symсуществующие допущения не устранены.
Например, предположение, что x является действительной причиной полинома x2 + 1, чтобы не иметь корней:
syms x real
clear x
x = sym('x');
solve(x^2 + 1 == 0, x)ans = Empty sym: 0-by-1
Сложные корни этого многочлена исчезают, поскольку символьная переменная x все еще есть предположение, что x реально хранится в символьном движке. Чтобы снять допущение, введите
syms x
После удаления предположения символический объект остается в рабочем пространстве MATLAB. Если требуется удалить как символический объект, так и его предположение, используйте две команды:
Чтобы снять допущение, введите
syms xЧтобы удалить символический объект, введите
clear xДополнительные сведения об очистке символьных переменных см. в разделах Очистка допущений и сброс символьного механизма.