見出し画像

🎡GLSL Step関数 ヘヴィサイドの階段関数 連続と離散のはざまで

ゼロか1を返すステップ関数

Heavisideステップ関数、または単位ステップ関数は、通常Hまたはθ(ただしu、1、𝟙の場合もある)で表されるステップ関数で、Oliver Heaviside (1850-1925) にちなんで名づけられ、その値は負の引数に対しては0、正の引数に対しては1である 。

ミントンハウスのチャーリークリスチャンみたいだな。
ずっと数式は苦手に感じていたが、そんなに難しい話ではない。IF文一個あれば作れる。三項演算子でもよいが 
GLSLにもstep関数がある

step()関数は、データポイントが垂直線で結ばれる水平基線を持つようなプロットを設計します。このようなプロットは、X軸に対してY軸の値の変化がどの点で正確に起こったかを分析するために使用されます。これは離散的な分析に非常に有効です。

https://www.geeksforgeeks.org/matplotlib-pyplot-step-function-in-python/
こんな感じでゼロいちで黒白になる、境界線上でなにか変化が起こったに違いがないのだ!

ステップ関数のロジスティック近似(ヒル方程式やミカエリス・メンテン方程式など)は、化学的なシグナルに応答する二値的な細胞スイッチを近似するために使われることがあり、ヘビーサイドステップ関数の近似は生化学や神経科学で利用されています。

一般に、連続確率分布の累積分布関数で、ゼロ付近でピークを持ち、分散を制御するパラメータを持つものは、分散がゼロに近づく極限において、近似として機能することができます。たとえば、上記の3つの近似式はすべて、一般的な確率分布であるロジスティック分布、コーシー分布、正規分布の累積分布関数です。

https://amzn.to/3B4Q80M

数式をテキスト形式で再度説明します。

Heavisideステップ関数 (H(x))

Heavisideステップ関数は、以下のように定義されます:


一般的な二値選択

任意の二つの値 �a と �b に対して、条件 �c が真(true)の場合は �a を、偽(false)の場合は �b を選択する式は以下のようになります:

  • If c then choose a, else choose b.

この選択は、条件演算子を使って以下のようにも表せます:

  • c?a:b

ここで、c は条件式で、この条件が真(true)の場合は a が選択され、偽(false)の場合は b が選択されます。

プログラミングにおける step 関数

GLSLの step 関数は、ある閾値に対して入力値がその閾値より小さいか大きいかに応じて0または1を返します。式は以下の通りです:



ここで、edge は閾値で、x は入力値です。


お願い致します