y=sgnxy = \operatorname{sgn} x

符号関数 y=sgnxy = \operatorname{sgn} x のグラフ

y=sgnxy = \operatorname{sgn} x符号関数と呼ばれ、実数 xx の符号だけを取り出して 33 つの値のいずれかを返します1

sgnx={1(x>0)0(x=0)1(x<0)\operatorname{sgn} x = \begin{cases} 1 & (x > 0) \\ 0 & (x = 0) \\ -1 & (x < 0) \end{cases}
xxsgnx\operatorname{sgn} x
3.53.511
0000
2-21-1

定義域と値域

定義域はすべての実数ですが、値域は 1-10011 のわずか 33 個の値だけです。グラフは x<0x < 0 で高さ 1-1x>0x > 0 で高さ 11 の水平な半直線が 22 本あり、原点にだけ高さ 00 の点が孤立して置かれた形になります。

対称性

sgn(x)=sgnx\operatorname{sgn}(-x) = -\operatorname{sgn} x が成り立つので、原点に関して点対称な奇関数です。sgn(0)=0\operatorname{sgn}(0) = 0 もこの対称性と矛盾しません。原点で 00 をとるのは、奇関数であるための必然だともいえます。

不連続点と跳び

不連続なのは原点ただ一点です。左からの極限は 1-1、右からの極限は +1+1 で、両者が食い違うため跳びの幅は 22 になります。関数値そのものはその中間の 00 です。原点以外ではどこも定数なので連続で、導関数は 00 です。

絶対値との関係

符号関数は絶対値と深く結びついています。

x=xsgnxsgnx=xx(x0)\begin{align*} |x| &= x \cdot \operatorname{sgn} x \\ \operatorname{sgn} x &= \frac{x}{|x|} \quad (x \neq 0) \end{align*}

下の式は x0x \neq 0 でのみ使えます。また絶対値 x|x| を微分すると、x0x \neq 0 の範囲で sgnx\operatorname{sgn} x になります。角をもつ関数を微分すると跳びをもつ関数になる、という対応です。

階段関数との関係

ヘヴィサイドの階段関数 H(x)H(x) とは、次の関係にあります2

sgnx=2H(x)1\operatorname{sgn} x = 2H(x) - 1

0011 の二値をとる階段関数を、縦に 22 倍して 11 だけ下げたものが符号関数です。値域が 1-1 から 11 の対称な形になるので、向きを表すのに使いやすくなります。

応用

  • 絶対値の計算と、場合分けを式にまとめる用途
  • 制御工学のオン・オフ制御
  • 機械学習で符号によって分類する場面

値の大きさより向きが問題になる場面で活躍します。

  1. Sign function、Wikipedia
  2. Heaviside step function、Wikipedia