問題タブ [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.
java - ポートフォリオ選択のための純粋なJavaオープンソースライブラリ(=制約付き、非線形最適化)?
ポートフォリオを選択したり、制約付きの同様の種類の二次計画法を実行したりするための純粋なJavaライブラリを知っているか、経験がある人はいますか?
他の場所ですでに説明 したように、多くのツールがあるようですが、私が使用したいのは純粋なJava実装です。BSD風のライセンスを持つ別のオープンソースソフトウェア内からライブラリを呼び出したいので、GPLよりもLGPLの方が好きです。
どんな助けでも大歓迎です。そのようなライブラリがわからない場合、実装を提案する最も単純なアルゴリズムはどれですか?x_i
不等式制約(すべて> = 0)と等式制約(すべての合計= 1)に対処する必要がありx_i
ます。
r - データに一致する曲線を見つける
x、yデータを取得し、それに曲線を適合させる非線形曲線適合ルーチン(おそらく、RまたはPythonで見つかる可能性が最も高いですが、他の言語にも対応しています)を探しています。
フィットさせたい式のタイプを文字列として指定できるはずです。
例:
私がこれから得られるのは、少なくとも定数(A、B、Cなど)の値であり、うまくいけば、試合の適合性に関する統計です。
これを行うための商用プログラムがありますが、私は最近、言語ライブラリで目的の表現に適合するのと同じくらい一般的なものを見つけることができると期待していました。SciPyの最適化機能でこれができるのではないかと思いますが、方程式を定義できるかどうかはわかりません。同様に、私はRで欲しいものを正確に見つけることができないようです。
私が探しているものはそこにありますか、それとも自分で転がす必要がありますか?それがそこにあるなら私はそれをするのが嫌いで、私はそれを見つけるのに苦労しています。
編集:LAB Fitから取得するよりも、プロセスをもう少し制御するためにこれを実行したいと思います。LABFitUIは恐ろしいものです。また、範囲を複数の部分に分割し、さまざまな曲線で範囲のさまざまな部分を表すことができるようにしたいと思います。結局、結果は線形補間でLUTを(速度的に)打ち負かすことができなければなりません。さもないと私は興味がありません。
現在の一連の問題では、trig関数またはexp()があり、それらを1秒あたり352,800回リアルタイムで実行する必要があります(CPUのごく一部しか使用しません)。そこで、曲線をプロットし、そのデータを使用してカーブフィッターを駆動し、より安価な近似値を取得します。昔はLUTがほとんどの場合解決策でしたが、最近ではメモリルックアップをスキップして近似を実行する方が速い場合があります。
r - 非線形整数計画法
R に非線形整数最適化を処理するパッケージがあるかどうかを知りたいです。
「基本的に」、次の問題を解決したいと思います。
max f(x) s.t x in (0,10) and x is integer
.
一部の分岐アルゴリズムがこの問題の線形バージョンを処理できることは知っていますが、ここでの関数f()
はより複雑になる可能性があります。(それが の二次方程式になるかどうかさえ確認できませんf(x)=xQx
)。
制限されている限り、すべての可能性をテストする力ずくのソリューションが常にあると思いますが、もっと賢いものはないかと思っていました。
c# - 不等式制約を満たす {x,y} の離散ペアを見つける
に関していくつかの不等式が{x,y}
あり、次の方程式を満たします。
x
andy
は整数でなければならないことに注意してください。
グラフでは次のように表すことができます。青い領域は、上記の不等式を満たす領域です。
問題は、Matlab に許容可能なすべてのペアを見つける関数がある{x,y}
かどうかです。この種のことを行うアルゴリズムがあれば、私もそれについて聞いてうれしいです.
もちろん、いつでも使用できるアプローチの 1 つは{x,y}
、不等式が満たされるかどうかを確認するために、可能なすべての組み合わせをテストするブルート フォース アプローチです。しかし、これは時間がかかるため、最後の手段です。これを行う賢いアルゴリズムを探しています。または、最良の場合、すぐに使用できる既存のライブラリを探しています。
これらx^2+y^2>=100
and x^2+y^2<=200
は単なる例です。実際f
にg
は、任意の次数の任意の多項式関数にすることができます。
編集: C# コードも歓迎されます。
java - 非線形プログラミングの例 c、java?
非線形プログラミングの良い例を知っていますか?, 私はグーグルで検索しましたが, テキストは定式化するだけで問題を解決しません. 彼らは専門用語に言及し、それを解決することさえ優れています.
例を投稿して、if について少し説明していただけますか?
前もって感謝します
Pd C、Java を使用して、いくつかの結果と数値を表示するというアイデアを知っています。ありがとう
matlab - MATLABでのfsolveの各反復の間に関数を実行します
私はfsolve
MATLABのエネルギー関数を最小化するために使用しています。私が使用しているアルゴリズムは、グリッドをノイズの多い格子データに適合させますが、各データポイントからのグリッドの距離にコストがかかります。
目的関数は、ガウス・ニュートンアルゴリズムを使用できるように、二乗誤差項で定式化されます。ただし、プログラムはLevenberg-Marquardtに戻ります。
これはおそらく、コストに二乗誤差がある一方で、各データポイントに最も近いグリッド中心を選択する目的(コスト)関数のステージがあり、アルゴリズムが非二乗になるためであることに気付きました。
私がやりたいのは、コスト関数のJacobianの評価とは別に、最も近いグリッド中心のこの割り当ての更新を実行することです。これにより、ガウス・ニュートン法を使用できるようになり、アルゴリズムの速度が大幅に向上すると思います。
現在、私はこのようなことが起こっていると信じています:
代わりに私がしたいこと:
fsolve
アルゴリズム全体を分解せずに、このような関数を反復に挿入する方法はありますか?fsolveを手動で編集した場合でも、ガウス-ニュートンアルゴリズムの性質により、この追加の手順を追加できますか?
ありがとう
matlab - 変数を変更して目的関数を最小化する-Matlabで?
と101x82
呼ばれるサイズマトリックスがありA
ます。この変数行列を使用して、次の2つの変数を計算します。
1) B
、1x1
スカラー、および
2)C
、50x6
行列。
私はそれらの類似変数1)
とを比較 し、その値は固定されています:2)
3)
4)
3)D
、1x1
スカラー、および
4)E
、50x6
行列。
A
ここで、次のように行列の値を摂動/変更したいと思います。
1)
〜3)
、すなわち、B
にほぼ等しいD
、および
2)
〜4)
、すなわちC
ほぼ等しいE
摂動すると、、は変化しますがA
、B
とC
は変化しないことD
に注意してくださいE
。
これを行う方法はありますか?ありがとう!
r - R / S の非線形回帰
R / S / 非線形回帰に関連する問題があり、私は R プログラマーではないので、助けが必要です。
tt と td の 2 つの配列があります。
非線形関数の最小二乗和が最小になるように、パラメーター a、b、c を見つける必要があります。
これを行う方法がわかりません。nls()
関数を試しnls2()
ましたが、運がありませんでした...
前もって感謝します。
編集:
私のデータ:
以下の回答の方法を使用すると、ランダム データの値は問題ありませんが、使用しているデータはモデル メッセージの評価時に生成された欠損値または無限大を返します。
すぐにデータを提供できなくて申し訳ありません。
python - Python非線形最小二乗フィッティング
私は自分の問題に関係する数学の点で少し深みがないので、間違った命名法をお詫びします。
scipy関数leastsqの使用を検討していましたが、それが正しい関数かどうかはわかりません。私は次の方程式を持っています:
kd(PLP、p0、l0)を除くすべての項のデータ(8セット)があります。上記の方程式の非線形回帰によってkdの値を見つける必要があります。私が読んだ例から、leastsqは、必要な出力を取得するために、データの入力を許可していないようです。
ご協力ありがとうございました
matlab - 複数の方程式の複数の位相角を解く
I have several equations and each have their own individual frequencies and amplitudes. I would like to sum the equations together and adjust the individual phases, phase1,phase2, and phase3 to keep the total amplitude value of eq_total under a specific value like 0.8. I know I can normalize the signal or change the vertical offset, but for my purposes I need to have the amplitude controlled by changing/finding the values for just the phases in phase1,phase2, and phase3 that will limit the maximum amplitude when the equations are summed.
Note: I'm using constructive and destructive phase interference to adjust the maximum amplitude of the summed equations.
位相 1、位相 2、および位相 3 の値を調整/検索するだけで、eq_total の合計信号の振幅が 0.8 を超えないように、位相 1、位相 2、および位相 3 を解決する方法はありますか?
これは、このアイデアをテストした geogebra アプレットの写真です。
これは、アイデアの編集/テストに使用した geogebra ggb ファイルです。(これを使用して、私のアイデアが機能するかどうかを確認しました)アプレットと動的にやり取りする場合は、Java が必要です http://dl.dropbox.com/u/6576402/questions/ggb/sin_find_phases_example.ggb
私は matlab/octave を使用しています ありがとう