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)をいただく。 | トップページ | からやまで赤カリ合盛り定食をいただく。見かけほど辛くなくてピリ辛くらいで美味しいです。 »
「パソコン・インターネット」カテゴリの記事
- 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)
« 餃子の王将で8月限定の温玉中華カレーラーメン(フェアセットB)をいただく。 | トップページ | からやまで赤カリ合盛り定食をいただく。見かけほど辛くなくてピリ辛くらいで美味しいです。 »




コメント