⒈ 优化问题及其数学模型
假设有一个问题,它有几个因素来决定,当这些因素处于某个状态时,可以使问题得到我们最想要的结果。优化问题就是寻求这个状态的过程。例如:
某工厂生产A ,B 两种产品,所用原料均为甲、乙、丙三种;生产一件产品所需原料和
问题:在该厂只有库存原料甲380单位,原料乙300单位,原料丙220单位的情况下如何安排A ,B 两种产品的生产数量可以获得最大的利润?
设生产A 中产品1x 件,生产B 中产品2x 件,z 为所获得的利润,于是有关系式: 21100007000x x z += 我们称它为目标函数。生产的条件我们可以表示为:
220
6430084380
68212
121≤+≤+≤+x x x x x x
我们把上面的不等式称为约束条件。
产品A 的产量1x 和B 的产量2x 是优化问题的变量。在满足约束条件的前提下使目标函数得到最优的值成为最优解。根据以上定义,也可以说优化运算是通过某种计算寻求最优解的过程。
以上这个用等式或不等式来表达我们要解决的问题的过程就是优化问题的建模过程。我们平时遇到的问题常常不是上面的这几个数学表达式就能表达得清清楚楚的,但是建立像上面类似的数学模型却是优化求解的第一步。优化问题常常表现为在多约束条件下求某一函数的极值问题,例如上面的这个例子。
Matlab 有一个优化工具箱,可以帮助我们方便的解决好这类问题。 ⒉ 优化工具箱
Matlab 的优化工具箱有一些对普通非线性函数求解最小化或最大化(求极值)的函数组成,另外还包括一些解决诸如线性规划等标准矩阵问题的函数。所有的优化函数都是用Matlab 语言编写的m 文件,我们可以通过在命令窗口里输入type function_name 来查看这些函数。
优化工具箱的优化功能包括: ⑴ 求无约束非线性最小化; ⑵ 求有约束非线性最小化; ⑶ 二次和线性规划问题;
⑷ 非线性最小二乘法和曲线拟合问题; ⑸ 非线性等式的求解; ⑹ 约束线性最小二乘法; ⑺ 稀疏和结构化大尺度问题。
工具箱中求非线性函数极小值的命令函数如下表所示: