5

Piccoloを使用してインタラクティブアプレットをコーディングしており、その中にガウス曲線(別名正規分布チャート)を含める必要があります。

どんな種類のJava実装でも十分だと思いますが、見つかりません。理想的には、一連の値を渡し、チャートをパネル、画像オブジェクト、またはアプレットに埋め込むことができるものに描画させたいと思います。

自分でコーディングする前に、それを実行するための実用的なコードを知っている人はいますか?

他の言語での実装は、Javaに簡単に移植できる限り歓迎されます。

4

2 に答える 2

5

それが機能するかどうかはわかりませんが、Googleはガウス分布をプロットするためにこのコードを投げました。

このプロジェクトのホームページはこちらです。

Piccoloがプロットを実行しない場合は、 JFreeChartが広くサポートされており、非常に機能的であるため、実際のプロットにJFreeChartを使用する可能性があります。(私はピッコロに精通していません)

于 2009-03-31T21:38:08.503 に答える
2

編集: Apache Commons Math ライブラリには統計セクションがあるようです。具体的には、共通のディストリビューションのパッケージ全体です。私は基本的な統計を思い出せないので、そこに数学者がいるといいのですが...ここに彼らのライブラリを使用する私の試みがあります。ここにスライディング ウィンドウがあり、それらの値の間の P を計算します。これからPDFを取得する本当の方法は何ですか? CDF関数しかありません。

public void testNormalDist() throws MathException {
    DistributionFactory f = DistributionFactory.newInstance();
    NormalDistribution n = f.createNormalDistribution(0.0d, 1.0d);
    double lastx = Double.NEGATIVE_INFINITY;
    double nextx = Double.NEGATIVE_INFINITY;
    for (int i=-100; i < 100; i++) {
        nextx = i / 100d;
        System.out.println(n.cumulativeProbability(lastx, nextx));
        lastx = nextx;
    }
}

グラフの確率密度関数が必要だと思います。ここに数学マークアップを含める方法がわからないため、方程式は wikipediaにあります。Y 値として p(x) を使用し、X 値として X を使用するだけで、そこから非常に簡単な 2 次元グラフを取得できます。

Java の下で Mathtoolsを見たことがありますか?

わかりました、これはどうですか... Xポイントの配列を指定します(もちろん、正規化されています。各ピクセル位置を画像の幅で割ることにより、Xピクセルをこれらに変換できます)、高さを返します分布曲線 (ここでも、正規化係数を掛けます)。これは、平均が 0 で標準偏差が 1 の基本的なケースです。

public double[] normalDistBasic(double[] xarray, double mu) {
    double[] yarray = new double[xarray.length];
    double rad2pi = 2.50662827d;
    for (int off = 0; off < yarray.length; off++) {
        double x = xarray[off];
        double ss = -1d * x * x / 2d;
        yarray[off] = (-1f / rad2pi) * Math.exp(ss);
    }
    return yarray;
}

ネット上で見つからない場合、任意の平均と標準偏差を取るものを実装するのは非常に簡単なはずです。

于 2009-03-31T21:42:17.400 に答える