問題タブ [solver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - Excel VBA:ソルバーは、日付変数を使用して「時間の経過とともに」最適化していないようです?
ソルバーで取り組もうとしている最適化問題があります。特に、決定変数の 1 つは、日付を含むセルです。時系列に基づいて、ソルバーは最適な時点を選択する必要があります。ただし、他の決定セルは変更されますが、この決定セルは変更されません。私は他の決定変数を削除しようとしました(それらを一定に保ちます)-それでも変化はありません。
私の問題を解決するのに役立つように、株価の時系列から Solver が最高値の日付を選択する単純化された問題を含む Excel シート (ここ:ダウンロード リンク) を作成して添付しました。(この特定の問題は MAX 式で簡単に解決できることは承知していますが、実際の最適化の問題ははるかに複雑であり、この解決策を使用することはできません。)
この非常に単純化された設定でも、ソルバーは最初の日付値で何も変更しません!
数学的な観点から、現在の問題は (非線形の) ステップ関数として特徴付けることができます。ここで、特定の時点 (x 軸上) は異なる価格 (ステップ、y 軸上) に対応します。
ソルバーに時間 (日付) 値を処理させるために必要なトリックはありますか? 運が良ければ、適切なソルバー設定のセットを見つけて、正しいソリューション (2009 年 1 月 10 日) に到達することができれば、喜んでお知らせします。
編集:滑らかでない不連続関数(基本的には階段関数であるこの問題のような)による非線形問題は、一般に、(非線形)線形オプティマイザーで取り組むのが難しいことがわかりました。この問題に精通した誰かが、解決可能な方法で問題を再定式化するのを手伝ってくれますか? 提案された解決策を含むスタック オーバーフローに関する同様のトピックを見つけましたが(最初の回答を参照)、それを私の問題に適用する方法がわかりません。
ありがとう、スティーブ
algorithm - 多項式の逆
私は5次の多項式を持っています:
y = ax 5 + bx 4 + cx 3 + dx 2 + ex + f
係数afは既知であり、与えられたyに対してxを計算する必要があります。ニュートンラプソンアルゴリズムなどを使用することもできますが、可能であれば非反復ソリューションを使用することをお勧めします。
編集:質問を投稿する前に、これについて十分に考えていなかったと思います。私の多項式係数はサンプリングされたデータから計算されており、この特別な場合にはルートが1つだけです。もちろん、一般的なケースでは5つの異なるルーツがあるかもしれないということは私の心を通過しませんでした。サンプリングしたデータも逆多項式に当てはめ、それを使ってyからxを計算すると思います。
c# - .NET 数式エディターとソルバー コントロールを探しています
簡単な数式の編集と解決の両方を処理できるサードパーティのカスタム コントロールを探しています (画像生成あり)。
私はLaTeXとその構文を使用して数学方程式の画像を生成することを知っています(LaTeXを実装するこのプロジェクトをここで使用しました:http://www.codeproject.com/KB/dotnet/Eq2Img.aspx)、いくつか見つけました方程式を入力文字列として取り、方程式をコンパイル、解析、および解くことができるプロジェクト (ここに 1 つ: http://www.codeproject.com/KB/recipes/EvaluationEngine.aspx ) があります。
ただし、出力されたプレビュー画像を使用して方程式を作成し (LaTeX のように)、方程式の変数の値を指定し、出力された結果で方程式を解くことができるものをまだ見つけていません。
数式の編集と解決の両方を実行できるサードパーティ製のコントロールが存在するかどうかは誰にもわかりませんか? 私は C# .NET 4.0 を使用しているので、.NET でライブラリ/コントロールを使用できることを願っています。
同様のものへのヘルプやリンクは大歓迎です。
ありがとう、マーク
c - C で行列を解く (CUDA 内)
より大きな問題の一部として、小さな線形システム (つまり、N ~ 10 の NxN) を解決する必要があるため、関連する cuda ライブラリを使用しても速度の点で意味がありません。
残念ながら、GSL や EIGEN などの大物を引き込まずに、そのようなシステムを解決する方法も不明です。
ストレート C の密行列ソルバー (Ax=B) の方向を教えてくれる人はいますか?
興味のある方のために、コードのこのセクションのジェネレーターの基本構造は次のとおりです。
残念ながら、私は高等数学の知識がほとんどないので、アドバイスをいただければ幸いです。
更新:私はこれに取り組んできましたが、実行されているが機能していないほぼ解決策があります。潜んでいる人は誰でも、私がこれまでに得たものをpastebinでチェックしてください。
最も一般的なアプローチと思われる Pivoting で Crout Decomposition を使用しています。このテストの考え方は、すべてのスレッドが同じ作業を行うというものです。つまらないことはわかっていますが、matrixcount 変数を増やし、実際のデータを入れ、各スレッドが小さな行列を個別に解くという計画です。
これをチェックしてくださった皆様、ありがとうございます。
回答後の更新: CPU と GPU 操作の行列解法コードを完成させました。こちらの遅延記事をご覧ください。
excel - Excel ソルバーと VBA: 制約内の浮動小数点数/10 進数が正しく整数に変換されませんか?
Excel 2007 と 2010 の両方で VBA スクリプトを実行しています。これには、Excel の組み込みソルバーを使用した多くの最適化が含まれます。
X>=0.0001 のような 10 進制約を指定する正しい方法は何ですか。ここで、X は問題の決定変数になります。
または、引用符 " " を削除する必要がありますか? また、ソルバーの VBA インターフェイスでは、10 進数 (非整数) の制約を使用できますか?
>= 0.0001の制約が> = 1と誤って解釈され、もちろん間違った結果をもたらすという(未確認の)感覚が時々あるので、私は尋ねています。
誰かが私のためにこれらの問題を明確にすることができれば、それは素晴らしいことです.
スティーブ
excel - Excel2010のEvolutionarySolverメソッドに関する意見と経験
マイクロソフトは、標準のソルバーアドインの既存のシンプレックス(線形)および勾配(非線形)ソルバーエンジンを、グローバルな最適解が一般的に難しい(またはほとんどの場合)滑らかでない不連続な問題を目的とした進化的ソルバーエンジンによって拡張しました。他のエンジンで見つけることさえ不可能です。実際、これは以前はFrontlineのPremium Solver製品ラインでしか利用できなかったソルバーの1つであるため、Excelに付属している標準ソルバーへの寛大な追加と見なすことができると思います。
この新しいエンジンを使用している人々についてはあまり聞いたことがなく、ほとんどのソルバーユーザーはMicrosoftによるこの最近の追加に気付いていないと思います。私はここでそれを認識します:http://office.microsoft.com/en-us/excel-help/what-s-new-in-excel-2010-HA010369709.aspx
したがって、他の方法よりも収束に時間がかかるように思われるため、合理的な設定に関しても、ご意見やご感想をお聞かせください。
algorithm - Excelソルバーに代わるC++の最適化アルゴリズムを探しています
Excelソルバーは何千もの最適化で実行するのが非常に遅いため(スプレッドシートをインターフェイスとして使用するため)、C ++で同様の(問題固有の)ソルバーを実装しようとしています(Visual Studio 2010を使用して、Winで) 7 64ビットプラットフォーム)。私はVBAのDeclareステートメントを介してDLLを含め、すでにこれを行った経験があるので、これは問題ではありません。
私の問題は、経験的データと、非線形であるが滑らかなターゲット関数との間の二乗誤差の合計を最小化することであり、問題には、非負性(X> = 0)または正の制約(たとえば、X> = 0.000000001)が含まれます。 、Xは決定変数を示します。
堅牢で実績のある実装を探しています。確立されたライブラリの一部である可能性があります。たとえば、私はすでにALGLIBが何を保管しているかを調べましたが(http://www.alglib.net/optimization/を参照)、それらのアルゴリズムの1つだけが制限付き制約を受け入れるようです。でも、それが何の価値があるのかわからないので、意見を集めようとしています。
または、別の注意点として、たとえば、私の制約を満たさないすべての中間解を拒否することによって、ALGLIBのLevenberg-Marquardtアルゴリズムをそのような基本的な制約で拡張することをお勧めしますか?(それはそれをしないと思いますが、それでも尋ねる価値があります)
c - C:LU完全ピボット分解およびマトリックスソルバー。何かが正しくありません
私は数日間DIYのlinalgソルバーに取り組んでおり、それが一緒になっています(stackexchangeであなた たちに小さなことはありません)が、私は現在Brain Fartを経験しており、現在のコードの何が問題なのかわかりません。任意の洞察をいただければ幸いです。あなたたち最高!
以下のコードはコピーして貼り付ける必要があります。結果は-15,8,2になるはずですが、現在2、inf、-infが出力されています。これは、言うまでもなく正しくありません。
編集:修正する必要がある最後のことは、Back Substitution / Ux = xステージだと思いますが、私が知る限り、これは「正しい」です。この例に従って、中間作業を確認します
oop - Excel VBA: 破壊されていないオブジェクトが多すぎるため、オーバーフロー エラーが発生しましたか?
大規模なデータセットで最適化タスクを実行すると、オーバーフロー ランタイム エラー 6 がときどき発生します (通常は 1 時間または 2 時間後)。マクロを停止したところから再起動すると、エラーはなくなります。つまり、エラーが発生した場所からマクロを再度起動します。オーバーフロー エラーは、使用後に適切に破棄されないオブジェクトを作成しすぎたという問題に関連している可能性がありますか?
これは私のコンテナー クラスの (簡略化されたバージョン) で、何千回も (Set ... = Nothing を介して) 破棄され、(Set ... = New を介して) 再構築されます。
コンテナー変数 global_container は、ワークシート UDF (RMSE_UDF) から呼び出すことができる必要があるため、グローバルである必要があります。私の知る限り、ワークシートの数式は、「=RMSE(MyContainer,...)」のようにオブジェクトを引数として持つことはできません。二乗平均平方根誤差 (RMSE) の最小化は、Excel ソルバーで実行されます。
language-agnostic - LP(およびQP)を解決するための「内点法」の実装
IPM の実装をいくつか見てみたいと思います。望ましい言語は、C/C++、Java、または python、perl などのスクリプト言語です。その他も良好です。
私を助けることができる良いリソースを探しています、
- 最適化手法の基礎、
- 内点法の基本と他のテクニックとの違いの基本
- IPMの種類、
- アルゴリズムの詳細、および
- サンプル実装。
これらのアイデア/ロジックを使用して線形または二次方程式のシステムを解くプロジェクトの一部として、これに興味があります。
上記のリソースに関する情報があればお知らせください。