如何将复杂模型拟合到复杂数据

时间:2018-10-22 21:13:52

标签: matlab optimization multidimensional-array global local

我的目标是使高斯-埃尔米特多项式适合复杂的测量数据(由绝对值和相位部分组成)。有七个独立的参数(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);

对于lsqnonlin,函数CalcCoeff会计算出差异;对于fminsearch,函数会计算出重叠积分(点积)。 作为测试,我计算了一个简单的高斯模式,并尝试重建所用的参数。但是我的算法在两种情况下都失败了。它运行时没有任何错误消息,但是参数无法重构。因此,我问自己一个问题:是否有太多参数可用于优化,所以算法无法收敛?还是全球性问题? 如果有任何优化专家会给我任何提示,可能会出问题,我将感到非常高兴。 如果我以错误的方式提问,请告诉我。 问候 安德烈

0 个答案:

没有答案