C#、数値計算 - コーシー分布の計算方法とソースプログラム

コーシー分布の概要

コーシー分布は、ローレンツ分布またはローレンツ分布とも呼ばれ、共鳴挙動を記述する連続分布です。また、ランダムな角度で傾斜した線分が x 軸を切断する水平距離の分布も記述します。

上に示したように、回転点が固定された線が垂直軸となす角度を theta で表します。それから:

一般的なコーシー分布とその累積分布は次のように記述できます。

 

ここで、b は半値の半値幅、m は統計的中央値です。この図では、m=0 です。

Cauchy分布はWolfram言語ではCauchyDistribution[m, Gamma/2]として実装される。

特徴的な機能は、

コーシー分布計算のソースプログラム

システムを使用する;

namespace Legalsoft.Truffer
{     /// <summary>     /// Cauchy ディストリビューション。     /// </summary>     public class Cauchydist     {         private double mu { get; 設定; プライベート         ダブルシグ {取得; 設定; }






        public Cauchydist(double mmu = 0.0, double ssig = 1.0)
        {             this.mu = mmu;             this.sig = ssig;             if (sig <= 0.0)             {                 throw new Exception("bad sig in Cauchydist");             }         }






        public double p(double x)
        {             return 0.318309886183790671 / (sig * (1.0 + Globals.SQR((x - mu) / sig));         }

        public double cdf(double x)
        {             return 0.5 + 0.318309886183790671 * Math.Atan2(x - mu, sig);         }

        public double invcdf(double p)
        {             if (p <= 0.0 || p >= 1.0)             {                 throw new Exception("bad p in Cauchydist");             mu + sig * Math.Tan(3.14159265358979324 * (p - 0.5)); を返します             。         } }     }








 

おすすめ

転載: blog.csdn.net/beijinghorn/article/details/131670394