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. 远程管理技巧之二—远程修改客户端注册表
  2. PHP开发移动端接口
  3. javascript--弹出对话框 四种对话框 获得用户输入值 .
  4. jquery table ajax,JQuery Ajax动态加载Table数据的实例讲解
  5. [图]罗技推出背光键盘
  6. java xml amp_Javaamp;Xml教程(十一)JAXB实现XML与Java对象转换
  7. sqlserver 2008修改数据库表的时候错误提示“阻止保存要求重新创建表的更改”...
  8. redis 3.0 java 工具包_redis分布式锁工具包,提供纯Java方式调用
  9. 键盘按下某键 停止运行java_Java:按下“Q”键后终止while循环
  10. java 多线程为什么不建议使用onstop onsuspend_java多线程stop,suspend使用代码实际例子...
  11. HBase实战 | 从MySQL到HBase:数据存储方案转型的演进
  12. java.sql.SQLException: Field 'id' doesn't have a default value解决方法
  13. java 字符串数组排序_Java 使用泛型为不同类型数组排序
  14. PSP 版本6.60 破解 PRO-B10自制系统升级图文教程
  15. a59s刷机包卡刷 oppo_OPPO A59s刷机教程_OPPO A59s升级更新官方系统包
  16. Vmware虚拟机win10详细安装之典型安装
  17. 基于OpenCV实战:动态物体检测
  18. javaFX,Scene Builder引入Jfoenix
  19. 订阅号服务器消息推送数量,微信服务号一个月4次的推文次数用完了,怎么增加推送数量?...
  20. python开发者是谁_Python 太蹩脚了?开发者总结了 8 大缘故

热门文章

  1. 计算机二级字符串,计算机二级辅导:VC字符串转换
  2. cPanel里的 Addon Domain/Subdomains/Parked domain 区别
  3. 程序员福音 免费在线制作证件照
  4. 计算机如何更新目录,wps怎么更新目录【具体阐明】
  5. 关于PR硬件加速报错 错误代码3解决办法
  6. pg数据库和mysql8_MySQL8与PG10:新版本下的较量谁更胜一筹?
  7. php黑名单绕过,文件上传漏洞之黑名单检测绕过
  8. 【Ubuntu18.04】实现redis+lua+nginx动态黑名单封禁
  9. python控制键盘按键_如何通过Python生成键盘按键事件来控制PP的表示?
  10. macOS 下 Electron 程序的签名及公证