我正在尝试使用非线性最小二乘优化
lsqcurvefit
.所涉及数据的维度如下:
x0
→(nxn)
xdata
→[mxn]
ydata.
→[MX1]
xdata F (x)
→[MX1]
的初始值
x0
通过调用
兰德(n)
然后乘以一个比例因子,这样输出的均值
F
是在平均值的级别之内
ydata.
.但是,无论是在还是没有这种缩放因子,我都会收到消息:
“初始点是局部最小值。
由于初始点的梯度尺寸小于最优公差值,优化完成。”
我尝试过传入options对象,这样我就可以将最佳性容差设置为1e-11或更小,但无论如何我都得到了相同的消息。我如何修复这个问题,以便执行实际的优化计算?提前谢谢!
更新:我尝试过切换到使用
fmincon
通过
解决(问题…)
用目标函数集模拟非线性最小二乘极小化。它正在进行超过10,000次的功能评估,但我还没有实现一个解决方案。
更新:这里是一个代码片段,显示了正交性的规定约束,选项对象和包含目标函数的段…
prob = OptimProblem;
一个= optimvar (“一个”, (n, n));
b = Optimvar(“B”, (n, n));
prob.constraints.orthoa =(a。'* a)==眼睛(n);
选择= optimoptions ('粉丝',...
“UseParallel”,1,“MaxFunctionEvaluations”,20000,'展示',“通路”,...
'finitedifferencestepsize'1的军医);
init.a = inton(n);
init。B =诊断接头(的(n - 1))
然后在后面的代码中,我定义了D和P它们分别是num × n和num × 1矩阵。
Tic,
j = optimexpr(1);
为我= 1:num
J = + 0.5 * (D(我:)* (1 e33) *(。”* B *) * D(我:)- p (i)) ^ 2;
结束
TOC.
Tic,
概率。目标= J;
[x, fval exitflag,输出]=解决(概率,初始化,“选项”、选择);
TOC.
的比例因子
1E33
我在循环中包含定义的循环
J
似乎将最初括号内的第一项的大小与第二个术语相同的数量级,
P(我)
.我用直方图检查了这个,值应该关闭。有什么建议么?