Clojure(JVMで動くLISP系)でJavaの数値計算ライブラリApache Commons Mathを使う(1) 複素行列を定義してLU分解で一次方程式や逆行列、行列式などを計算する。Javaの配列とClojureの配列が全然違うのでちょっと面倒。
今回はこの例をClojureに移植する。
Javaの数値計算ライブラリApache Commons Mathを使う(1) 複素行列を定義してLU分解で一次方程式や逆行列、行列式などを計算する。Swingを使ってウィンドウに表示する。
ClojureはJavaのコードに変換しているのではなく、あくまでJVM上で動くものなので配列も違う。なのでそのまま渡すことができずに、Javaの配列に変換するinto-arrayを多用しないといけない。全然LISPぽくないJavaぽいコードになってしまうがこんな感じでLU分解で一次方程式や逆行列、行列式などを計算できる。
(ns mini.LinearAlgebra (:import [org.apache.commons.math3.complex Complex]
[org.apache.commons.math3.linear MatrixUtils FieldLUDecomposition]))
(defn matrixPrint [mat n]
(dotimes [i n]
(dotimes [j n]
(print (str (.getEntry mat i j) " ")))
(println "")))
(defn vectorPrint [vec n]
(dotimes [i n]
(println (str (.getEntry vec i) " "))))
(def m
(MatrixUtils/createFieldMatrix
(into-array
[(into-array [(Complex. 2.0 0.0) (Complex. 1.0 0.0) (Complex. 1.0 0.0)])
(into-array [(Complex. -1.0 0.0) (Complex. 1.0 0.0) (Complex. -1.0 0.0)])
(into-array [(Complex. 1.0 0.0) (Complex. 2.0 0.0) (Complex. 3.0 0.0)])])))
(def v
(MatrixUtils/createFieldVector
(into-array [(Complex. 2.0 0.0) (Complex. 3.0 0.0) (Complex. -10.0 0.0)])))
(def decomp (FieldLUDecomposition. m))
(def solver (.getSolver decomp))
(def solution (.solve solver v))
(vectorPrint solution 3)
(println "")
(println (str (.getDeterminant decomp)))
(println "")
(def inv (.getInverse solver))
(matrixPrint inv 3)
|
実行すると
« 東京油組総本店ドーチカ組で辛味噌油そばW盛り スペシャルトッピングAをいただく。底に辛味噌があるのでよく混ぜて食べるとかなりいい辛さに。卓上の辛味を入れるとさらに辛くできる。 | トップページ | RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/10/27-2025/11/3 »
「パソコン・インターネット」カテゴリの記事
- 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)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2026年7月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ニュース 2026年7月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)
« 東京油組総本店ドーチカ組で辛味噌油そばW盛り スペシャルトッピングAをいただく。底に辛味噌があるのでよく混ぜて食べるとかなりいい辛さに。卓上の辛味を入れるとさらに辛くできる。 | トップページ | RF Weekly Digest (Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ) 2025/10/27-2025/11/3 »



コメント