signЗнак вещественного или комплексного числа
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
sign(z)
sign(z) возвращает знак номера z.
Математически, знак комплексного числа z ≠ 0 задан как
. Для вещественных чисел это уменьшает до 1 или - 1.
sign() и sign(0.0) return 0. Пользователь может переопределить это значение прямым присвоением, например:
unprotect(sign): sign(0) := 1: protect(sign):
Если тип z DOM_INT, DOM_RAT, или DOM_FLOAT, быстрая функция ядра используется, чтобы определить знак. Возвращаемое значение или - 1, 0, или 1.
Если знак выражения не может быть определен, символьный вызов функции возвращен. Реализованы определенные упрощения. В частности, упрощены числовые факторы символьных продуктов. См. Пример 2.
expand функционируйте переписывает знак продукта к продукту знаков. Например, expand(sign(x*y)) урожаи sign(x)*sign(y). См. пример 2.
Для константных выражений, таких как PI - sqrt(2), exp(I*3) - I*sin(3) и т.д. внутренняя оценка с плавающей точкой используется, чтобы определить, представляет ли выражение ненулевое вещественное число. Если так, знак - 1 или 1 возвращен. Внутренне, приближение с плавающей точкой проверяется на надежность. См. Пример 4.
sign свойства отношений идентификаторов. Для действительных выражений результат может зависеть от значения переменной окружения DIGITS.
Мы вычисляем знак различных вещественных чисел и выражений:
sign(-8/3), sign(3.2), sign(exp(3) - sqrt(2)*PI), sign(0)
![]()
Знак комплексного числа z комплексное число z/abs(z):
sign(0.5 + 1.1*I), sign(2 + 3*I), sign(exp(sin(2 + 3*I)))
![]()
sign дает к символьному, все же упрощенному, вызов функции, если идентификаторы включены:
sign(x), sign(2*x*y), sign(2*x + y), sign(PI*exp(2 + y))
![]()
В особых случаях, expand функция может обеспечить дальнейшие упрощения:
expand(sign(2*x*y)), expand(sign(PI*exp(2 + y)))
![]()
sign свойства отношений идентификаторов:
sign(x + PI)
![]()
assume(x > -3): sign(x + PI)
![]()
unassume(x):
Следующее рациональное число аппроксимирует π приблизительно к 30 цифрам:
p:= 39269908169872415480783042291/12500000000000000000000000000:
Со стандартной точностью DIGITS =10, тест плавающий в sign не дает решающий ответ, ли p больше или меньше, чем π:
float(PI - p)
![]()
Этот результат подвергается числовому округлению и не позволяет заключение на знаке номера PI - p. Тест плавающий в sign проверяет надежность приближений с плавающей точкой. В этом случае никакой упрощенный результат не возвращен:
sign(PI - p)
![]()
С увеличенным DIGITS, может быть принято надежное решение:
DIGITS := 30: sign(PI - p)
![]()
delete p, DIGITS:
|
Арифметическое выражение.
z