5

アルゴリズムの例を教えてください。 代替テキストhttp://ryancalderoni.com/archive/ideal_curve.jpg

編集:そして、Javascriptを使用して数学を計算するにはどうすればよいですか?誰かがそれを追加できますか?そのコンテキストを元々含めないようにして申し訳ありません。

注:私はそれをグラフ化するために「flot」を使用しており、flotの入力は次のようなjavascript配列です:

[[x、y]、[x、y]、[x、y] ...]

したがって、曲線を変更する値が与えられた場合、すべてのポイントをループ付きの配列に出力し、それを吐き出してグラフにプロットします。

4

7 に答える 7

4

典型的なシグモイド曲線はtanh(x)曲線です。

定義により、

  tanh(x) = sinh(x) / cosh(x) =
          = [(1/2) (e^x - e^-x)] / [(1/2) (e^x + e^-x)] =
          = (e^x - e^-x) / (e^x + e^-x) = 
          = (e^(2x) - 1) / (e^(2x) + 1)


(高解像度)

対称線がサンプル画像に対してシフトしていることに注意してください。tanhグラフを例のようにするには、グラフを上および右に移動するだけです。

y = 1 + (e^(2x - 6) - 1) / (e^(2x - 6) + 1)


(高解像度)

JavaScriptでは、この式を次のように最も効率的に実装します。

exp2x = Math.exp(2*x)
y = (exp2x - 1) / (exp2x + 1)

更新(再度)

OK、yを0から100の範囲にし、xを0から100の範囲にしたい場合は、試してみてください。

y = 50 + 50*tanh((x−50)/10)

のように見えます


(高解像度)

y = 50 + 50 * tanh((x−50)/10)
  = 50 + 50 * (e^((x−50)/5) - 1) / (e^((x−50)/5) + 1)

エラー関数erfは非常によく似ていますが、計算がはるかに困難です(JavaScriptにerf関数が組み込まれている場合を除く)。


ライアン(OP)は追加します:実装されました!

var y = 50 + 50 * tanh((n-50)/10);

function tanh (arg) {
    return (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg));
}
于 2010-08-13T19:21:18.297 に答える
3

単一の分析関数が必要な場合は、ArcTangentとHyperbolic Tangentの両方がその形状を持っているので、少しシフトする必要があります。原点から開始してフラットにしたい場合は、Exp [-1 / x ^ n]を見て、n>=1にします。これにより、原点で非常に平坦な曲線が生成されます。

于 2010-08-13T18:56:45.957 に答える
2

シグモイド関数を検索してみてください。よく似ています。

代替テキスト
(出典:ulcar.uml.eduのiag

于 2010-08-13T19:02:09.690 に答える
1

ベジェ曲線?それを描画するための対応するアルゴリズムは、deCasteljauのアルゴリズムになります。

于 2010-08-13T18:53:26.530 に答える
1

私が提案するかもしれません:

  • エラー関数(erf(x)C)
  • 正規累積分布関数(0.5 * erfc(-x/sqrt(2))
  • ロジスティック関数(1.0 / (1.0 + exp(-x))
  • その他のシグモイド関数
于 2010-08-13T19:03:41.943 に答える
0

あなたが探しているのはシグモイド関数と呼ばれています。ウィキペディアで調べることができます。これに使用される関数には、誤差関数またはロジスティック関数があります。これらは、ニューラルネットワークで最も一般的に使用されます。

于 2010-08-13T19:18:32.247 に答える
0

これはすべて素晴らしいことですが、別の考えがあります。

3次多項式を仮定します。

代替テキスト
(出典:equationsheet.com

4つの境界条件があります。

代替テキスト 代替テキスト
(出典:equationsheet.com

代替テキスト 代替テキスト
(出典:equationsheet.com

これらを方程式に代入して代数を計算すると、次の結果が得られます。

代替テキスト
(出典:equationsheet.com

どこ

代替テキスト
(出典:equationsheet.com

代替テキスト
(出典:equationsheet.com

正確ではないかもしれませんが、知っている値に基づいて簡単に概算できます:(出典:equationsheet.com代替テキスト

于 2010-08-14T21:56:40.957 に答える