为什么使用fmincon变得不可行解决方案?万博 尤文图斯(更新)
17日视图(30天)
显示旧的评论
嗨
我有一个与许多优化变量优化问题和约束(~ 561 var)。我试图解决的问题
fmincon
但它给出口标志2,这意味着没有可行的解决方案。
出于这个原因,我想,也许约束(线性和非线性)没有任何可行的解决方案。所以,我试图考虑这些约束方程组,解决它与“fsolve”相同的初始猜测我用于fmincon。幸运的是,
fsolve
导致一个可接受的答案非常接近提供的初始猜测。
然后我更新(这是解决原来的问题
fmincon
),这个新的初始猜测。但仍然退出标志是2(不可行)的。然后我想问题必须为优化变量的边界
乌兰巴托(磅)
。所以,我和他们放松出口标志4。我也写了线性约束作为B矩阵fsolve和fmincon。因此,基于上面的解释,退出旗4是什么?它意味着问题是可行的,我应该接受它的答案?
我能解决的约束(如一个方程系统)对于给定的初始猜测考虑变量的边界
fsolve
为了真正理解如果有可行解在边界内吗?
感谢你的帮助和建议。
答案(2)
布伦丹汉姆
2015年4月24日
fmincon是一个基于梯度的解算器,它是一个离散的优化问题这些都是近似的解算器(梯度和黑森)。你可以考虑提供这些值自己如果你能分析解决问题。
你可以suplpy客观和非线性约束函数的梯度,然后打开GradObj使用optimoptions:
此外可行域的离散化允许适度的侵犯。默认设置为1 e-6,你可以改变通过改变使用optimoptions TolCon选项。
真正缩小你的问题,一个需要更多信息的实际要解决的问题。只是因为有一个0 fsolve在非线性等式约束并不意味着这是一个可行的解决方案给其他约束/界限。我猜这可能是你的问题,点你觉得不满意的范围/等式约束,或者甚至可能返回一个Inf南在你的目标。