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
является целым числом. Но это уравнение не верно для всех комбинаций x
, y
и b
. Например, это не верно если x = y = -1, b = 1/2
. В таких случаях можно использовать предположения, чтобы получить более определенные результаты.
Если вы используете assumeAlso
в функции или процедуре, MuPAD использует то предположение только в функции или процедуре. После функции или вызова процедуры, MuPAD удаляет то предположение и только сохраняет предположения, которые были установлены перед функцией или вызовом процедуры.
Если condition
является отношением (например, x < y
), то MuPAD неявно принимает, что обе стороны отношения действительны. Смотрите Пример 4.
Чтобы удалить предположения, ранее установленные на x
, используйте unassume(x)
или delete x
.
При присвоении значения идентификатору с предположениями присвоенное значение может быть противоречивым с существующими предположениями. Присвоения перезаписывают все предположения, ранее установленные на идентификаторе. Смотрите Пример 5.
assumeAlso
принимает любой condition
и булевы комбинации condition
s. Смотрите Пример 7.
Если expr
является списком, вектором или матрицей, используйте синтаксис assumeAlso(expr, set)
. Здесь, set
должен быть задан как один из C_
, R_
, Q_
, Z_
, N_
или выражения, созданного с операциями присвоения, такими как union
, intersect
или minus
. set
также может быть функцией библиотеки Type
, например, Type::Real
, Type::Integer
, Type::PosInt
, и так далее.
Не используйте синтаксисы assumeAlso(expr in set)
и assumeAlso(condition)
для нескалярного expr
.
Решите это уравнение без любых предположений на переменной x
:
solve(x^5 - x, x)
Предположим, ваши вычисления имеют дело с вещественными числами только. В этом случае используйте функцию assume
, чтобы установить постоянное предположение, что x
действителен:
assume(x in R_)
Если вы решите то же уравнение теперь, вы получите три действительных решения:
solve(x^5 - x, x)
Если вы также хотите получить только ненулевые решения, используйте assumeAlso
, чтобы добавить соответствующее предположение:
assumeAlso(x <> 0); solve(x^5 - x, x)
MuPAD сохраняет оба предположения для дальнейших вычислений:
getprop(x)
Для дальнейших вычислений удалите идентификатор x
:
delete x
Когда вы используете 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
Можно установить отдельные предположения на действительных и мнимых частях идентификатора:
assume(Re(z) > 0); assumeAlso(Im(z) < 0):
abs(Re(z)); sign(Im(z))
Для дальнейших вычислений удалите идентификатор 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)
delete x, y:
Также можно добавить реляционное предположение, где одна сторона не является идентификатором, а выражением:
assumeAlso(x > 1/y)
getprop(x); getprop(y)
Для дальнейших вычислений удалите идентификаторы x
и y
:
delete x, y
_assign
и :=
не проверяют, имеет ли идентификатор какие-либо предположения. Операция присвоения перезаписывает все предположения:
assume(a > 0): a := -2: a, getprop(a)
Для дальнейших вычислений удалите идентификатор a
:
delete a
Используйте 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);
|
Идентификатор, математическое выражение, список, вектор или матрица, содержащая идентификаторы. Если |
|
Свойство, представляющее набор чисел или набор, возвращенный |
|
Равенство, неравенство, элемент отношения или булева комбинация (с операторами |
Пустой объект null()
типа DOM_NULL
.
assume
| assuming
| assumingAlso
| getprop
| is
| property::hasprop
| property::showprops
| unassume