Visual C# (C_sharp)の数値計算ライブラリ MathNET Numericsを使う(6) OptimizationのNelder-Mead SimplexでRosenbrock関数(5パラメータ)を最小になる点を探す。
今回はMath.NET Numericsを使った最適化。
Python(SciPy)の例題を使おう。
https://docs.scipy.org/doc/scipy/tutorial/optimize.html
アルゴリズムは導関数などが不要なNelder-Mead SimplexでRosenbrock関数の5パラメータ版を使う。
ObjectiveFunction.Valueに関数を与える必要がある、というのがよくわからなくて悩んだ…
プログラムはこんな感じで、
結果はこちら。
プログラムのテキスト:
using System;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Optimization;
namespace OptimizationTest01
{
class Program
{
static void Main(string[] args)
{
var objFunc = ObjectiveFunction.Value(Rosenbrock);
var solver = new NelderMeadSimplex(1.0E-9, 1000);
var initialGuess = Vector.Build.DenseOfArray(new []{ 1.3, 0.7, 0.8, 1.9, 1.2 });
var results = solver.FindMinimum(objFunc, initialGuess);
for (int i = 0; i < initialGuess.Count; i++) {
Console.WriteLine($"x[{i}] = {results.MinimizingPoint[i]}");
}
}
static double Rosenbrock(Vector x)
{
double sum = 0.0;
for (int i = 0; i < x.Count - 1; i++)
{
sum += 100.0 * (x[i+1] - x[i] * x[i]) * (x[i+1] - x[i] * x[i]) + (x[i] - 1.0) * (x[i] - 1.0);
}
return sum;
}
}
}
過去のもの:
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を使う(4) 多項式フィッティングをして、Array.ConvertAllで一括でフィッティングデータを得る。
« 餃子の王将で8月限定の温玉中華カレーラーメン(フェアセットB)をいただく。 | トップページ | からやまで赤カリ合盛り定食をいただく。見かけほど辛くなくてピリ辛くらいで美味しいです。 »
「パソコン・インターネット」カテゴリの記事
- Google ColabのJulia言語でDifferentialEquationsパッケージを使ってピタゴラスの三体問題を35段14次ルンゲクッタFeagen法で計算し、Colab上でGIFアニメにしてみた。dtminを小さくしないと途中で止まってしまうことにハマった…(2025.03.27)
- Google ColabのJulia言語でDifferentialEquationsパッケージを使って35段14次ルンゲクッタFeagen法(BigFloat使用)、オイラー法、4段4次のルンゲクッタ法、Tsit5、Dormand&Princeの8次(全部Float64)でローレンツ方程式をアダプティブは切って固定刻み幅で計算して比較。(2025.03.26)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年3月28日 Next G Allianceが6Gに向けたコンポーネント技術を策定、Ericssonのパッシブアンテナで5G効率化、u-bloxがソフトバンクと協業で日本にPointPerfect GNSS補正を拡大、中国以外の国は6Gに無関心になってきたという記事(2025.03.28)
- パンサー尾形さんのNHK 笑わない数学スペシャル ホッジ予想を見てメモ。オイラー数、デカルト座標、ポアンカレのベッチ数、ネーターのコホモロジー、たくさん見つかるコホモロジー、グロタンディークのモチーフ、そしてドリーニュさんのインタビューという構成でした。(2025.03.27)
- 高周波・RFニュース 2025年3月27日 Qualcommが3GPP 6Gワークショップで議論された内容を紹介、Broadcomが00G/lane DSP PHYチップ発表、DreiとEricssonが5GのWバンド(92~115 GHz )テスト中、Siversが高性能レーザでWINセミコンダクタと提携、Semtechの50G PON(2025.03.27)
- Google ColabのJulia言語でDifferentialEquationsパッケージを使ってピタゴラスの三体問題を35段14次ルンゲクッタFeagen法で計算し、Colab上でGIFアニメにしてみた。dtminを小さくしないと途中で止まってしまうことにハマった…(2025.03.27)
- 高周波・RFニュース 2025年3月26日 ルネサスが車載Bluetooth Soc発表、QorvoがUltra-Wideband(UWB)レーダについて解説、VNPTがQualcommの XGS-PONとWi-Fi 7ソリューション採用、SpirentのAIインフラのテストレポート(2025.03.26)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年3月28日 Next G Allianceが6Gに向けたコンポーネント技術を策定、Ericssonのパッシブアンテナで5G効率化、u-bloxがソフトバンクと協業で日本にPointPerfect GNSS補正を拡大、中国以外の国は6Gに無関心になってきたという記事(2025.03.28)
- パンサー尾形さんのNHK 笑わない数学スペシャル ホッジ予想を見てメモ。オイラー数、デカルト座標、ポアンカレのベッチ数、ネーターのコホモロジー、たくさん見つかるコホモロジー、グロタンディークのモチーフ、そしてドリーニュさんのインタビューという構成でした。(2025.03.27)
- 高周波・RFニュース 2025年3月27日 Qualcommが3GPP 6Gワークショップで議論された内容を紹介、Broadcomが00G/lane DSP PHYチップ発表、DreiとEricssonが5GのWバンド(92~115 GHz )テスト中、Siversが高性能レーザでWINセミコンダクタと提携、Semtechの50G PON(2025.03.27)
- Google ColabのJulia言語でDifferentialEquationsパッケージを使ってピタゴラスの三体問題を35段14次ルンゲクッタFeagen法で計算し、Colab上でGIFアニメにしてみた。dtminを小さくしないと途中で止まってしまうことにハマった…(2025.03.27)
- 高周波・RFニュース 2025年3月26日 ルネサスが車載Bluetooth Soc発表、QorvoがUltra-Wideband(UWB)レーダについて解説、VNPTがQualcommの XGS-PONとWi-Fi 7ソリューション採用、SpirentのAIインフラのテストレポート(2025.03.26)
« 餃子の王将で8月限定の温玉中華カレーラーメン(フェアセットB)をいただく。 | トップページ | からやまで赤カリ合盛り定食をいただく。見かけほど辛くなくてピリ辛くらいで美味しいです。 »
コメント