MATLAB 中的非线性优化

Non linear optimization in MATLAB

对于两个变量的非线性优化问题,比如 x 和 y,如何检查函数是否平滑,是中等规模还是大规模问题。我是否应该使用 'fmincon' 求解器(在 MATLAB 中),因为变量有一个线性约束和界限?我需要全局最优,对于凸函数,局部最优与全局最优相同。但是我不确定如何检查函数的凸性?

我的问题是 最小 f (x, y) 在哪里 x < y 和 x, y > 0

fmincon 求解器,特别是 Boyd & Vandenberghe 的 sqp, is very suitable for solving nonlinear quadratic problems with linear constraints. It is best solver you can choose, if you know that your problem is convex. However, with so little information you gave, it is hard to say if your is convex or not. You can check the convex optimization book(从第 23 页开始),用于查看凸集和函数的属性。

编辑

要判断函数是否convex,您可以尝试使用this文件。我不知道你如何检查 smoothness。您可能会在每本优化书籍中找到很多关于 large-scalemedium-scale 问题的信息。简而言之,这取决于您需要优化的参数数量。绘图完全是另一个问题。如果你专门搜索它,你会发现数百种资源。