1
私は最大化したい尤度を与える関数を持っています。問題は、私が推定する必要がある4つのパラメータを与える必要があることです。Matlab maximize関数
[likelihood, z0, z1, z2, z3]= myfun(g, g1, g2, x1, g3, x2, x3)
出力で、私はそれを最大限に高めることができますどのように可能性を与える:私はこの機能がありますか?私はすべてg
を知っていますが、私はx
を知らないので、それらを尤度の最大化で推定する必要があります。さらに、私はz
も知らない。
私はfminsearchを行うべきだと思いますが、私はこのようなパラメータ推定のドキュメントを見つけることができませんでした。
正しい - 入力が厳密に1次元配列に並んスカラーである必要はありません。それらは行列で配列することができますが、検索は行列のすべての要素を最適化しようとします。この場合、最適化するための素数がありますので、1行7列の配列が唯一の選択肢です。 'ss = fminsearch(@(ss)-kalcvf(y、lead、a、reshape(s:1:4)、2,2)、b、H、diagのように7つの値をより簡潔に整理することができます。 (ss(5:7))、z0、vz0)、0(1、7)) 'である。 – Will
最適化ツールボックスをお持ちの場合、 'fmincon'は、探している種類の制約を提供します。私はツールボックスを持っていませんが、あなたの例は、 'fmincon(@ ss)-kalcvf(y、lead、a、reshape(s:1:4)、2,2)、b、 (0,1)、0(0)、0(0)、0(0)、0(0)、0 1; 1]) ')。あなたがそれを持っていない場合は、オンラインで議論される無制約検索で使用できるさまざまな戦略があります。目的関数を使用するかどうかにかかわらず、非線形関数を検索しても最適な、または良い答えが得られるわけではないことを覚えておいてください。 – Will
'params'から抽出する要素の数変更しようとしている行列のサイズと一致しません。 'H 'を9行2列の行列に変更するには、18要素が必要ですが、' params(5:23) 'は19です。' reshape(params(24:145)、11,11) 'と同じです。 1つは多すぎます。しかし、あなたの2番目の質問に答えるためには、143パラメータは、賢明な時間枠で良好な結果を得るには、確かに多すぎます。無制限の検索で良い結果が得られれば、おそらく同じ結果を得るためのより効率的な方法があります。 – Will