« 高周波・RFニュース 2025年10月20日 Ericsson Microwave Outlook発行、QorvoのRFフィルタ解説、BroadcomのWi-Fi 8解説、iFixitがMeta Ray-Ban displayを分解・光導波路を確認、MolexがSmiths Interconnectを買収, Honor Magic8 Pro分解動画 | トップページ | 高周波・RFニュース 2025年10月21日 everythingRFがWi-Fi 7のeBook公開、FormFactorが量子コンピュータの冷却に関するウェビナー開催、KeysightがSパラメータ測定時の注意点について解説、MIPIが新オーディオインターフェースSWI3S v1.0を発表 »

2025年10月20日 (月)

Javaの数値計算ライブラリApache Commons Mathを使う(9) いろんな確率分布の乱数(メルセンヌツイスタがベース)をヒストグラムにして描く。とりあえず正規分布とガンマ分布で。

今回はこちらの例題。

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(9) いろんな確率分布の乱数(メルセンヌツイスタがベース)をヒストグラムにして描く。とりあえず正規分布とガンマ分布で。 

これはとても簡単でコードはこんな感じ。


import org.apache.commons.math3.random.RandomGenerator;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.statistics.HistogramDataset;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import org.apache.commons.math3.random.MersenneTwister;
import org.apache.commons.math3.random.RandomDataGenerator;

public class random01 extends JFrame {
    private static final long serialVersionUID = 1L;
    public static void main(String[] args) {
        random01 frame = new random01();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(10, 10, 640, 480);
        frame.setTitle("Random Values");
        frame.setVisible(true);
    }
    public random01() {
       
        JFreeChart chart =
          ChartFactory.createHistogram("Random number histogram",
                                         "value",
                                         "frequency",
                                         createData(),
                                         PlotOrientation.VERTICAL,
                                         true,
                                         false,
                                         false);
        XYPlot plot = (XYPlot)chart.getPlot();
        ValueAxis axis = plot.getDomainAxis();
        axis.setLowerBound(-5.0);
        axis.setUpperBound(15.0);
        ChartPanel cpanel = new ChartPanel(chart);
        getContentPane().add(cpanel, BorderLayout.CENTER);
    }
    private HistogramDataset createData(){
       
        HistogramDataset data = new HistogramDataset();
       
        int n = 10000;
        RandomGenerator generator = new MersenneTwister(42);
        RandomDataGenerator randomData = new RandomDataGenerator(generator);
        double[] valuesGauss = new double[n];
        double[] valuesGamma = new double[n];
        for (int i = 0; i < n; i++) {
            valuesGauss[i] = randomData.nextGaussian(0.0,  1.0);
            valuesGamma[i] = randomData.nextGamma(9.0, 0.5);
        }

        data.addSeries("Gausian Random Values", valuesGauss, 100);
        data.addSeries("Gamma Random Values", valuesGamma, 100);

        return data;
      }
}

 

Javarandom01

« 高周波・RFニュース 2025年10月20日 Ericsson Microwave Outlook発行、QorvoのRFフィルタ解説、BroadcomのWi-Fi 8解説、iFixitがMeta Ray-Ban displayを分解・光導波路を確認、MolexがSmiths Interconnectを買収, Honor Magic8 Pro分解動画 | トップページ | 高周波・RFニュース 2025年10月21日 everythingRFがWi-Fi 7のeBook公開、FormFactorが量子コンピュータの冷却に関するウェビナー開催、KeysightがSパラメータ測定時の注意点について解説、MIPIが新オーディオインターフェースSWI3S v1.0を発表 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 高周波・RFニュース 2025年10月20日 Ericsson Microwave Outlook発行、QorvoのRFフィルタ解説、BroadcomのWi-Fi 8解説、iFixitがMeta Ray-Ban displayを分解・光導波路を確認、MolexがSmiths Interconnectを買収, Honor Magic8 Pro分解動画 | トップページ | 高周波・RFニュース 2025年10月21日 everythingRFがWi-Fi 7のeBook公開、FormFactorが量子コンピュータの冷却に関するウェビナー開催、KeysightがSパラメータ測定時の注意点について解説、MIPIが新オーディオインターフェースSWI3S v1.0を発表 »

最近の記事

2025年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ
フォト