Clojure(JVMで動くLISP系)でJavaの数値計算ライブラリApache Commons Mathを使う(2) 補間を行う(Interpolate) リニア、Akimaスプラインなどいろいろある。JFreeChartで散布図とXYプロットを描く。
今回はこれの移植。
コードはこんな感じで。ChatGPTにいろいろ教えてもらいながらできた。
(ns mini.interpolation
(:import [org.apache.commons.math3.analysis.interpolation AkimaSplineInterpolator LinearInterpolator]
[org.jfree.data.xy XYSeriesCollection XYSeries]
[org.jfree.chart ChartFactory ChartPanel]
[org.jfree.chart.renderer.xy XYLineAndShapeRenderer]
[javax.swing JFrame]))
(def n 10)
(def m 50)
(def x (make-array Double/TYPE n))
(def y (make-array Double/TYPE n))
(def xval (make-array Double/TYPE m))
(def yline (make-array Double/TYPE m))
(def yakima (make-array Double/TYPE m))
(dotimes [i n]
(aset x i (/ (* 2 Math/PI i) (dec n)))
(aset y i (Math/sin (aget x i))))
;; ここで interpolate して関数を作る
(def linearFn (.interpolate (LinearInterpolator.) x y))
(def akimaFn (.interpolate (AkimaSplineInterpolator.) x y))
(doseq [i (range m)]
(aset xval i (/ (* 2 Math/PI i) (dec m)))
(aset yline i (.value linearFn (aget xval i)))
(aset yakima i (.value akimaFn (aget xval i))))
(defn create-dataset []
(let [series (XYSeries. "data")
series2 (XYSeries. "linear")
series3 (XYSeries. "akima")]
;; 元データ
(dotimes [i n]
(.add series (aget x i) (aget y i)))
;; 線形補間
(dotimes [i m]
(.add series2 (aget xval i) (aget yline i))
(.add series3 (aget xval i) (aget yakima i)))
(doto (XYSeriesCollection.)
(.addSeries series)
(.addSeries series2)
(.addSeries series3))))
(defn create-chart [dataset]
(ChartFactory/createXYLineChart
"Interpolation"
"x-axis"
"y-axis"
dataset))
(defn display-chart [chart]
(let [frame (JFrame. "Intterpolation")
plot (.getXYPlot chart)
renderer (XYLineAndShapeRenderer.)
chart-panel (ChartPanel. chart)]
(.setSeriesLinesVisible renderer 0 false) ; 点だけ表示
(.setSeriesShapesVisible renderer 1 false) ; 線だけ
(.setSeriesShapesVisible renderer 2 false) ; 線だけ
(.setRenderer plot renderer)
(doto frame
(.add chart-panel)
(.pack)
(.setVisible true))))
(defn -main []
(let [dataset (create-dataset)
chart (create-chart dataset)]
(display-chart chart)))
(-main)
|
結果はこちら。
« 高周波・RFニュース 2025年12月3日 Samsungが三つ折りスマホGalaxy Z TriFold発表、Nordicがヘルスケア向け新Bluetooth SoC発表、太陽誘電が2012-100μFの基板内蔵MLCC発表、TechInsightsがiPhone AirのほうがGalaxy S25 Edgeより2%コスト高と分析、など | トップページ | 高周波・RFニュース 2025年12月4日 Industrial Growth PartnersがMarki Microwaveを買収、MarvellがCelestial AIを買収、SiTimeがルネサスのタイミング事業買収か?という報道、光・電気通信の相互運用性ウェビナー開催 »
「パソコン・インターネット」カテゴリの記事
- Qwen3.6-35B-A3Bが発表され、Ollamaでも使える。そこで電子レンジの動作原理(2.45GHzは水分子の共振周波数でない)と隕石が大気圏突入で燃える原理(摩擦熱ではない)を聞くと、誘電緩和と断熱圧縮について正しく答えられた。今までのローカルLLMで一番賢い回答と思う。(2026.04.17)
- ExcelのOfficeスクリプト(TypeScript)で数値計算ライブラリmath.jsを使う(1) Officeスクリプトは外部API呼び出せるし、math.jsは RESTful APIで呼び出せることがわかった。まずは選択したセルのデータを読み、行列演算。LU分解で一次方程式を解き、逆行列と行列式を求める。(2026.04.17)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/4/5-4/12(2026.04.12)
- GLM-5.1(Ollamaから利用)でPythonのscikit-rfを使ってTouchstoneフォーマットのSパラメータファイルを読んでdB, 位相, スミスチャート, TDRを表示するGUIアプリを作ってもらった。5分など長く考えた後、Gemma 4:31bよりさらに出来が良く、思った通りのものができた。(2026.04.09)
「学問・資格」カテゴリの記事
- Qwen3.6-35B-A3Bが発表され、Ollamaでも使える。そこで電子レンジの動作原理(2.45GHzは水分子の共振周波数でない)と隕石が大気圏突入で燃える原理(摩擦熱ではない)を聞くと、誘電緩和と断熱圧縮について正しく答えられた。今までのローカルLLMで一番賢い回答と思う。(2026.04.17)
- 高周波・RFニュース 2026年4月17日 atisの3GPP Rel.20ウェビナー動画公開、MWCバルセロナ2026でのGSMA Device Enablement Summit資料公開、ハリファ大学が無線周波数AI言語モデルRF-GPT発表、レドームの解説など(2026.04.17)
- ExcelのOfficeスクリプト(TypeScript)で数値計算ライブラリmath.jsを使う(1) Officeスクリプトは外部API呼び出せるし、math.jsは RESTful APIで呼び出せることがわかった。まずは選択したセルのデータを読み、行列演算。LU分解で一次方程式を解き、逆行列と行列式を求める。(2026.04.17)
- 高周波・RFニュース 2026年4月16日 AmazonがGlobalstarを買収、GSMAが日本のデジタル化をレポート、Mini-Circuitsがケーブルアセンブリを動画で解説、Kymetaが米国海軍研究局と衛星通信で契約、PerasoがドローンIFF向け60GHzモジュール出荷、SEMCOが1500V耐圧MLCC発表(2026.04.16)
- 高周波・RFニュース 2026年4月15日 Microwave Journalはアンプと発振器特集、Signal Integrity Journalは100GHz越えのインターコネクトのAIを使うHFSSモデル化、ローデ・シュワルツが潜水艦通信をUDT2026で発表、Xiaomi Poco X8 Pro分解動画、atisの5Gポリシーレポート(2026.04.15)
「日記・コラム・つぶやき」カテゴリの記事
- Qwen3.6-35B-A3Bが発表され、Ollamaでも使える。そこで電子レンジの動作原理(2.45GHzは水分子の共振周波数でない)と隕石が大気圏突入で燃える原理(摩擦熱ではない)を聞くと、誘電緩和と断熱圧縮について正しく答えられた。今までのローカルLLMで一番賢い回答と思う。(2026.04.17)
- 高周波・RFニュース 2026年4月17日 atisの3GPP Rel.20ウェビナー動画公開、MWCバルセロナ2026でのGSMA Device Enablement Summit資料公開、ハリファ大学が無線周波数AI言語モデルRF-GPT発表、レドームの解説など(2026.04.17)
- ExcelのOfficeスクリプト(TypeScript)で数値計算ライブラリmath.jsを使う(1) Officeスクリプトは外部API呼び出せるし、math.jsは RESTful APIで呼び出せることがわかった。まずは選択したセルのデータを読み、行列演算。LU分解で一次方程式を解き、逆行列と行列式を求める。(2026.04.17)
- 高周波・RFニュース 2026年4月16日 AmazonがGlobalstarを買収、GSMAが日本のデジタル化をレポート、Mini-Circuitsがケーブルアセンブリを動画で解説、Kymetaが米国海軍研究局と衛星通信で契約、PerasoがドローンIFF向け60GHzモジュール出荷、SEMCOが1500V耐圧MLCC発表(2026.04.16)
- 高周波・RFニュース 2026年4月15日 Microwave Journalはアンプと発振器特集、Signal Integrity Journalは100GHz越えのインターコネクトのAIを使うHFSSモデル化、ローデ・シュワルツが潜水艦通信をUDT2026で発表、Xiaomi Poco X8 Pro分解動画、atisの5Gポリシーレポート(2026.04.15)
« 高周波・RFニュース 2025年12月3日 Samsungが三つ折りスマホGalaxy Z TriFold発表、Nordicがヘルスケア向け新Bluetooth SoC発表、太陽誘電が2012-100μFの基板内蔵MLCC発表、TechInsightsがiPhone AirのほうがGalaxy S25 Edgeより2%コスト高と分析、など | トップページ | 高周波・RFニュース 2025年12月4日 Industrial Growth PartnersがMarki Microwaveを買収、MarvellがCelestial AIを買収、SiTimeがルネサスのタイミング事業買収か?という報道、光・電気通信の相互運用性ウェビナー開催 »



コメント