問題タブ [fminsearch]
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.
matlab - 複雑な関数でフィッティング
実験データに適合するモデルを見つけなければなりません。問題は、モデルが複雑な関数であることです。
実部と虚部の両方について、モデルと実験データの間の誤差を最小限に抑える必要があります。fminsearch を使用して、エラーを最小限に抑える関数のパラメーターを見つけています。その機能を使うために、実部と虚部を分けました。
私の問題は、使用しなければならないエラーの機能がわからないことです。
今まで私は使用しています
しかし、得られたモデルは、少なくとも虚部については、実験データをまったく満たしていません。初期条件を何度か変更しましたが、虚部の適合性を改善することはできません。虚数部の大きさは、実数部の数分の 1 です。それが理由でしょうか?
matlab - fminsearch を使用して、ローカル最小化とその値での最小値を見つけます
fminsearch
関数の入力引数が不足しているというエラーが表示されます。
私の機能に何か問題がありますか?他のコマンドで入力関数として使用したいときはいつでもエラーが発生します。
matlab - matlab fminconエラー「ソルバーが途中で停止しました」
特定のノットに対して 6 DOF マニピュレータの特定のパスがあります。パス(自由度、結び目)
各ジョイント間に 3 次スプラインを生成し、各時間間隔を h(i) として定義し、最小の h 値を見つけようとしましたh(1)+h(2)+h(3)+h(4)+h(5)
。
その問題を解決するために、私はコードを書きました:
コードを実行すると、次のように表示されます。
ソルバーが途中で停止しました。反復制限 options.MaxIter = 1000 (選択された値) を超えたため、fmincon は停止しました。
5 回目の反復後、f(x) の値は変化せず、結果は次のようになります。
その背後にある理由についてはわかりません。手伝っていただけませんか?
matlab - Matlab で最適な波形の重なりを見つける
2 つの波形間の最適なオーバーラップを見つける方法の例をいくつか見ようとしています。ここにいくつかの例のデータがあります。
x
波形の-値と -値の範囲が異なることに注意してくださいx
。x2
具体的には、 と のみを変更したいと思いy2
ます。値はx
相対的な間隔を維持する必要があります (つまり、任意の 2 つの連続する x 値 (上記のx2
例では1
) の間の距離は同じでなければなりませんが、最適なオーバーラップを見つける際に、新しい距離は元の距離とは異なる可能性があります)。 . つまり、2 番目の波形の「形状」は同じままでなければなりません。
一般に、次の 2 つの手順を実行する必要があります。
x2
新しい値 を割り当てるy2
値をグローバルな係数でスケーリングします
最適なオーバーラップを、2 つの波形間の最小化された減算として定義したいと思います。つまり、最初のx
値 (x1
およびの最小値x2
) から最後の値 (およびx
の最大値) まで、2 つの波形の減算は最小になります。ポイント間を補間することにより、波形が異なる値を持っていても、波形を減算できることに注意してください。データが存在しない場合、減算には基本的にいずれかの波の a を含める必要があります。x1
x2
x
0
何か案は?前もって感謝します!
matlab - fminsearch の反復ごとに関数で計算された値を保存する
を使用して関数の最小値を見つけたい
今、反復ステップごとに、関数「esm6」が計算して配列に保存する値が必要です。私は次のことを試しました:私が書いた関数の最初の行で
fminsearch の反復ステップをカウントする反復変数を持つ。そして後で必要な値をキャッチするために使用しました
次の関数呼び出しで identi-struct の新しい値を確実に使用するために、関数の最後に次のように記述しました。
残念ながら、私がやりたかったことはできません。誰でもこれで私を助けることができますか?
編集:
出力関数を使用して、別の試みを行いました。オプションを次のように拡張します。
しかし、今の問題は、この楽しみをどこに置くべきか分からないことです。outfun は次のようになります。
ここでの問題は、スクリプトであるため、fminsearch を呼び出すファイルに入れることができないことです。outputfunction を別の .m-function ファイルに入れると、esm6 関数の変数にアクセスできません。そして、それをesm6-functionファイルに追加すると、matlabは関数を見つけることができず、
??? ==> feval の使用エラー タイプ「struct」の入力引数に対する未定義の関数またはメソッド「outfun」。
matlab - 反復ごとの fminsearch の関数呼び出しの数を取得する
このコードは、esm6 関数のローカルの最小値を見つけ、「表示」オプションにより、このような文字列を出力します
反復 Func-count 分 f(x) 手順
0 1 36.9193
1 5 35.9815 初期シンプレックス
2 7 35.4924 契約内
3 9 35.4924 契約内
4 11 33.0085 拡張
したがって、コマンド ウィンドウで、反復ステップごとに関数 Count を取得します。fminsearch によって作成される構造体output
には、その中に func-count の合計量しかありません。コマンドウィンドウに出力されたすべての情報を出力構造にも受け取る方法はありますか?
編集:
私は解決策にかなり近いと思います。私はこの出力関数を書きました:
http://de.mathworks.com/help/matlab/math/output-functions.htmlにより、これは機能するはずですが、実際、matlab は私に、
??? 存在しないフィールド 'funcCount' への参照。
なぜこれが起こるのですか?