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