как подогнать сложную модель к сложным данным - PullRequest
0 голосов
/ 23 октября 2018

Моя цель - подогнать гауссово-эрмит-полиномы к сложным данным измерений (состоящим из абсолютной и фазовой частей).Существует семь независимых параметров (p) для генерации такого гауссовского режима Эрмита.Я реализую все в Matlab, поэтому вычисление такого режима не проблема.Проблема заключается в примерке.На данный момент я реализую две версии.Первый с fminsearch, второй с lsqnonlin:

fun=@(p) CalcCoeff(c1,...
        p(1)*CalcGaussHermite(...
            CalcCoor([p(2),p(3),alphaZ],[p(4),p(5)],[centerX,centerY],labcoor),...
        [l,m,lambda,p(6),p(7)]));

p=[scale,alphaX,alphaY,z_fX,z_fY,w_0X,w_0Y];

%optimset('Display','iter','PlotFcns',@optimplotfval);
% [fpar,fval,exitflag,output] = fminsearch(fun,p,options);

options = optimoptions('lsqnonlin','Display','iter');
res=lsqnonlin(fun,p,[],[],options);

Функция CalcCoeff вычисляет разницу в случае lsqnonlin, в случае fminsearch вычисляет интеграл перекрытия (точечный продукт),В качестве теста я рассчитал простой гауссовский режим и попытался восстановить используемые параметры.Но мой алгоритм не удался в обоих случаях.Он работает без каких-либо сообщений об ошибках, но параметры не могут быть восстановлены.Поэтому я задаю себе вопрос: слишком много параметров для оптимизации, поэтому алгоритм не может сходиться?Или это даже глобальная проблема?Я был бы очень рад, если бы какой-нибудь специалист по оптимизации дал бы мне подсказку, что может пойти не так.Если я задал вопрос неправильно, просто дайте мне знать.С уважением, Андре

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