In mathematics, the sign function or signum function (from signum, Latin for “sign”) is an odd mathematical function that extracts the sign of a real number. In mathematical expressions the sign function is often represented as sgn. To avoid confusion with the sine function, this function is usually called the signum function.[1]

Signum function y = sgn x

Contents

  • 1 Definition
  • 2 Properties
  • 3 Complex signum
  • 4 Generalized signum function
  • 5 Generalization to matrices
  • 6 See also

1 Definition

The signum function of a real number x is a piecewise function which is defined as follows:[1]

{\displaystyle \operatorname {sgn} x:={\begin{cases}-1&{\text{if }}x<0,\0&{\text{if }}x=0,\1&{\text{if }}x>0.\end{cases}}}{\displaystyle \operatorname {sgn} x:={\begin{cases}-1&{\text{if }}x<0,\0&{\text{if }}x=0,\1&{\text{if }}x>0.\end{cases}}}

2 Properties

Any real number can be expressed as the product of its absolute value and its sign function:

{\displaystyle x=|x|\operatorname {sgn} x.}{\displaystyle x=|x|\operatorname {sgn} x.}
It follows that whenever x is not equal to 0 we have

{\displaystyle \operatorname {sgn} x={\frac {x}{|x|}}={\frac {|x|}{x}},.}{\displaystyle \operatorname {sgn} x={\frac {x}{|x|}}={\frac {|x|}{x}},.}
Similarly, for any real number x,

{\displaystyle |x|=x\operatorname {sgn} x.}{\displaystyle |x|=x\operatorname {sgn} x.}
We can also ascertain that:
{\displaystyle \operatorname {sgn} x^{n}=(\operatorname {sgn} x)^{n}.}{\displaystyle \operatorname {sgn} x^{n}=(\operatorname {sgn} x)^{n}.}
The signum function is the derivative of the absolute value function, up to (but not including) the indeterminacy at zero. More formally, in integration theory it is a weak derivative, and in convex function theory the subdifferential of the absolute value at 0 is the interval [−1, 1], “filling in” the sign function (the subdifferential of the absolute value is not single-valued at 0). Note, the resultant power of x is 0, similar to the ordinary derivative of x. The numbers cancel and all we are left with is the sign of x.
{\displaystyle {\frac {d|x|}{dx}}=\operatorname {sgn} x{\text{ for }}x\neq 0,.}{\displaystyle {\frac {d|x|}{dx}}=\operatorname {sgn} x{\text{ for }}x\neq 0,.}
The signum function is differentiable with derivative 0 everywhere except at 0. It is not differentiable at 0 in the ordinary sense, but under the generalised notion of differentiation in distribution theory, the derivative of the signum function is two times the Dirac delta function, which can be demonstrated using the identity [2]

{\displaystyle \operatorname {sgn} x=2H(x)-1,}{\displaystyle \operatorname {sgn} x=2H(x)-1,}
where H(x) is the Heaviside step function using the standard H(0) =
1
/
2
formalism. Using this identity, it is easy to derive the distributional derivative:[3]
{\displaystyle {\frac {d\operatorname {sgn} x}{dx}}=2{\frac {dH(x)}{dx}}=2\delta (x),.}{\displaystyle {\frac {d\operatorname {sgn} x}{dx}}=2{\frac {dH(x)}{dx}}=2\delta (x),.}
The Fourier transform of the signum function is[4]

{\displaystyle \int _{-\infty }^{\infty }(\operatorname {sgn} x)e^{-ikx}dx=\mathrm {p.v.} {\frac {2}{ik}},}{\displaystyle \int _{-\infty }^{\infty }(\operatorname {sgn} x)e^{-ikx}dx=\mathrm {p.v.} {\frac {2}{ik}},}
where p. v. means Cauchy principal value.
The signum can also be written using the Iverson bracket notation:

{\displaystyle \operatorname {sgn} x=-[x<0]+[x>0],.}{\displaystyle \operatorname {sgn} x=-[x<0]+[x>0],.}
The signum can also be written using the floor and the absolute value functions:

{\displaystyle \operatorname {sgn} x={\Biggl \lfloor }{\frac {x}{|x|+1}}{\Biggr \rfloor }-{\Biggl \lfloor }{\frac {-x}{|-x|+1}}{\Biggr \rfloor },.}{\displaystyle \operatorname {sgn} x={\Biggl \lfloor }{\frac {x}{|x|+1}}{\Biggr \rfloor }-{\Biggl \lfloor }{\frac {-x}{|-x|+1}}{\Biggr \rfloor },.}
The signum function has very simple definition If 0^0 is accepted to be equal to 1. Then signum can be written for all real numbers as
{\displaystyle \operatorname {sgn} x=0^{\left(-x+\left\vert x\right\vert \right)}-0^{\left(x+\left\vert x\right\vert \right)},.}{\displaystyle \operatorname {sgn} x=0^{\left(-x+\left\vert x\right\vert \right)}-0^{\left(x+\left\vert x\right\vert \right)},.}
The signum function coincides with the limits
{\displaystyle \operatorname {sgn} x=\lim _{n\to \infty }{\frac {1-2{-nx}}{1+2{-nx}}},.}{\displaystyle \operatorname {sgn} x=\lim _{n\to \infty }{\frac {1-2{-nx}}{1+2{-nx}}},.}
and
{\displaystyle \operatorname {sgn} x=\lim _{n\to \infty }{\frac {2}{\pi }}\tan ^{-1}(nx),.}{\displaystyle \operatorname {sgn} x=\lim _{n\to \infty }{\frac {2}{\pi }}\tan ^{-1}(nx),.}
For k ≫ 1, a smooth approximation of the sign function is

{\displaystyle \operatorname {sgn} x\approx \tanh kx,.}{\displaystyle \operatorname {sgn} x\approx \tanh kx,.}
Another approximation is
{\displaystyle \operatorname {sgn} x\approx {\frac {x}{\sqrt {x^{2}+\varepsilon ^{2}}}},.}{\displaystyle \operatorname {sgn} x\approx {\frac {x}{\sqrt {x^{2}+\varepsilon ^{2}}}},.}
which gets sharper as ε → 0; note that this is the derivative of √x2 + ε2. This is inspired from the fact that the above is exactly equal for all nonzero x if ε = 0, and has the advantage of simple generalization to higher-dimensional analogues of the sign function (for example, the partial derivatives of √x2 + y2).
See Heaviside step function – Analytic approximations.

The sign function is not continuous at x = 0.

3 Complex signum

The signum function can be generalized to complex numbers as:

{\displaystyle \operatorname {sgn} z={\frac {z}{|z|}}}{\displaystyle \operatorname {sgn} z={\frac {z}{|z|}}}
for any complex number z except z = 0. The signum of a given complex number z is the point on the unit circle of the complex plane that is nearest to z. Then, for z ≠ 0,
{\displaystyle \operatorname {sgn} z=e^{i\arg z},}{\displaystyle \operatorname {sgn} z=e^{i\arg z},}
where arg is the complex argument function.
For reasons of symmetry, and to keep this a proper generalization of the signum function on the reals, also in the complex domain one usually defines, for z = 0:

{\displaystyle \operatorname {sgn}(0+0i)=0}{\displaystyle \operatorname {sgn}(0+0i)=0}
Another generalization of the sign function for real and complex expressions is csgn,[5] which is defined as:

{\displaystyle \operatorname {csgn} z={\begin{cases}1&{\text{if }}\mathrm {Re} (z)>0,\-1&{\text{if }}\mathrm {Re} (z)<0,\\operatorname {sgn} \mathrm {Im} (z)&{\text{if }}\mathrm {Re} (z)=0\end{cases}}}{\displaystyle \operatorname {csgn} z={\begin{cases}1&{\text{if }}\mathrm {Re} (z)>0,\-1&{\text{if }}\mathrm {Re} (z)<0,\\operatorname {sgn} \mathrm {Im} (z)&{\text{if }}\mathrm {Re} (z)=0\end{cases}}}
where Re(z) is the real part of z and Im(z) is the imaginary part of z.
We then have (for z ≠ 0):

{\displaystyle \operatorname {csgn} z={\frac {z}{\sqrt {z^{2}}}}={\frac {\sqrt {z^{2}}}{z}}.}{\displaystyle \operatorname {csgn} z={\frac {z}{\sqrt {z^{2}}}}={\frac {\sqrt {z^{2}}}{z}}.}

4 Generalized signum function

5 Generalization to matrices

6 See also

Sign function相关推荐

  1. 符号函数(sign function)性质及应用

    sgn(x):=⎧⎩⎨−101if x<0,if x=0,if x>0. \text{sgn}(x) := \begin{cases} -1 & \text{if } x 0. \ ...

  2. R语言sign函数判断数值为正数或者负数实战

    R语言sign函数判断数值为正数或者负数实战 目录 R语言sign函数判断数值为正数或者负数实战 #基本语法 #正负数判断 #基本语法 sign(5) # Basic R syntax of sign ...

  3. js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)

    你将会收获: js如何加密, 解密 js如何签名, 验签 js和Java交互如何相互解密, 验签(重点) 通过谷歌, 发现jsrsasign库使用者较多. 查看api发现这个库功能很健全. 本文使用方 ...

  4. julia example_使用Julia中的Example的sign()函数

    julia example Julia| sign()函数 (Julia | sign() function) sign() function is a library function in Jul ...

  5. matlab中sign函数的使用(提取符号)

    仅用于记录自己学习过程中遇到的函数 matlab中sign函数的使用,提取符号 一.语法 Y = sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是: 1,前提是 x 的对应元素大 ...

  6. 前端生成sign签名

    接着上一篇博文写写前端如何生成sign签名,此处生成的签名和前两篇的(sign签名)中验证是一致的,可以对比使用.使用方式在上一篇(vue中post请求使用form表单格式发送数据)中使用过,可参考 ...

  7. Java函数式编程入门之Function<T,R>接口

    刘盾 原创文章 于 2022-09-24 先抛出一个问题: Java中可以像JavaScript那样,把一个函数直接当做参数来传递吗? 从Java 8开始,是可以的.在Java提供的函数式编程接口中, ...

  8. c语言中的if语句_If ... C中的其他语句解释

    c语言中的if语句 Conditional code flow is the ability to change the way a piece of code behaves based on ce ...

  9. 二值网络--Training Binary Weight Networks via Semi-Binary Decomposition

    Training Binary Weight Networks via Semi-Binary Decomposition ECCV2018 CNN模型的压缩或加速总体上分为三类: pruning-b ...

最新文章

  1. navicat中文版安装
  2. Java Web编程的主要组件技术——Hibernate入门
  3. webpack----常规配置
  4. 触类旁通:那些关于 TBL$OR$IDX$PART$NUM 的诡异案例和知识
  5. rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
  6. java.util.concurrent.*下的常见类你了解多少?
  7. sql安装弹出sqlcmd_SQL Server中SQLCMD实用工具概述
  8. 【GCN】2021年,我终于决定入门GCN
  9. 通达OA11.0 补丁文件
  10. Matlab数据拟合-----使用polyfit 和polyval函数
  11. MapReduce端的二次排序以及对移动计算而不是移动数据的理解
  12. 什么是pip?Python新手入门指南
  13. GoldenDict启动进入后台 Ubuntu
  14. CVPR 2022 Oral | 视频文本预训练新SOTA,港大、腾讯ARC Lab推出基于多项选择题的借口任务
  15. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究(RTC-DS1302时钟)
  16. python变量名长度有限制吗_怎么去除 Python 下载文件时的文件名长度 50 限制
  17. 修复自定义标题word题注错误:错误,文档中没有指定样式的文字以及编号无法随章节变化问题
  18. oppo怎么广告接入_oppo信息流广告投放操作指南
  19. dream of/dress up/drink to等动词词组
  20. 使用navicat新建sqlite数据库

热门文章

  1. 傻白探索Chiplet,Chiplet技术简介(一)
  2. logstash读取kafka所有topics 自动创建es 索引
  3. 视频编解码之常见GOP结构
  4. Hadoop之——计算机网络端口的定义
  5. 无人驾驶小车调试笔记(六)-- 车轮校准
  6. 获取手机电池百分比和电池容量方法
  7. 精准DNA甲基化/羟甲基化测序(oxBS-seq)|易基因技术推介
  8. 单细胞甲基化测序(scBS-seq)比对率奇低?你的文库方向性参数可能没选对!
  9. 【转】关于usr/bin/ld: cannot find -lxxx问题总结
  10. 基于深度学习的三维重建算法综述