私は未満の状態方程式行列の固有値を保ち、MATLABの最適化Toolbooxではfminconを用いた非線形フィルタのパラメータを推定しようとしています。 「SQP」アルゴリズムを使用して、fminconのためのドキュメントは、それはすべての反復で制約を尊重し、まだ私のコードの非常に最初の繰り返しでそれが不安定な固有値を暗示しているポイントをしようと言っています。私はこれらのパラメータ値でフィルタを実行することはできませんので、私のコードがクラッシュします。各ステップでfmincon名誉拘束を行う方法は?
ドキュメントは本当に「AlwaysHonorConstraints」のベクトルのみ(LBとUB)として渡された不等式制約に適用されることを意味するのでしょうか?各ステップで非線形制約が満たされるようにする方法はありますか?
c = @(x) max(abs(eig(reshape(x(8:16), 3, 3)))) - 1;
ceq = @(x) [];
nonlcon = @(x) deal(c(x), ceq(x));
obj = @(x) -unscented_kalman1(x, fulldiv, crsp_allEverything);
fminconOptions = optimset('Display', 'iter-detailed', 'Algorithm', 'sqp', ...
'TolX', errTol, 'UseParallel', 'always', 'AlwaysHonorConstraints', 'bounds');
maxX = fmincon(obj, x0, [], [], [], [], [], [], nonlcon, fminconOptions);
ありがとう:
は、ここに私のコードの関連作品です!
"私のコードの最初の反復では、不安定な固有値を意味する点を試しています"と言うとき、 'x0'を使った' fmincon'の最初の反復を意味しますか?異なる開始値を試しましたか?あなたは 'x0'を何に設定しますか? – user1884905