我正在尝试解决一个优化问题,其中给定的目标函数是最小化
norm(R - R*)
其中R
是通过求解边值问题(BVP)得到的,而'R *是已知值。
例如:
R = (p1 + p2*p3);
BVP由
提供p1dot = p2 + p3 + x1;
p2dot = x2 + p1*p2;
p3dot = x3 + p1*p2*p3;
其中x1
,x2
和x3
是优化变量。
我试图在MATLAB中使用fmincon
解决这个问题,其中BVP在目标函数中被解算器的每次猜测求解以估计norm(R-R*)
。
编辑1 :我有一个非线性不等式约束,它是pi
i = 1,2,3
的函数。这是选择fmincon
我面临的问题是,在一些猜测中,BVP不收敛,优化停止。我猜这个问题是一些猜测值,以解决BVP不满足。如果我给变量赋予边界,那么它就解决了优化问题。我事先并没有真正意识到变量的界限。
为了克服这个问题,我想检测BVP未解决时的猜测,保存它们并强制优化例程在不能通过回到之前的猜测来解决时不尝试值。我们如何在fmincon
例程中实现这一点?
编辑2:我发现问题在于为BVP solver
提供了初始猜测。对于较小的优化变量值x
,这个猜测是好的,但当x
的幅度增加时,这个猜测不够好。
有没有办法在前一次迭代中更新'BVP'的解决方案,作为优化中下一次迭代的初始猜测。直觉上这应该解决它。如果此方法存在一些循环漏洞,请告诉我。