assumeAlso

Добавьте предположение на символьном объекте

Описание

пример

assumeAlso(condition) состояния, что condition допустимо для всех символьных переменных в condition. Это сохраняет все предположения, ранее установленные на этих символьных переменных.

пример

assumeAlso(expr,set) состояния, что expr принадлежит set, в дополнение ко всем ранее сделанным предположениям.

Примеры

Предположения, заданные как отношения

Установите предположения с помощью assume. Затем добавьте больше предположений с помощью assumeAlso.

Решите это уравнение, принимающее это оба x и y являются неотрицательными.

syms x y
assume(x >= 0 & y >= 0)
s = solve(x^2 + y^2 == 1, y)
Warning: Solutions are valid under the following
conditions: x <= 1;
x == 1.
 To include parameters and conditions in the
 solution, specify the 'ReturnConditions' value as
'true'. 
> In solve>warnIfParams (line 482)
  In solve (line 357) 
s =
  (1 - x)^(1/2)*(x + 1)^(1/2)
 -(1 - x)^(1/2)*(x + 1)^(1/2)

Решатель предупреждает, что оба решения содержат только при определенных обстоятельствах.

Добавьте предположение что x < 1. Чтобы добавить новое предположение, не удаляя предыдущее, используйте assumeAlso.

assumeAlso(x < 1)

Решите то же уравнение под расширенным набором предположений.

s = solve(x^2 + y^2 == 1, y)
s =
(1 - x)^(1/2)*(x + 1)^(1/2)

Для дальнейших расчетов очистите предположения.

assume([x y],'clear')

Предположения, заданные как наборы

Установите предположения с помощью syms. Затем добавьте больше предположений с помощью assumeAlso.

При объявлении символьной переменной n, установите предположение что n положительно.

syms n positive

Используя assumeAlso, добавьте больше предположений на той же переменной n. Например, примите также тот n целое число.

assumeAlso(n,'integer')

Возвратите все предположения, влияющие на переменную n использование assumptions. В этом случае, n положительное целое число.

assumptions(n)
ans =
[ 0 < n, in(n, 'integer')]

Для дальнейших расчетов очистите предположения.

assume(n,'clear')

Предположения на элементах матрицы

Используйте предположение на матрице как ярлык для установки того же предположения на каждом элементе матрицы.

Создайте 3х3 символьную матрицу A с автоматически сгенерированными элементами. Принимать каждый элемент A рационально, задайте set как 'rational'.

A = sym('A',[3 3],'rational')
A =
[ A1_1, A1_2, A1_3]
[ A2_1, A2_2, A2_3]
[ A3_1, A3_2, A3_3]

Теперь добавьте предположение что каждый элемент A больше 1.

assumeAlso(A > 1)

Возвратите предположения, влияющие на элементы A использование assumptions:

assumptions(A)
ans =
[ 1 < A1_1, 1 < A1_2, 1 < A1_3, 1 < A2_1, 1 < A2_2, 1 < A2_3,...
 1 < A3_1, 1 < A3_2, 1 < A3_3,...
 in(A1_1, 'rational'), in(A1_2, 'rational'), in(A1_3, 'rational'),...
 in(A2_1, 'rational'), in(A2_2, 'rational'), in(A2_3, 'rational'),...
 in(A3_1, 'rational'), in(A3_2, 'rational'), in(A3_3, 'rational')]

Для дальнейших расчетов очистите предположения.

assume(A,'clear')

Противоречие предположениям

Когда вы добавляете предположения, гарантируете, что новые предположения не противоречат предыдущим предположениям. Противоречие предположениям может привести к противоречивым и непредсказуемым результатам. В некоторых случаях, assumeAlso обнаруживает конфликтные предположения и выдает ошибку.

Попытайтесь установить предположения противоречия. assumeAlso возвращает ошибку.

syms y
assume(y,'real')
assumeAlso(y == i)
Error using mupadengine/feval (line 172)
Inconsistent assumptions.
Error in sym/assumeAlso (line 627)
                feval(symengine, 'assumeAlso', cond);

assumeAlso не гарантирует, что обнаружил предположения противоречия. Например, примите тот y является ненулевым, и оба y и y*i действительные значения.

syms y
assume(y ~= 0)
assumeAlso(y,'real')
assumeAlso(y*i,'real')

Возвратите все предположения, влияющие на переменную y использование assumptions:

assumptions(y)
ans =
[ in(y, 'real'), in(y*1i, 'real'), y ~= 0]

Для дальнейших расчетов очистите предположения.

assume(y,'clear')

Входные параметры

свернуть все

Оператор Assumption в виде символьного выражения, уравнения, отношения, или вектора или матрицы символьных выражений, уравнений или отношений. Также можно объединить несколько предположений при помощи логических операторов and, orxor, not, или их ярлыки.

Выражение, чтобы установить предположение на в виде символьной переменной, выражения, или вектора или матрицы символьных переменных или выражений. Если expr вектор или матрица, затем assumeAlso(expr,set) устанавливает предположение что каждый элемент expr принадлежит set.

Ряд допущений в виде вектора символов, массива строк или массива ячеек. Доступными предположениями является 'integer', 'rational'действительный, или 'positive'.

Можно объединить несколько предположений путем определения массива строк или массива ячеек из символьных векторов. Например, примите положительное рациональное значение путем определения set как ["positive" "rational"] или {'positive','rational'}.

Советы

  • assumeAlso сохраняет все предположения ранее установленными на символьных переменных. Чтобы заменить предыдущие предположения на новое, используйте assume.

  • При добавлении предположений всегда проверяйте, что новое предположение не противоречит существующим предположениям. Чтобы видеть существующие предположения, используйте assumptions. Symbolic Math Toolbox™ не гарантирует, что обнаружил конфликтные предположения. Конфликтные предположения могут привести к непредсказуемым и противоречивым результатам.

  • Когда вы удаляете символьную переменную из рабочей области MATLAB® с помощью clear, все предположения, что вы устанавливаете на той переменной, остаются в символьном механизме. Если позже вы объявляете новую символьную переменную с тем же именем, это наследовало эти предположения.

  • Очистить весь набор предположений на символьной переменной var используйте эту команду.

    assume(var,'clear')
  • Чтобы очистить все объекты в рабочем пространстве MATLAB и закрыть механизм Symbolic Math Toolbox, сопоставленный с рабочим пространством MATLAB, сбрасывающим все его предположения, используйте эту команду.

    clear all
  • Комплексные числа проектов MATLAB в неравенствах к вещественной оси. Если condition неравенство, затем обе стороны неравенства должны представлять действительные значения. Неравенства с комплексными числами недопустимы, потому что поле комплексных чисел не является упорядоченным полем. (Невозможно сказать ли 5 + i больше или меньше, чем 2 + 3*i.), Например, x > i становится x > 0, и x <= 3 + 2*i становится x <= 3.

  • Тулбокс не поддерживает предположения на символьных функциях. Сделайте предположения на символьных переменных и выражениях вместо этого.

  • Вместо того, чтобы добавить предположения один за другим, можно установить несколько предположений в одном вызове функции. Чтобы установить несколько предположений, используйте assume и объедините эти предположения при помощи логических операторов and, orxor, notвселюбой, или их ярлыки.

Представленный в R2012a