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
пересечение
, или minus
Набор
также может быть функция Type
библиотека, например, Type::Real
, Type::Integer
, Type::PosInt
, и так далее.
Не используйте синтаксисы assumeAlso(expr in set)
и assumeAlso(condition)
для нескалярного expr
.
Решите это уравнение без любых предположений на переменной 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
Когда вы используете 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