Javaの数値計算ライブラリApache Commons Mathを使う(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;
}
}
|
« 高周波・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を発表 »
「パソコン・インターネット」カテゴリの記事
- GLM-5.1(Ollamaから利用)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作ってもらった。5分など長く考えた後、Gemma 4:31bよりさらに出来が良く、思った通りのものができた。(2026.04.09)
- Claude CodeでGemma 4:26b(Ollama経由, 31bは遅すぎ、e4bはプランモードに入れない)を使ってPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作ってもらった。(2026.04.07)
「学問・資格」カテゴリの記事
- GLM-5.1(Ollamaから利用)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作ってもらった。5分など長く考えた後、Gemma 4:31bよりさらに出来が良く、思った通りのものができた。(2026.04.09)
- 高周波・RFニュース 2026年4月9日 QorvoがXバンドフェイズドアレイレーダ解説、atisがニューロシンボリックコグニティブアシスタントNESYのホワイトペーパー発行、Mini-CircuitsがADSを使ったアンプシミュレーション解説、Vishayがウィルキンソンデバイダ・コンバイナ発表(2026.04.09)
- 高周波・RFニュース 2026年4月8日 BroadcomがOFC2026での出展(200T AI時代)を解説、QualcommがMWCバルセロナ2026でのAIネイティブ6Gについて解説、iFixitがApple AirPods Max 2を分解、TDKが5GHz対応ノイズサプレッションフィルタ発表(2026.04.08)
「日記・コラム・つぶやき」カテゴリの記事
- GLM-5.1(Ollamaから利用)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作ってもらった。5分など長く考えた後、Gemma 4:31bよりさらに出来が良く、思った通りのものができた。(2026.04.09)
- 高周波・RFニュース 2026年4月9日 QorvoがXバンドフェイズドアレイレーダ解説、atisがニューロシンボリックコグニティブアシスタントNESYのホワイトペーパー発行、Mini-CircuitsがADSを使ったアンプシミュレーション解説、Vishayがウィルキンソンデバイダ・コンバイナ発表(2026.04.09)
- 高周波・RFニュース 2026年4月8日 BroadcomがOFC2026での出展(200T AI時代)を解説、QualcommがMWCバルセロナ2026でのAIネイティブ6Gについて解説、iFixitがApple AirPods Max 2を分解、TDKが5GHz対応ノイズサプレッションフィルタ発表(2026.04.08)
« 高周波・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を発表 »



コメント