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')

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

свернуть все

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