問題タブ [nonlinear-optimization]
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.
python - 最小限の誤差で非線形連立方程式を解く
いくつかの非線形最適化問題があります (できれば Python で解決します):
2D 平面に 3 つの円 (中心 x1..3、y1..3、半径 d1..3) が与えられています。
共通点 (x/y) が必要であり、この場合は fsolve (scipy.optimize) で計算できます。しかし、半径 r1..3 がそれぞれ u1..3 の不確実性を持つ場合、どのように問題を解決するのでしょうか? つまり、円の真の半径は ru ... r+u の区間にあります。
半径の不確実性を組み込んだ最適点 (x/y) を見つけるにはどうすればよいですか?
c++ - オブジェクト情報をコスト関数に渡す
ここに問題があります。非線形最適化にはminpackを使用しています。コスト関数には次のシグネチャがあります。
n-初期点のサイズm-関数ベクトルのサイズp-初期点x-関数ベクトル
オブジェクトの配列を反復処理するforループがあります。各オブジェクトには、最適化関数の入力情報が含まれています。
しかし、コスト関数では、現在のオブジェクトに関連する特定の値が必要です。コスト関数がクラスメンバーである場合、ポインターの型が間違っているため、このポインターをlmdif1_に渡すことはできません。
これで、グローバルオブジェクトを使用した一時的な解決策ができました。
次に、cost_functionはこのグローバルオブジェクトを使用して必要な情報を受け取ります。しかし、それは良くありません。この問題の正しい解決策は何ですか?ありがとう。
apache - Apache 数学最適化の例
単純な最適化の問題があり、そのための Java ソフトウェアを探しています。
Apache 数学最適化ソフトウェアは、私が欲しいものと同じように見えますが、私のニーズに合ったドキュメントを見つけることができません (これらのニーズは、初心者/非数学の専門家に役立ちます!)
機能した単純な例を知っている人はいますか?
それが役立つ場合、問題は最大rを見つけたいということです
また、変数間の関係を定義するための制約と式がいくつかあります。Excel ソルバーは、この問題に対してうまく機能します。LPSolve はうまく機能しましたが、この問題には s と m の乗算が必要なので、問題が非線形になるため、LPSolve は役に立たないことを理解しています。
math - モーション最適化/バンドル調整から構造内の欠落データを処理する方法
私はモーションアプリケーションの構造に取り組んでおり、オブジェクトに配置された多数のマーカーを追跡して、オブジェクトの剛体構造を決定しています。
このアプリは基本的に、複数のカメラビューに対して標準のLevenberg-Marquardt最適化を使用し、予想されるマーカーポイントと各ビューから2Dで取得されたマーカーポイントの違いを最小限に抑えています。
各マーカーポイントと各ビューについて、次の関数が最小化されます。
ここで、calculatedXY値は、最適化によって検出する必要のある未知のパラメーターの数に依存し、observedXYは2Dのマーカーポイントの位置です。合計で、私が最小化しようとしている上記のような機能の数(マーカーポイント*ビュー)があります。
すべてのマーカーポイントを確認するカメラのシミュレーションをコーディングしましたが、実行中に照明、オクルージョン、またはカメラビューに表示されないためにポイントが表示されない場合の処理方法を考えていました。アプリの実際の実行では、Webカメラを使用してオブジェクトを表示するため、すべてのマーカーが一度に表示されるわけではなく、コンピュータービジョンアルゴリズムの堅牢性によっては、を検出できない場合があります。常にマーカー。
マーカーポイントが観測できない場合は、差分値を0(シグマ二乗差= 0)に設定することを考えましたが、結果が歪む可能性はありますか?
私が気付いたもう1つのことは、ビューが多すぎるとアルゴリズムがそれほど良くないことです。ビューが多すぎると、悪い解決策を推定する可能性が高くなります。これは、ビューが多すぎる場合に極小値に達する可能性が高くなるため、バンドル調整の一般的な問題ですか?
python - SciPy optimization for under-constrained system
I often have to solve nonlinear problems in which the number of variables exceeds the number of constraints (or sometimes the other way around). Usually some of the constraints or variables are redundant in a complicated way. Is there any way to solve such problems?
Most of the scipy solvers seem to assume that the number of constraints equals the number of variables, and that the Jacobian is nonsingular. leastsq works sometimes but it doesn't even try when the constraints are fewer than the number of variables. I realize that I could just run fmin on linalg.norm(F), but this is much less efficient than any method which makes use of the Jacobian.
Here is an example of a problem which demonstrates what I am talking about. It obviously has a solution, but leastsq gives an error. Of course, this example is easy to solve by hand, I just put it here to demonstrate the issue.
The error message I get is:
I have scoured the net for an answer and have even asked on the SciPy mailing list, and got no response. For now I hacked the SciPy source so that the newton_krylov solver uses pinv(), but I don't think this is an optimal solution.
r - 非線形回帰 / L 無限大ノルムによるカーブ フィッティング
現在、時系列データの圧縮を検討しています。
アイデアは、任意のポイントの最大偏差が特定のしきい値を超えないように、n ポイントの時系列に曲線を適合させることです。つまり、時系列が定義されているポイントで曲線がとる値は、実際の値から特定のしきい値よりも「離れている」べきではありません。
これまで、R (nls 関数) および他の言語で最小二乗推定法を使用して非線形回帰を行う方法を見つけましたが、L 無限大ノルムで非線形回帰を実装するパッケージは見つかりませんでした。
この件に関する文献を見つけました:
http://www.jstor.org/discover/10.2307/2006101?uid=3737864&uid=2&uid=4&sid=21100693651721
また
http://www.dtic.mil/dtic/tr/fulltext/u2/a080454.pdf
たとえば、これをRで実装しようとすることもできますが、最初に、これがまだ行われていないかどうか、再利用できるかどうかを確認しました。
「非常に科学的」であるとは思わない解決策を見つけました。非線形最小二乗回帰を使用して、パラメーターの開始値を見つけ、その後、最大値を最小化する R「optim」関数の開始点として使用します。実際のポイントからの曲線の偏差。
どんな助けでも大歓迎です。アイデアは、このタイプの曲線フィッティングが特定の時系列シーケンスで可能かどうかを調べ、それを可能にするパラメーターを決定できるようにすることです。
すでにこの問題に遭遇していて、それが私を助けてくれる人が他にもいることを願っています;)
ありがとうございました。
matlab - fmincon の使用中にエラーが発生しました。ハックすると修正されますが、不安です
fmincon を使用すると奇妙なエラーが発生します。目的関数と非線形制約関数の詳細は多いので、できればそれらを説明せずにこの質問をしようと思います。
最小化には単一の入力が必要です。すべてではなく一部の入力で、次のエラーが発生します。
ACTIND の値を確認すると、[0] に等しいときにエラーがスローされるため、インデックス作成エラーが発生します。このスレッドの OP が行の前 (qpsub 内) で使用したハックに似ています。
私はif文を入れます:
予備テストから、これは問題を「修正」しているようです。エラーをスローしていた入力に対して適切な結果が得られ (適切な最小値が返され、制約が許容範囲内で満たされているという点で)、エラー (明らかに、if ステートメントは呼び出されないため)。だから私の質問は、これらの関数の内部の仕組みを知っている人にとって、これはどれほど悪いことですか? ACTIND が [0] であってはならないという恐ろしい問題を回避しているのでしょうか?
algorithm - 非線形関数fが常に正であるかどうかをチェックするためのアルゴリズム
与えられた(おそらく非線形の)関数fが常に正であるかどうかをチェックするアルゴリズムはありますか?
私が現在持っているアイデアは、関数の根を見つけ(ニュートンラプソンアルゴリズムまたは同様の手法を使用して、http://en.wikipedia.org/wiki/Root-finding_algorithmを参照)、導関数をチェックするか、最小値を見つけることです。 fの、しかし、それらはこの問題に対する最良の解決策ではないようです。また、求根アルゴリズムには多くの収束の問題があります。
たとえば、Mapleでは、関数verifyでこれを実行できますが、自分のプログラムで実装する必要があります。検証に関するMapleヘルプ:http://www.maplesoft.com/support/help/Maple/view.aspx? path = verify / function_shells Mapleの例:assume(x、'real'); verify(x ^ 2 + 1,0、'greater_than'); ->trueを返します。すべてのxに対してx^2 +1>0があるためです。
[編集]質問の背景:関数$ f $は、回路の右側の微分非線形モデルです。非線形回路は、修正節点解析(MNA)を適用することにより、常微分方程式のセットとしてモデル化できます。簡単にするために、1次元のシステムのみを考えてみましょう。したがって、$ x'= f(x)$ここで、$ f $は、回路、たとえば$ f$は$f(x)= 10x-100x ^ 2 + 200x ^ 3-300x ^ 4 + 100x ^ 5 $(非線形トンネルダイオードのモデル)または$ f =10-2sinになります。 (4x)+ 3x $(ジョセフソンジャンクションのモデル)。
$ x $は有界であり、$ f$は区間$[a、b] \ inR$でのみ定義されます。$f$は連続です。$ f $がリプシッツ定数L>0のリプシッツであると仮定することもできますが、必要がない限り、そうしたくありません。
c# - Gauss Newton メソッドと Levenberg Marquardt メソッドの C# 実装を知っていますか?
Gauss Newton と Levenberg Marquardt アルゴリズムの C# 実装を探しています。「トラスティ」C# ライブラリは既に存在しますか?
erlang - Erlangで可変アリティの関数を作成するにはどうすればよいですか?
Rnの関数/nの最小値を見つけるアルゴリズムがあります。そして、私は制約多様体を持っています。それは、特異な立方体の画像の形で与えられます。特異な立方体の内部空間をRnに、さらに重要なことにその逆にマッピングすることは非常に簡単であり、すべての座標に適用されたunar関数from_R_to_01を使用して実行できます。
したがって、私がやりたいのは、あるアリティのターゲット関数Fを取得し、同じアリティの別の関数を作成することです。これは、その座標がRnから制約マニフォールドManにマップされることを除いて、同じFになります。したがって、最小化アルゴリズムにそれを与え、Rnで座標のペアを取得し、それらを同じ多様体にマップして「実世界」の座標を取得できます。したがって、非線形計画法のタスクを制約のない最適化に減らします。
さて、質問に戻りましょう。このコードは2つのarの場合に機能します。
どうすればもっと一般的にできますか?最も難しい部分は、Fsのアリティの無名関数を作成することです。これを行う方法がまったくわかりません。