« Tensorflow(Keras)のNormalizationで多次元配列の平均を取るのにaxisの定義がNumpyのmeanなどと違うのにハマる…タプルを使わないとだめなのか。 | トップページ | 兵庫県・尼崎の潮江素盞嗚神社(しおえすさのお)でお参り。お賽銭箱がそろばんの玉になっている。 »

2023年4月 5日 (水)

Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(5)常微分方程式の数値解法、4段4次のルンゲクッタ法がRungeKutta.FourthOrderの一文でできる。ローレンツ方程式を例としてやってみる。

※今回もC#版とまったく同じ文章です。

さて今回は常微分方程式の数値解法。2次と4次のルンゲクッタ法とアダムスバッシュフォース法が使える。 まずは最初にusing MathNet.Numerics.OdeSolvers;はつけておく。で基本、RungeKutta.FourthOrderの1文で計算できる。Vectorの配列に結果は入るのと、関数もFunc(double, Vector,Vector)で与えることだけ注意。

例題はまあLorenz方程式がいいでしょう。

\begin{align} &\frac{dx}{dt} = \sigma (y - x) \\\ &\frac{dy}{dt} = -xz + rx -y \\\ &\frac{dz}{dt} = xy - bz \\\ \end{align}

プログラムはこんな感じで、

Vbrungekutta1

結果はこんな感じです。 

Vbrungekutta2

Visual Basic .NETでの過去事例はこちら。

Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。


Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。

Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(3) 高速フーリエ変換(FFT)を実行する。FourierOptionsにMatlabとNumerical Recipesがあるのが意外。

Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。 

C#の事例はこちら。 

Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(1) 複素行列を定義して一次方程式や逆行列、行列式などを計算する。

Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(2) 補間を行う(Interpolate) リニア、3次スプライン、有理関数などいろいろ使える。

Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(3) 高速フーリエ変換(FFT)を実行する。FourierOptionsにMatlabとNumerical Recipesがあるのが意外。

Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。

Visual C# (C_sharp)の数学ライブラリ Math.NET Numericsを使う(5) 常微分方程式の数値解法、4段4次のルンゲクッタ法がRungeKutta.FourthOrderの一文でできる。ローレンツ方程式を例としてやってみる

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(6) OptimizationのNelder-Mead SimplexでRosenbrock関数(5パラメータ)を最小になる点を探す。

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(7) OptimizationのLevenberg-Marquardt法(LevenbergMarquardtMinimizer)で非線形最小二乗法(回帰)でNISTの例題Rat43を計算する。

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(8) 特異値分解(SVD)、主成分分析(PCA)を計算してみる(ちょうど奥村先生が記事を出されてたので)

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(9) いろんな確率分布の乱数(メルセンヌツイスタがベース)をヒストグラムにして描く。とりあえず正規分布とガンマ分布で。

Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(10) 数値積分としてガウス・クロンロッド積分公式と二重指数関数型積分公式を試す

« Tensorflow(Keras)のNormalizationで多次元配列の平均を取るのにaxisの定義がNumpyのmeanなどと違うのにハマる…タプルを使わないとだめなのか。 | トップページ | 兵庫県・尼崎の潮江素盞嗚神社(しおえすさのお)でお参り。お賽銭箱がそろばんの玉になっている。 »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« Tensorflow(Keras)のNormalizationで多次元配列の平均を取るのにaxisの定義がNumpyのmeanなどと違うのにハマる…タプルを使わないとだめなのか。 | トップページ | 兵庫県・尼崎の潮江素盞嗚神社(しおえすさのお)でお参り。お賽銭箱がそろばんの玉になっている。 »

最近の記事

最近のコメント

2025年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
フォト
無料ブログはココログ