Go言語の数値計算ライブラリGonumを使う(4)補間を行う。リニアと秋間スプラインを試してGonum Plotでプロット。
今回の例題はこちら。
Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。
Gonum/interpではFritschButlandやAkima Splineなどが使える。
https://pkg.go.dev/gonum.org/v1/gonum@v0.17.0/interp
今回はリニアと秋間スプラインにしてみよう。
コードはこちら。
|
package main
import (
"image/color"
"math"
"gonum.org/v1/gonum/interp"
"gonum.org/v1/plot"
"gonum.org/v1/plot/plotter"
"gonum.org/v1/plot/vg"
)
func main() {
n := 100
m := 10
xs := make([]float64, m)
ys := make([]float64, m)
originalpts := make(plotter.XYs, m)
for i := 0; i < m; i++ {
xs[i] = 2.0 * math.Pi * float64(i) / float64(m-1)
ys[i] = math.Sin(xs[i])
originalpts[i].X = xs[i]
originalpts[i].Y = ys[i]
}
var pl interp.PiecewiseLinear
var as interp.AkimaSpline
pl.Fit(xs, ys)
as.Fit(xs, ys)
linearpts := make(plotter.XYs, n)
splinepts := make(plotter.XYs, n)
for i := 0; i < n; i++ {
x := 2.0 * math.Pi * float64(i) / float64(n-1)
linearpts[i].X = x
linearpts[i].Y = pl.Predict(x)
splinepts[i].X = x
splinepts[i].Y = as.Predict(x)
}
p := plot.New()
p.Title.Text = "Interpolation"
p.X.Label.Text = "X"
p.Y.Label.Text = "Y"
p.Add(plotter.NewGrid())
s, err := plotter.NewScatter(originalpts)
if err != nil {
panic(err)
}
s.GlyphStyle.Color = color.RGBA{G: 255, A: 255}
llinear, err := plotter.NewLine(linearpts)
if err != nil {
panic(err)
}
llinear.LineStyle.Color = color.RGBA{B: 255, A: 255}
lspline, err := plotter.NewLine(splinepts)
if err != nil {
panic(err)
}
lspline.LineStyle.Color = color.RGBA{R: 255, A: 255}
p.Add(s, llinear, lspline)
p.Legend.Add("original", s)
p.Legend.Add("PiecewiseLinear", llinear)
p.Legend.Add("AkimaSpline", lspline)
if err := p.Save(10*vg.Inch, 6*vg.Inch, "interp.png"); err != nil {
panic(err)
}
}
|
実行結果
ちゃんと補間できているようだ。
« 高周波・RFニュース 2026年10月1日 iFixitがApple AirPods 5を分解、KeysightがデュアルチャンネルのSG発表、アンリツが反射板を使った高速道路向け5G実証、Mini-CircuitsがGaN バランスアンプ解説、TDKのMLCCたわみクラック解説 | トップページ | 映画「ディスクロージャー・デイ」を観てきた。宇宙人の存在が隠蔽されているのはわかるが、終盤まで主人公2人に何が起きているのか全く分からない展開(数学が宇宙の共通言語ということだけ…)そして最後には予想通りあの人?が出てくるし、観る人に結末はゆだねられていた。 »
「パソコン・インターネット」カテゴリの記事
- RF Weekly Digest 2026/10/5-10/11 (Codex(GPT-6 Astra)によるRF情報週刊まとめ)(2026.10.11)
- Excelで1つのセルに複数の値を入れられるリストやセル内配列、ネストした配列という新機能が使えるようになっていた。例にあったデータ数が行ごとに違うときに使うのがよさそうなのでネイピア数の級数での計算をやってみた。(2026.10.07)
- JevのAPI互換のtev1(Ollama経由で利用)を使って、バンドパスフィルタの測定Sパラメータを読み込みスペックと比較して、単にG/NG判定だけでなく重大度や容認度をスコアとして出してくれるアプリrf_jev_judge.pyを作った。(2026.10.05)
「学問・資格」カテゴリの記事
- RF Weekly Digest 2026/10/5-10/11 (Codex(GPT-6 Astra)によるRF情報週刊まとめ)(2026.10.11)
- 高周波・RFニュース 2026年10月9日 IEEE Microwave Magazineにリコンフィギュラブルフロントエンド記事、Keysightがレイヤー1オートメーションスイッチ発表、GSMAがインドで3つのレポート発行、MinewのSOSボタンにNordicのSoC採用など(2026.10.09)
- 高周波・RFニュース 2026年10月8日 SkyworksがQorvoとの合併を完了、iFixitがApple Watch Series12とUltra4を分解・60GHzアンテナあり、TDKが2GHz対応車載インダクタ発表、KeysightがADS等にAIエージェント搭載、Mini-Circuitsのバトラーマトリクス解説(2026.10.08)
- 1980~2026年のノーベル物理学賞を素粒子・宇宙と物性・基礎に分けてプロット。昔は2つの分野は交互に獲る、という感じだったが去年まで5年連続物性・基礎だった。今年はアイスキューブニュートリノ観測所での成果ということで久しぶりに素粒子・宇宙。(2026.10.06)
- 高周波・RFニュース 2026年10月6日 QorvoがBAWベースのCバンドフロントエンドとXバンドフロントエンド発表、太陽誘電が低直流抵抗のメタル系パワーインダクタ発表、アンリツとキャンドックスシステムズが60GHz評価システム発表、QualcommとHuaweiが特許ライセンス契約(2026.10.06)
「日記・コラム・つぶやき」カテゴリの記事
- RF Weekly Digest 2026/10/5-10/11 (Codex(GPT-6 Astra)によるRF情報週刊まとめ)(2026.10.11)
- 高周波・RFニュース 2026年10月9日 IEEE Microwave Magazineにリコンフィギュラブルフロントエンド記事、Keysightがレイヤー1オートメーションスイッチ発表、GSMAがインドで3つのレポート発行、MinewのSOSボタンにNordicのSoC採用など(2026.10.09)
- 高周波・RFニュース 2026年10月8日 SkyworksがQorvoとの合併を完了、iFixitがApple Watch Series12とUltra4を分解・60GHzアンテナあり、TDKが2GHz対応車載インダクタ発表、KeysightがADS等にAIエージェント搭載、Mini-Circuitsのバトラーマトリクス解説(2026.10.08)
- 1980~2026年のノーベル物理学賞を素粒子・宇宙と物性・基礎に分けてプロット。昔は2つの分野は交互に獲る、という感じだったが去年まで5年連続物性・基礎だった。今年はアイスキューブニュートリノ観測所での成果ということで久しぶりに素粒子・宇宙。(2026.10.06)
- 高周波・RFニュース 2026年10月6日 QorvoがBAWベースのCバンドフロントエンドとXバンドフロントエンド発表、太陽誘電が低直流抵抗のメタル系パワーインダクタ発表、アンリツとキャンドックスシステムズが60GHz評価システム発表、QualcommとHuaweiが特許ライセンス契約(2026.10.06)
« 高周波・RFニュース 2026年10月1日 iFixitがApple AirPods 5を分解、KeysightがデュアルチャンネルのSG発表、アンリツが反射板を使った高速道路向け5G実証、Mini-CircuitsがGaN バランスアンプ解説、TDKのMLCCたわみクラック解説 | トップページ | 映画「ディスクロージャー・デイ」を観てきた。宇宙人の存在が隠蔽されているのはわかるが、終盤まで主人公2人に何が起きているのか全く分からない展開(数学が宇宙の共通言語ということだけ…)そして最後には予想通りあの人?が出てくるし、観る人に結末はゆだねられていた。 »



コメント