assumeAlso

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

Синтаксис

assumeAlso(condition)
assumeAlso(expr,set)

Описание

пример

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 195)
Inconsistent assumptions.
Error in sym/assumeAlso (line 622)
                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, or, xor, not или их ярлыки.

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

Ряд допущений, заданный как вектор символов, массив строк или массив ячеек. Доступными предположениями является 'integer', 'rational', 'real' или '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, or, xor, not, all, any или их ярлыки.

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