assume
Установите постоянное предположение
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
assume(condition
) assume(expr
,set
)
assume(condition)
устанавливает предположение то условие condition
верно для всех дальнейших вычислений. Этот вызов удаляет все предыдущие предположения, содержащие идентификаторы, используемые в condition
.
assume(expr, set)
присоединяет свойство set
к идентификатору или выражению expr
. Этот вызов перезаписывает все предыдущие предположения, содержащие идентификаторы, используемые в expr
.
Предположения являются математическими условиями, которые приняты, чтобы сохраняться для всех вычислений. По умолчанию все идентификаторы MuPAD® независимы друг от друга и могут принять любое значение в комплексной плоскости. Например, sign(1 + x^2)
не может больше упрощаться, потому что MuPAD принимает тот x
комплексное число. Если вы устанавливаете предположение что x
вещественное число, затем MuPAD может упростить sign(1 + x^2)
к 1
.
Поэтому много функций MuPAD возвращают очень общие или кусочно заданные результаты, которые зависят от дальнейших условий. Например, solve
или int
может возвратить piecewise
результаты.
Много математических теорем содержат только при определенных обстоятельствах. Например, x^b*y^b = (x*y)^b
содержит если b
целое число. Но это уравнение не верно для всех комбинаций x
Y
, и b
. Например, это не верно если x = y = -1, b = 1/2
. В таких случаях можно использовать предположения, чтобы получить более определенные результаты.
Если вы используете assume
в функции или процедуре, MuPAD использует новое предположение и игнорирует существующие предположения только в функции или процедуре. После функции или вызова процедуры, MuPAD удаляет новое предположение и восстанавливает предположения, которые были установлены перед функцией или вызовом процедуры.
Если condition
отношение (например, x < y
), затем MuPAD неявно принимает, что обе стороны отношения действительны. Смотрите Пример 4.
Удалить предположения, ранее установленные на x
, используйте unassume(x)
или delete x
.
Когда вы присваиваете значение идентификатору с предположениями, присвоенное значение может быть противоречивым с существующими предположениями. Присвоения перезаписывают все предположения, ранее установленные на идентификаторе. Смотрите Пример 5.
assume
принимает любой condition
и булевы комбинации condition
s. Смотрите Пример 7.
Если expr
список, вектор или матрица, используйте синтаксис assume(expr, set)
. Здесь set
должен быть задан как один из C_
R
Q
Z
N
, или выражение, созданное с операциями присвоения, такими как union
пересечение
, или minus
Набор
также может быть функция Type
библиотека, например, Type::Real
, Type::Integer
, Type::PosInt
, и так далее.
Не используйте синтаксисы assume(expr in set)
и assume(condition)
для нескалярного expr
.
Установите предположение тот идентификатор n
целое число. Здесь, assume(n, Type::Integer)
эквивалентно assume(n in Z_)
потому что n
скаляр.
assume(n, Type::Integer): assume(n in Z_): getprop(n);
Проверяйте если n^2
неотрицательное целое число. MuPAD использует предположение, что вы устанавливаете на n
.
is(n^2, Type::NonNegInt)
Другие системные функции принимают это предположение во внимание:
abs(n^2 + 1); simplify(sin(2*n*PI))
Для дальнейших расчетов удалите идентификатор n
:
delete n
Чтобы сохранить существующие предположения и объединить их с новыми единицами, используйте assumeAlso
:
assume(n, Type::Integer): getprop(n);
assumeAlso(n, Type::Positive): getprop(n);
Для дальнейших расчетов удалите идентификатор n
:
delete n
В качестве альтернативы установите несколько предположений в одном вызове функции:
assume(n, Type::Integer and Type::Positive): getprop(n);
Для дальнейших расчетов удалите идентификатор n
:
delete n
Можно установить отдельные предположения на действительных и мнимых частях идентификатора:
assume(Re(z) > 0); assumeAlso(Im(z) < 0):
abs(Re(z)); sign(Im(z))
is(z, Type::Real), is(z > 0)
Для дальнейших расчетов удалите идентификатор z
:
delete z
Используя 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)
Также можно установить реляционное предположение, где одна сторона не является идентификатором, а выражением:
assume(x > 1/y)
getprop(x); getprop(y)
Для дальнейших расчетов удалите идентификаторы x
и y
:
delete x, y
_assign
и :=
не проверяйте, имеет ли идентификатор какие-либо предположения. Операция присвоения перезаписывает все предположения:
assume(a > 0): a := -2: a, getprop(a)
Для дальнейших расчетов удалите идентификатор a
:
delete a
Установите предположение, что x положителен, и найдите абсолютное значение x
, знак x
, и действительные и мнимые части x
. Эти системные функции берут набор предположений на идентификаторах во внимание:
assume(x > 0): abs(x), sign(x), Re(x), Im(x)
Попытайтесь расширить выражение ln(z1*z2)
без дополнительных предположений. Это не расширяется потому что ln(z1*z2) = ln(z1) + ln(z2)
не верно для произвольного z1
, z2
в комплексной плоскости:
expand(ln(z1*z2))
Теперь установите предположение, что один номер действителен и положителен. Расширьте то же выражение:
assume(z1 > 0): expand(ln(z1*z2))
Для дальнейших расчетов удалите предположения на x
и z1
:
unassume(x); unassume(z1)
Установите эти два предположения на идентификаторе a
. Чтобы объединить предположения, используйте булев оператор and
:
assume(a > 0 and a in Z_): is(a = 0); is(a = 1/2); is(a = 2);
|
Идентификатор, математическое выражение, список, вектор или матрица, содержащая идентификаторы. Если |
|
Свойство, представляющее набор чисел или набор, возвращенный Например, этот набор может быть элементом |
|
Равенство, неравенство, элемент отношения или булева комбинация (с операторами |
Пустой объект null()
из типа DOM_NULL
.
assumeAlso
| assuming
| assumingAlso
| getprop
| is
| property::hasprop
| property::showprops
| unassume