exponenta event banner

Использование допущений для символьных переменных

Предположение по умолчанию

В символьных математических 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. Если требуется удалить как символический объект, так и его предположение, используйте две команды:

  1. Чтобы снять допущение, введите

    syms x
  2. Чтобы удалить символический объект, введите

    clear x

Дополнительные сведения об очистке символьных переменных см. в разделах Очистка допущений и сброс символьного механизма.

Связанные темы