exponenta event banner

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. Символьная математическая Toolbox™ не гарантирует обнаружение противоречивых предположений. Противоречивые предположения могут привести к непредсказуемым и непоследовательным результатам.

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

  • Очистка всех допущений, установленных для символьной переменной var используйте эту команду.

    assume(var,'clear')
  • Чтобы очистить все объекты в рабочей области MATLAB и закрыть механизм символьных математических инструментов, связанный с рабочей областью 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