読者です 読者をやめる 読者になる 読者になる

C言語で階段関数を定義する

C言語で階段関数を定義したのでメモしておきます.

実装

if分を使うのが気に入らなかったので少し工夫して書きました.

double step (double x, double z) {
    return ( x > 0 ) + ( ( x == 0 ) * z );
}

この関数で

\begin{align}
H_{z}(x) = \begin{cases}
1 & x > 0 \\
z & x = 0 \\
0 & x < 0
\end{cases} \label{eq:z_step_function}
\end{align}
を表現することが出来ます.

関連

フェルミ分布関数の絶対零度極限を数値計算するには階段関数が必要となります.フェルミ分布関数と階段関数の関係についてはこちら.絶対零度では z = 0.5とすれば良いです.
rwilyp.hatenablog.com