Sign function
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相关推荐
- 符号函数(sign function)性质及应用
sgn(x):=⎧⎩⎨−101if x<0,if x=0,if x>0. \text{sgn}(x) := \begin{cases} -1 & \text{if } x 0. \ ...
- R语言sign函数判断数值为正数或者负数实战
R语言sign函数判断数值为正数或者负数实战 目录 R语言sign函数判断数值为正数或者负数实战 #基本语法 #正负数判断 #基本语法 sign(5) # Basic R syntax of sign ...
- js rsa验签_js rsa sign使用笔记(加密,解密,签名,验签)
你将会收获: js如何加密, 解密 js如何签名, 验签 js和Java交互如何相互解密, 验签(重点) 通过谷歌, 发现jsrsasign库使用者较多. 查看api发现这个库功能很健全. 本文使用方 ...
- julia example_使用Julia中的Example的sign()函数
julia example Julia| sign()函数 (Julia | sign() function) sign() function is a library function in Jul ...
- matlab中sign函数的使用(提取符号)
仅用于记录自己学习过程中遇到的函数 matlab中sign函数的使用,提取符号 一.语法 Y = sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是: 1,前提是 x 的对应元素大 ...
- 前端生成sign签名
接着上一篇博文写写前端如何生成sign签名,此处生成的签名和前两篇的(sign签名)中验证是一致的,可以对比使用.使用方式在上一篇(vue中post请求使用form表单格式发送数据)中使用过,可参考 ...
- Java函数式编程入门之Function<T,R>接口
刘盾 原创文章 于 2022-09-24 先抛出一个问题: Java中可以像JavaScript那样,把一个函数直接当做参数来传递吗? 从Java 8开始,是可以的.在Java提供的函数式编程接口中, ...
- c语言中的if语句_If ... C中的其他语句解释
c语言中的if语句 Conditional code flow is the ability to change the way a piece of code behaves based on ce ...
- 二值网络--Training Binary Weight Networks via Semi-Binary Decomposition
Training Binary Weight Networks via Semi-Binary Decomposition ECCV2018 CNN模型的压缩或加速总体上分为三类: pruning-b ...
最新文章
- navicat中文版安装
- Java Web编程的主要组件技术——Hibernate入门
- webpack----常规配置
- 触类旁通:那些关于 TBL$OR$IDX$PART$NUM 的诡异案例和知识
- rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
- java.util.concurrent.*下的常见类你了解多少?
- sql安装弹出sqlcmd_SQL Server中SQLCMD实用工具概述
- 【GCN】2021年,我终于决定入门GCN
- 通达OA11.0 补丁文件
- Matlab数据拟合-----使用polyfit 和polyval函数
- MapReduce端的二次排序以及对移动计算而不是移动数据的理解
- 什么是pip?Python新手入门指南
- GoldenDict启动进入后台 Ubuntu
- CVPR 2022 Oral | 视频文本预训练新SOTA,港大、腾讯ARC Lab推出基于多项选择题的借口任务
- (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究(RTC-DS1302时钟)
- python变量名长度有限制吗_怎么去除 Python 下载文件时的文件名长度 50 限制
- 修复自定义标题word题注错误:错误,文档中没有指定样式的文字以及编号无法随章节变化问题
- oppo怎么广告接入_oppo信息流广告投放操作指南
- dream of/dress up/drink to等动词词组
- 使用navicat新建sqlite数据库