assumeAlso

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

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

assumeAlso(condition)
assumeAlso(expr, set)

Описание

assumeAlso(condition) добавляет предположение что condition верно для всех дальнейших вычислений. Это не удаляет предыдущие предположения, содержащие идентификаторы, используемые в condition.

assumeAlso(expr, set) присоединяет свойство set к идентификатору или выражению x. Это не удаляет предыдущие предположения, содержащие идентификаторы, используемые в expr.

Предположения являются математическими условиями, которые приняты, чтобы сохраняться для всех вычислений. По умолчанию все идентификаторы MuPAD® независимы друг от друга и могут принять любое значение в комплексной плоскости. Например, sign(1 + x^2) не может больше упрощаться потому что x MuPAD принимает тот x комплексное число. Если вы устанавливаете предположение что x вещественное число, затем MuPAD может упростить sign(1 + x^2) к 1.

Поэтому много функций MuPAD возвращают очень общие или кусочно заданные результаты в зависимости от дальнейших условий. Например, solve или int может возвратить piecewise результаты.

Много математических теорем содержат только при определенных обстоятельствах. Например, x^b*y^b=(x*y)^b содержит если b целое число. Но это уравнение не верно для всех комбинаций xY, и b. Например, это не верно если x = y = -1, b = 1/2. В таких случаях можно использовать предположения, чтобы получить более определенные результаты.

Если вы используете assumeAlso в функции или процедуре, MuPAD использует то предположение только в функции или процедуре. После функции или вызова процедуры, MuPAD удаляет то предположение и только сохраняет предположения, которые были установлены перед функцией или вызовом процедуры.

Если condition отношение (например, x < y), затем MuPAD неявно принимает, что обе стороны отношения действительны. Смотрите Пример 4.

Удалить предположения, ранее установленные на x, используйте unassume(x) или delete x.

При присвоении значения идентификатору с предположениями присвоенное значение может быть противоречивым с существующими предположениями. Присвоения перезаписывают все предположения, ранее установленные на идентификаторе. Смотрите Пример 5.

assumeAlso принимает любой condition и булевы комбинации conditions. Смотрите Пример 7.

Если expr список, вектор или матрица, используйте синтаксис assumeAlso(expr, set). Здесь, set должен быть задан как один из C_RQZN, или выражение, созданное с операциями присвоения, такими как unionпересечение, или minusНабор также может быть функция Type библиотека, например, Type::Real, Type::Integer, Type::PosInt, и так далее.

Не используйте синтаксисы assumeAlso(expr in set) и assumeAlso(condition) для нескалярного expr.

Примеры

Пример 1

Решите это уравнение без любых предположений на переменной x:

solve(x^5 - x, x)

Предположим, ваши расчеты имеют дело с вещественными числами только. В этом случае используйте assume функционируйте, чтобы установить постоянное предположение что x isreal:

assume(x in R_)

Если вы решите то же уравнение теперь, вы получите три действительных решения:

solve(x^5 - x, x)

Если вы также хотите получить только ненулевые решения, используйте assumeAlso добавить соответствующее предположение:

assumeAlso(x <> 0);
solve(x^5 - x, x)

MuPAD сохраняет оба предположения для дальнейших расчетов:

getprop(x)

Для дальнейших расчетов удалите идентификатор x:

delete x

Пример 2

Когда вы используете assumeAlso, MuPAD не удаляет существующие предположения. Вместо этого это комбинирует их с новыми предположениями. Например, примите тот n целое число:

assume(n, Type::Integer):
getprop(n);

Добавьте предположение что n положительно:

assumeAlso(n, Type::Positive):
getprop(n);

Для дальнейших расчетов удалите идентификатор n:

delete n

В качестве альтернативы установите несколько предположений в одном вызове функции с помощью булева оператора and:

assume(n, Type::Integer and Type::Positive):
getprop(n);

Для дальнейших расчетов удалите идентификатор n:

delete n

Пример 3

Можно установить отдельные предположения на действительных и мнимых частях идентификатора:

assume(Re(z) > 0);
assumeAlso(Im(z) < 0):
abs(Re(z));
sign(Im(z))

Для дальнейших расчетов удалите идентификатор z:

delete z

Пример 4

Используя assume, установите предположение x > y. Набор предположений как отношения влияет на свойства обоих идентификаторов.

assume(x > y)

Чтобы видеть набор предположений на идентификаторах, используйте getprop:

getprop(x);
getprop(y);

Сохранить существующее предположение на y и добавьте новый, используйте assumeAlso. Например, добавьте новое предположение что y больше 0 при хранении предположения, что y меньше x:

assumeAlso(y > 0)
is(x^2 >= y^2)

Отношения, такие как x > y, подразумевайте, что включенные идентификаторы действительны:

is(x, Type::Real), is(y, Type::Real)

delete x, y:

Также можно добавить реляционное предположение, где одна сторона не является идентификатором, а выражением:

assumeAlso(x > 1/y)
getprop(x);
getprop(y)

Для дальнейших расчетов удалите идентификаторы x и y:

delete x, y

Пример 5

_assign и := не проверяйте, имеет ли идентификатор какие-либо предположения. Операция присвоения перезаписывает все предположения:

assume(a > 0):
a := -2:
a, getprop(a)

Для дальнейших расчетов удалите идентификатор a:

delete a

Пример 7

Используйте assume установить предположение что идентификатор a положительно:

assume(a > 0)

Теперь добавьте два новых предположения с помощью одного вызова assumeAlso. Чтобы объединить предположения, используйте булев оператор and:

assumeAlso(a in Z_ and a < 5):
is(a = 0);
is(a = 1/2);
is(a = 2);
is(a = 6);

Параметры

expr

Идентификатор, математическое выражение, список, вектор или матрица, содержащая идентификаторы.

Если expr список, вектор или матрица, затем только синтаксис assumeAlso(expr, set) isvalid.

set

Свойство, представляющее набор чисел или набор, возвращенный solve. Этот набор может быть элементом Dom::Interval, Dom::ImageSet, piecewise, или один из C_RQZN. Это также может быть выражение, созданное с операциями присвоения, такими как unionпересечение или minus. Для большего количества примеров смотрите Свойства.

condition

Равенство, неравенство, элемент отношения или булева комбинация (с операторами and или or).

Возвращаемые значения

Пустой объект null() из типа DOM_NULL.