Google ColabのJulia言語でDifferentialEquationsパッケージを使って35段14次ルンゲクッタFeagen法(BigFloat使用)、オイラー法、4段4次のルンゲクッタ法、Tsit5、Dormand&Princeの8次(全部Float64)でローレンツ方程式をアダプティブは切って固定刻み幅で計算して比較。
Google Colabでjuliaが試せるようになったのでたまに使っている。DifferentialEquationsパッケージの公式サイトを見ていたら
35段14次のFeagen法がデフォルトで使えると分かった。これは昔、PARI/GPで試していたもの。
35段14次のルンゲクッタ法をPARI/GPに実装、ローレンツ方程式を計算し、通常の4次、そして8次、オイラー法と比較してみる。
簡単に使えそうなので同様なことをやってみる。使うのはEuler, RK4, デフォルトのTsit5, Dormand&Princeの8次のDP8、そしてFeagen14。
Google ColabにはDifferentialEquationsパッケージはインストールされてなかったのでまずこれ。
using DifferentialEquations
using Plots
function lorenz!(du, u, p, t)
du[1] = 10.0 * (u[2] - u[1])
du[2] = u[1] * (28.0 - u[3]) - u[2]
du[3] = u[1] * u[2] - (8.0/3.0) * u[3]
nothing
end
tspan = (0.0, 100.0)
u0 = [1.0;0.0;0.0]
bigu0 = [big(1.0);big(0.0);big(0.0)]
euler = solve(ODEProblem(lorenz!, u0, tspan), Euler(), adaptive = false, dt = 0.01);
rk4 = solve(ODEProblem(lorenz!, u0, tspan), RK4(), adaptive = false, dt = 0.01);
tsit5 = solve(ODEProblem(lorenz!, u0, tspan), Tsit5(), adaptive = false, dt = 0.01);
dp8 = solve(ODEProblem(lorenz!, u0, tspan), DP8(), adaptive = false, dt = 0.01);
feagin14 = solve(ODEProblem(lorenz!, bigu0, tspan), Feagin14(), adaptive = false, dt = 0.01);
plot(euler.t, euler[1,:], label = "Euler", xlabel="t", ylabel="X",size = (1200, 800))
plot!(rk4.t, rk4[1,:], label = "RK4")
plot!(tsit5.t, tsit5[1,:], label = "Tsit5")
plot!(dp8.t,dp8[1,:], label = "DP8")
plot!(feagin14.t, feagin14[1,:], label = "Feagin14")
|
とするだけ。Feagen14はBigFloatを使っているが、初期値だけそうしておくと勝手に全部BigFloatで計算してくれて便利。
結果はこちら。
まあオイラー法はほぼ最初から全然ダメ…オイラー法だけ除くと25くらいからルンゲクッタ4次もずれてきている。
拡大するとこんな感じ。
ルンゲクッタ4次は25くらいから、Tsit5は30くらいから、Dormand⁻Prince8次は40くらいからずれてる。
まあ実際に使うときはTsit5でアダプティブありにしとけばいいのでは。
念のため、Feagin14でアダプティブあり、abstol=reltol=1e-40にした結果。
うーんやっぱり50くらいからずれ始めるのか、難しい…
« 久々知須佐男神社でお参り。忍たま乱太郎の久々知兵助はこの地名から。 | トップページ | 高周波・RFニュース 2025年3月26日 ルネサスが車載Bluetooth Soc発表、QorvoがUltra-Wideband(UWB)レーダについて解説、VNPTがQualcommの XGS-PONとWi-Fi 7ソリューション採用、SpirentのAIインフラのテストレポート »
「パソコン・インターネット」カテゴリの記事
- Google Gemini 2.5 Pro experimentalに高周波で使われるSパラメータのTouchstoneファイルを読み込んでプロットするC#コードを書いてもらうと570行のコードができて動いた。ファイルの拡張子snpのnでポート数を判別するが人間を信じないのでデータ数えて確認するのに笑った。(2025.04.21)
- Google ColabのJulia言語で搭載されているGeminiを使って一行もコードを書かずに2次元拡散方程式を差分法で計算してGIFアニメにする。次に同じように2次元波動方程式もやってもらう。(2025.04.09)
- Google ColabのJulia言語で主成分分析(PCA)をやってみる。データはおなじみアヤメ(iris)で、標準で特異値分解(SVD)が入っているのですぐできた。(2025.04.08)
- Google ColabのJulia言語でマンデルブロ集合、仏様のようなブッダブロ、燃える船・バーニングシップフラクタルを描いてみる。どれも計算が速い。(2025.04.04)
- Google ColabのJulia言語でソリトンを生み出すKdV方程式を計算してGIFアニメにしてみる。ZabuskyとKruskalが1965年に使った計算法(Leap frog法で非線形のところは周りとの平均値)を使ったが、当時は数日かかっていただろう計算が20秒ほどでできる。(2025.04.01)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年4月25日 方向性結合器の解説記事、バイアスTの解説記事、インターデジタルが6GにおけるAIについて語る、NASAがエアロゲルを使った超軽量アンテナテスト中、ロームがOBC向けSiCモジュール発表(2025.04.25)
- 高周波・RFニュース 2025年4月24日 グラーツ工科大学のBösch教授のミリ波フロントエンドセミナーが広島と名古屋で開催、MediaTekがDimensity Auto発表、TMYTEKがmmW-OAI発売、MVGとアンリツがWi-Fi 7 OTA測定で協業、SPARK MicrosystemsのUWBトランシーバー(2025.04.24)
- 高周波・RFニュース 2025年4月23日 SRGが5G Massive MIMOは大きいほど性能がいいか調査、Ericssonがインドでアンテナ製造、5Gがシャノン限界に2つの意味で近づいているという論説、Mini-CircuitsがXバンドのデュアル信号発生器を発売(2025.04.23)
- 数理科学5月号 情報と物理学 ― エントロピーがつなぐ数理の世界を買った。データ圧縮、マクスウェルの悪魔&シラードエンジン、ブラックホール、量子情報、量子統計力学、テンソルネットワーク、ニューラルネットワーク、高分子の自己複製など話題が豊富で面白かった。(2025.04.23)
- 高周波・RFニュース 2025年4月22日 Signal Houndが40GHzまでのUSBネットアナ発売、EDI CON ONLINE2025は4月23日開催、5G、6G、IoTなど、MathWorksがアンテナとTRモジュールのモデルベース設計解説、EECLが85GHzまでのアップ/ダウンコンバータ発売(2025.04.22)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年4月25日 方向性結合器の解説記事、バイアスTの解説記事、インターデジタルが6GにおけるAIについて語る、NASAがエアロゲルを使った超軽量アンテナテスト中、ロームがOBC向けSiCモジュール発表(2025.04.25)
- 高周波・RFニュース 2025年4月24日 グラーツ工科大学のBösch教授のミリ波フロントエンドセミナーが広島と名古屋で開催、MediaTekがDimensity Auto発表、TMYTEKがmmW-OAI発売、MVGとアンリツがWi-Fi 7 OTA測定で協業、SPARK MicrosystemsのUWBトランシーバー(2025.04.24)
- 高周波・RFニュース 2025年4月23日 SRGが5G Massive MIMOは大きいほど性能がいいか調査、Ericssonがインドでアンテナ製造、5Gがシャノン限界に2つの意味で近づいているという論説、Mini-CircuitsがXバンドのデュアル信号発生器を発売(2025.04.23)
- 高周波・RFニュース 2025年4月22日 Signal Houndが40GHzまでのUSBネットアナ発売、EDI CON ONLINE2025は4月23日開催、5G、6G、IoTなど、MathWorksがアンテナとTRモジュールのモデルベース設計解説、EECLが85GHzまでのアップ/ダウンコンバータ発売(2025.04.22)
- 高周波・RFニュース 2025年4月21日 6GWorldがサイトリニューアル、ITUがAI Native Telecom Networkの会議を開催、SEMCOが150℃保証の車載MLCC発表、Samsung Galaxy A26分解動画、Maury Microwaveが測定・モデリングソフト発表(2025.04.21)
« 久々知須佐男神社でお参り。忍たま乱太郎の久々知兵助はこの地名から。 | トップページ | 高周波・RFニュース 2025年3月26日 ルネサスが車載Bluetooth Soc発表、QorvoがUltra-Wideband(UWB)レーダについて解説、VNPTがQualcommの XGS-PONとWi-Fi 7ソリューション採用、SpirentのAIインフラのテストレポート »
コメント