Измените Optimoptions на optimset из-за matlab R2011a

#matlab

#matlab

Вопрос:

Я использую optimoptions функцию в MATLAB R2015a. Синтаксис выглядит следующим образом :

 options = optimoptions('fmincon','Display','iter','MaxFunEvals',3000000); 
fx = @(x)modifiedLogLikelihood(x,len,ET,counta,vals,INT);
parameters = fmincon(fx,x0,[],[],[],[],lb,ub,[],options);
  

Я хотел бы запустить тот же код на R2011a, но я получаю следующую ошибку, поскольку optimoptions она была введена после R2011a.

Неопределенная функция или метод ‘optimoptions’ для входных аргументов типа ‘char’.

Я ссылался на этот документ, который предложил мне использовать optimset.

Я попытался воспользоваться их советом и написал:

 options = optimset('fmincon','Display','iter',3000000); 
fx = @(x)modifiedLogLikelihood(x,len,ET,counta,vals,INT);
parameters = fmincon(fx,x0,[],[],[],[],lb,ub,[],options);
  

Но это приводит к следующей ошибке:

Ошибка при использовании ==> optimset в 198

Нераспознанное имя параметра ‘fmincon’. Пожалуйста, смотрите справочную страницу optimset в документации для получения списка допустимых параметров опции. Ссылка на справочную страницу.

Как я могу использовать optimset , чтобы получить эквивалентный набор параметров, который я смог получить с optimoptions помощью . Я был бы очень благодарен за вашу помощь.

Ответ №1:

Полезно, если вы читаете страницу документации для функции при попытке ее использования.

С optimset помощью вы хотите получить параметры по умолчанию, используя только 'fmincon' строку в качестве входных данных, а затем использовать optimset снова, чтобы изменить только те параметры, которые вы хотели бы изменить по сравнению с их значением по умолчанию.

 options = optimset('fmincon');
options = optimset(options, 'Display', 'iter', 'MaxFunEvals', 3000000);