MATLAB Optimizasyon Toolboox'unda fmincon kullanarak lineer olmayan bir filtrenin parametrelerini tahmin etmeye çalışıyorum, durum denklem matrisinin özdeğerini birden az tutuyor. 'Sqp' algoritmasını kullanan fmincon için kullanılan belgeler, tüm yinelemelerde kısıtlamalara saygılı olduğunu ve kodumun ilk yinelemesinde kararsız özdeğerleri işaret eden bir nokta denediğini söylüyor. Filtreyi bu parametre değerlerinde kullanamıyorum ve kodum çöküyor.Her adımda fmincon onur kısıtlamaları nasıl yapılır?
Dokümantasyon gerçekten 'AlwaysHonorConstraints' ifadesinin yalnızca vektörler (lb ve ub) olarak geçirilen eşitsizlik kısıtlamaları için geçerli olduğu anlamına mı geliyor? Lineer olmayan kısıtlamaların her adımda tatmin edildiğinden emin olmanın bir yolu var mı?
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);
Teşekkür:
İşte benim kod alakalı parçasıdır!
"Kodumun ilk yinelemesinde dengesiz özdeğerleri işaret eden bir nokta deniyor" derken, "x0" kullanarak fmincon'un ilk yinelemesini mi kastediyorsunuz? Farklı başlangıç değerlerini denediniz mi? X0’yi neye ayarlıyorsunuz? – user1884905