MATLAB中的非线性优化

时间:2015-07-16 06:50:19

标签: matlab optimization solver nonlinear-optimization convex

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

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

1 个答案:

答案 0 :(得分:1)

fmincon求解器,特别是sqp,非常适合用线性约束求解非线性二次问题。如果您知道问题是凸的,那么这是您可以选择的最佳解算器。但是,由于您提供的信息很少,很难说您是否凸起。你可以查看Boyd&的convex optimization book。 Vandenberghe(来自第23页)看凸集和函数的属性。

修改

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