использование опций в lsqcurvefit

Я установил свои параметры на

options=optimset('LevenbergMarquardt', 'on')

а затем используйте lsqcurvefit, как показано ниже,

[x,resnorm,residual,exitflag,output] = lsqcurvefit(@myfun, [0.01 0.3], xdata, ydata, [-inf -inf], [inf inf], options)

но проблема в том, что я не понимаю, почему я получу вывод:

выход =

firstorderopt: 3.4390e-07
   iterations: 4
    funcCount: 15
 cgiterations: 0
    algorithm: 'large-scale: trust-region reflective Newton'
      message: [1x425 char]

Означает ли это, что Matlab не использовал алгоритм Левенберга-Марквардта?

Но я установил свои параметры на алгоритм Левенберга-Марквардта !!!

Буду признателен за любую помощь.


person user1331843    schedule 20.02.2013    source источник


Ответы (2)


Иногда конкретный алгоритм не подходит для конкретной конфигурации задачи оптимизации. В этих случаях Matlab "возвращается" к своему алгоритму оптимизации по умолчанию.
Возможно, для вашей конкретной проблемы/конфигурации Matlab не может использовать алгоритм Левенберга-Марквардта.

Внимательно прочитайте документы, чтобы убедиться, что это так.

person Shai    schedule 20.02.2013

Я не могу сказать наверняка, но константы ([-inf -inf], [inf inf]) могут быть вашей проблемой. В документации по lsqcurvefit строго сказано, что LMA нельзя использовать для задач с ограничениями. Если ограничения включены, он вернется к доверительной области.

Да, ваши ограничения математически эквивалентны «отсутствию ограничений», но я понятия не имею, как сама функция MATLAB будет их интерпретировать. Я попытался воссоздать проблему со своей стороны, но optimset('LevenbergMarquardt', 'on') устарел и выдает ошибку (подразумевая, что у вас относительно старая версия). Даже при использовании нового синтаксиса (optimset('Algorithm', 'levenberg-marquardt')) он ведет себя правильно с моей стороны (используя 2011b). Чтобы не было ограничений, правильным подходом является использование пустых матриц (т.е. []).

Да, вопрос месячной давности, но кому-то еще может быть полезен ответ.

person antijon    schedule 25.03.2013