iszero
Типичный нулевой тест
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
iszero(object
)
iszero(object)
проверяет, является ли object
нулевым элементом в области object
.
Используйте условие iszero(object)
вместо object = 0
, чтобы решить, является ли object
нулевым элементом, потому что iszero(object)
является более общим, чем object = 0
. Если вызов, bool(object = 0)
возвращает TRUE
, то iszero(object)
возвращает TRUE
также, но в целом не наоборот (см. Пример 1).
Если object
является элементом основного типа, то iszero
возвращает TRUE
точно, если одно из следующего верно: object
является целочисленный 0
(доменного типа DOM_INT
), значение с плавающей точкой 0.0
(доменного типа DOM_FLOAT
), интервал с плавающей точкой (доменного типа DOM_INTERVAL
) 0...0
или нулевой полином (доменного типа DOM_POLY
). В случае полинома результат FALSE
, как гарантируют, будет правилен, только если коэффициенты полинома находятся в нормальной форме (т.е. если нуль имеет уникальное представление в содействующем звонке). См. также Ax::normalRep
.
Если object
является элементом области библиотеки, то метод, которым "iszero"
области называется и результат, возвращен. Если этот метод не существует, то функциональный iszero
возвращает FALSE
.
iszero
выполняет чисто синтаксический нулевой тест. Если iszero
возвращает TRUE
, то ответ всегда правилен. Если iszero
возвращает FALSE
, однако, то это может все еще быть верно, что математически object
представляет нуль (см. Пример 3). В таких случаях функции MuPAD® normal
или simplify
могут смочь распознать это.
iszero
не учитывает свойства идентификаторов в object
, которые были установлены через assume
. В частности, вы не должны использовать iszero
в аргументе, переданном assume
или is
; используйте форму object = 0
вместо этого (см. Пример 2).
Не используйте iszero
в условии, переданном piecewise
. В отличие от object = 0
, команда iszero(object)
сразу оценен, прежде чем это будет передано piecewise
, в то время как оценка object = 0
обработана самим piecewise
. Таким образом использование iszero
в команде piecewise
обычно приводит к нежелательным эффектам (см. Пример 4).
iszero
обрабатывает типы основных данных:
iszero(0), iszero(1/2), iszero(0.0), iszero(I), iszero(-1...1)
iszero
работает на полиномы:
p:= poly(x^2 + y, [x]): iszero(p)
iszero(poly(0, [x, y]))
iszero
является более общим, чем =
:
bool(0 = 0), bool(0.0 = 0), bool(poly(0, [x]) = 0)
iszero(0), iszero(0.0), iszero(poly(0, [x]))
Несмотря на то, что iszero
возвращает FALSE
в следующем примере, рассматриваемое выражение математически представляет нуль:
iszero(sin(x)^2 + cos(x)^2 - 1)
В этом случае simplify
может решить это:
simplify(sin(x)^2 + cos(x)^2 - 1)
iszero
не должен использоваться в условии, переданном piecewise
:
delete x: piecewise([iszero(x), 0], [x <> 0, 1])
Первое ответвление было отброшено, потому что iszero(x)
сразу оценивает к FALSE
. Вместо этого используйте условие x = 0
, который передается неоцененный piecewise
:
piecewise([x = 0, 0], [x <> 0, 1])
|
Произвольный объект MuPAD |
object