Javaの数値計算ライブラリApache Commons Mathを使う(準備編) eclipseをインストールしてライブラリも入れるが最新バージョンの4.0beta1だと複素行列がうまくいかない。3.6.1ならOK。とりあえず複素行列の加減乗、トレースを計算。グラフのためにJFreeChartも入れる。
これまでVisual C#(Basic, F#)、JavaScript、PHPなどの数値計算ライブラリを試してきたが今度はJavaでやってみる。
本当はClojureを使いたいがあまりにJavaのことを知らないでやるのもどうかと思ったので。
今回は準備編。
IDEはeclipseで日本語化も含めてこちらから。
数値計算ライブラリはApache Commons Mathを使う。
https://commons.apache.org/proper/commons-math/
ただ問題は最新バージョンの4.0beta1だと複素行列がうまくいかない。3.6.1ならOK。
こちらのアーカイブからダウンロードできる。
https://archive.apache.org/dist/commons/math/
プロジェクト管理はMavenを使うのが推奨のようだが、まあ数値計算のお試しなので普通のJavaプロジェクトでやってみる。
プロジェクトを作成して、その名前を右クリックしてビルド・パス→外部アーカイブの追加でダウンロードしたjarファイルを指定する。
javadocもダウンロードされるのでライブラリのオプション→Javadocロケーションのここに入れるとよさそう。
ではまずは準備として複素行列の定義、加減乗、トレースのような簡単なものをやってみる。ちなみにFieldMatrixのところを全部RealMatrixすればもっと簡単に実行列の計算ができる。
import org.apache.commons.math3.complex.*;
import org.apache.commons.math3.linear.FieldMatrix;
import org.apache.commons.math3.linear.MatrixUtils;
public class MatrixCalc {
public static void main(String[] args) {
Complex[][] a_array =
{
{new Complex(1.0, 2.0), new Complex(3.0, 4.0)},
{new Complex(5.0, 6.0), new Complex(7.0, 8.0)}
};
Complex[][] b_array =
{
{new Complex(9.0, 10.0), new Complex(11.0, 12.0)},
{new Complex(13.0, 14.0), new Complex(15.0, 16.0)}
};
var a = MatrixUtils.createFieldMatrix(a_array);
var b = MatrixUtils.createFieldMatrix(b_array);
DisplayMatrix(a.add(b));
DisplayMatrix(a.subtract(b));
DisplayMatrix(a.multiply(b));
System.out.println(a.getTrace());
}
static void DisplayMatrix(FieldMatrix<Complex> m) {
for (int i = 0; i < m.getRowDimension(); i++) {
System.out.print("[");
for (int j = 0; j < m.getColumnDimension(); j++) {
System.out.print(m.getEntry(i, j));
if (j < m.getColumnDimension() - 1) {
System.out.print(", ");
}
}
System.out.println("]");
}
}
}
|
ちゃんと結果が
[(10.0, 12.0), (14.0, 16.0)]
[(18.0, 20.0), (22.0, 24.0)]
[(-8.0, -8.0), (-8.0, -8.0)]
[(-8.0, -8.0), (-8.0, -8.0)]
[(-28.0, 122.0), (-32.0, 142.0)]
[(-36.0, 306.0), (-40.0, 358.0)]
(8.0, 10.0)
と出力された。ということで
高周波&数値計算関係記事リンク集
の例をやっていく。
グラフのプロットはJFreeChartを使うことにした。これも上と同じくビルド・バスの追加でOK。
https://www.jfree.org/jfreechart/
こちらなどを全面的に参考にしている。
http://javadrive.s25.xrea.com/jfreechart/index.html
« 高周波・RFニュース 2025年8月25日 everythingRFが記事やホワイトペーパーを学習させた生成AI The RF AI Expertを発表、2xThru法について聞いてみた。Oakley x Meta HSTNsスマートグラスをiFixitが分解、Qorvoの電源管理eBook、QuectelのISM向けアンテナ | トップページ | 高周波・RFニュース 2025年8月26日 everythingRFマガジン最新刊発行、Samsung Galaxy Z Flip7分解動画、5Gミリ波AiPはやっぱり1個、SONY Xperia 1VII分解動画、RFは同軸じゃなくてフレキ、0Ω抵抗解説、PlayerDataのスポーツトラッカーにNordicのSoC,PMICが採用 »
「パソコン・インターネット」カテゴリの記事
- RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/7/5-7/12(2026.07.12)
- Grok 4.5(Grok Build)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作成。エラーもなく一発で動くものができた。ただFreeだと1日のリミットが結構厳しめ。(2026.07.13)
- RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/28-7/5(2026.07.05)
- Ornith-1.0-35B(llama.cppで4ビット量子化使用)に、電子レンジの動作原理(2.45GHzは水分子の共振周波数でない)と隕石が大気圏突入で燃える原理(摩擦熱ではない)を聞くと、誘電緩和と断熱圧縮について正しく答えられた。(2026.07.03)
- Ornith-1.0-35B(llama.cppで4ビット量子化使用、DuckDuckGo Searchも)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作成。足りない情報は検索してプランも立ててまずまずの出来。(2026.07.02)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2026年月16日 Microwave JournalでCadenceのRF設計向けAI紹介、Samtecが30°傾いた1.85mmコネクタ発表、Mini-CircuitsのMMICアッテネータ紹介、SEMCOがAI向けMLCC発表など(2026.07.16)
- 高周波・RFニュース 2026年7月15日 IEEE Microwave Magazineで自分のコードを高周波シミュレータに組み込む等、DeepSigがAIベースのRF検出OminiSIG 4.0発表、BroadcomのWi-Fi 8 SoC解説、GSMAがモバイルネットゼロレポート発行など(2026.07.15)
- 高周波・RFニュース 2026年7月14日 KeysightとRCRTechが6Gウェビナー開催、Copper Mountain Technologiesの新低価格4ポートVNA、フジクラの5G Sub6GHz向け漏洩同軸ケーブル、TDKのパワー半導体向けMLCCアプリケーションガイドなど(2026.07.14)
- RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/7/5-7/12(2026.07.12)
- Grok 4.5(Grok Build)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作成。エラーもなく一発で動くものができた。ただFreeだと1日のリミットが結構厳しめ。(2026.07.13)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2026年月16日 Microwave JournalでCadenceのRF設計向けAI紹介、Samtecが30°傾いた1.85mmコネクタ発表、Mini-CircuitsのMMICアッテネータ紹介、SEMCOがAI向けMLCC発表など(2026.07.16)
- 高周波・RFニュース 2026年7月15日 IEEE Microwave Magazineで自分のコードを高周波シミュレータに組み込む等、DeepSigがAIベースのRF検出OminiSIG 4.0発表、BroadcomのWi-Fi 8 SoC解説、GSMAがモバイルネットゼロレポート発行など(2026.07.15)
- 高周波・RFニュース 2026年7月14日 KeysightとRCRTechが6Gウェビナー開催、Copper Mountain Technologiesの新低価格4ポートVNA、フジクラの5G Sub6GHz向け漏洩同軸ケーブル、TDKのパワー半導体向けMLCCアプリケーションガイドなど(2026.07.14)
- RF Weekly Digest (Codex(GPT-5.5)で作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/7/5-7/12(2026.07.12)
- Grok 4.5(Grok Build)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作成。エラーもなく一発で動くものができた。ただFreeだと1日のリミットが結構厳しめ。(2026.07.13)
« 高周波・RFニュース 2025年8月25日 everythingRFが記事やホワイトペーパーを学習させた生成AI The RF AI Expertを発表、2xThru法について聞いてみた。Oakley x Meta HSTNsスマートグラスをiFixitが分解、Qorvoの電源管理eBook、QuectelのISM向けアンテナ | トップページ | 高周波・RFニュース 2025年8月26日 everythingRFマガジン最新刊発行、Samsung Galaxy Z Flip7分解動画、5Gミリ波AiPはやっぱり1個、SONY Xperia 1VII分解動画、RFは同軸じゃなくてフレキ、0Ω抵抗解説、PlayerDataのスポーツトラッカーにNordicのSoC,PMICが採用 »





コメント