データモデリング、画像処理、または機械学習では、正規分布(ガウス分布とも呼ばれます)は非常に一般的な確率分布モデルです。 PHPは数学的モデリングに適した言語ではありませんが、特にWeb環境で基本的な数学モデルを構築するために使用できます。この記事では、PHPの組み込みcosh()関数(双曲線コサイン関数)を使用して、単純化された正規分布近似モデルを構築する方法を紹介します。
標準的な正規分布関数の数学的形式は次のとおりです。
f(x) = (1 / (σ√2π)) * e^(-(x - μ)^2 / (2σ^2))
ただし、PHPは複雑な数学機能に対するサポートが限られているため、 Cosh()関数の対称性とその急速に成長する特性を使用して、正規分布曲線と同様の近似関数を構築できます。例えば:
f(x) = A / cosh(B * (x - μ))
ここで、 Aはスケーリング係数であり、 Bは分布の幅を制御し、 μは平均です。
この関数は、グラフ上にベル曲線を生成します。これは、正規分布と正確に同等ではありませんが、視覚化または大まかなモデリングの目的で使用できます。
以下は、COSH()関数を使用して、近似正規分布でデータポイントを生成し、JSON形式に出力するPHPスクリプトの例です。これは、フロントエンドチャートライブラリが使用するのに便利です。
<?php
// パラメーター設定
$mu = 0; // 平均値
$b = 0.5; // 制御幅
$a = 1; // スケーリング係数
$range = 5; // x 値範囲
$step = 0.1; // 毎回ステップの長さが増加しました
$data = [];
for ($x = -$range; $x <= $range; $x += $step) {
$y = $a / cosh($b * ($x - $mu));
$data[] = ['x' => $x, 'y' => $y];
}
// 出力 JSON
header('Content-Type: application/json');
echo json_encode($data);
?>
上記のコードをdistribution.phpとして保存してサーバーに展開し、chart.jsやechartsなどのフロントエンドツールを使用して生成データをAjaxを介してロードできます。例えば:
fetch("https://gitbox.net/distribution.php")
.then(response => response.json())
.then(data => {
// 使用 data チャートを描きます
console.log(data);
});
パラメータAとBの調整は、グラフの高さと幅を制御して、さまざまなニーズに合わせて制御できます。例えば:
B値を増やす:曲線は急で、形状は「スパイク」に近い
B値を減らす:曲線はより滑らかで、真の正規分布に近い
この方法は、真の正規分布関数(ガウス関数ライブラリやC拡張機能の使用など)を置き換えることはできませんが、Webシナリオにはまだ実用的なアプリケーション値があります。
単純なデータ視覚化モデル:データの変動をグラフ化するために使用できます。
UIアニメーションリズムコントロール:曲線制御グラデーションリズムを制御して、視覚体験をより自然にします。
Webシミュレーションの計算:フロントエンドとバックエンドを通信するときに、高速の数値シミュレーション結果を提供します。
PHPは数値コンピューティングの強力な点ではありませんが、その柔軟性と幅広いアプリケーションシナリオにより、数学モデルが迅速に展開される状況で輝きます。 cosh()関数を介した通常の分布の近似構造は、迅速な視覚化とシミュレーションを必要とするWebプロジェクトの軽量で実装しやすい方法です。最新のJavaScriptチャートツールと組み合わせることで、インタラクティブなデータ表示インターフェイスを簡単に作成できます。