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.
Решите это уравнение без любых предположений на переменной 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