Matlab的优化工具箱

作者:

最近做了些东西,用到了 Matlab 的优化工具箱, optimization toolbox。因为以前没用过这东西,今天把这个工具箱的帮助文档基本上翻了一遍。

这个工具箱的确非常之强大,如它所说,所有的优化问题都能解,包括自定义的目标函数,甚至自定义的限制条件。最后解出来是什么样子就不确定了。

以下是 Matlab 推荐的各种优化问题对应的 Solver。

**限制条件** **优化目标**
**线性** **二次(正定)** **自定义函数** **不光滑**
quadprog fminsearch fminunc fminsearch \*
线性 linprog quadprog fmincon fseminf \*
自定义函数 fmincon fmincon fmincon fseminf \*
整数 bintprog

Matlab 的帮助文档里用了很小一个片段说明了,以上所有的规划问题,都只是寻找局部解。不过如果优化函数是凸函数,那么局部最优(最小)解就是全局最优解。而线性、二次函数都是凸的,所以对线性和二次目标函数而言找的都是全局最优解。

Q. E. D.

类似文章:
最近做一些 优化问题 ,找到了 YALMIP 工具包。在其帮助文件里看到如何使用该工具包 求解 sudoku ,整个思路是将问题转化为整数规划问题。这样的思路以前也想到过,但总觉得整数规划问题的求解会更复杂。但是下面的 Matlab 代码,显示它可以非常简洁,思路见程序的注释(程序运行需要安装 YALMIP 工具包):
编程 » Matlab
在写 Matlab 程序时,函数的命名方式让人头疼,很难保证刚写的一个函数名在很久以前被用过,成为隐藏的一颗炸弹。
编程 » Matlab
Matlab 在启动时会自动运行脚本 startup.m。在这个脚本里可以自动修改当前目录,修改显示方式等等。比如
编程 » Matlab
第一步, which函数可用来获取 Matlab 函数的全路径(包含路径和文件名)。
编程 » Matlab
读者来信:
本文结论: 不要过度担心 Matlab 的传值调用的效率问题。
上次大规模使用 Matlab 还是本科的时候,当时还是 5.3 版,现在重新尝试它,已经是 7.8 ( R2009a ),而且 R2010b 版都已经发售。而这些版本引入的一个新玩意儿便是面向对象化编程( object-oriented programming , OOP )。