126 Matlab 在最优化问题中的应用
优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,Matlab 优化工具箱提供了对各种优化问题的一个完整的解决方案。 在数学上,所谓优化问题,就是求解如下形式的最优解:
Min fun (x)
Sub. to [C.E.]
[B.C.]
其中fun (x)称为目标函数,“Sub. to ”为“subject to ”的缩写,由其引导的部分称为约束条件。[C.E.]表示Condition Equations ,即条件方程,可为等式方程,也可为不等式方程。[B.C.]表示Boundary Conditions ,即边界条件,用来约束自变量的求解域,以lb ≤x ≤ub 的形式给出。当[C.E.]为空时,此优化问题称为自由优化或无约束优化问题;当[C.E.]不空时,称为有约束优化或强约束优化问题。
在优化问题中,根据变量、目标函数和约束函数的不同,可以将问题大致分为: ·线性优化 目标函数和约束函数均为线性函数。
·二次优化 目标函数为二次函数,而约束条件为线性方程。线性优化和二次优化
统称为简单优化。
·非线性优化 目标函数为非二次的非线性函数,或约束条件为非线性方程。 ·多目标优化 目标函数并非一个时,称为多目标优化问题。
本章将对以上几类优化问题在Matlab 中的实现作比较详细的讲解。另外还将介绍两个利用优化方法解非线性方程的函数。
通过本章的介绍,用户可以不必掌握艰涩的各种优化算法而轻易地解决一些常用的最优化问题了。
10.1 线性规划问题
线性规划问题即目标函数和约束条件均为线性函数的问题。
其标准形式为:
min C ’x
sub. To Ax = b
x ≥0
其中C, b, 0∈R n ,A ∈R m ⨯n ,均为数值矩阵,x ∈R n 。
若目标函数为:max C ’x ,则转换成:min –C ’x 。
标准形式的线性规划问题简称为LP (Linear Programming )问题。其它形式的线性规划问题经过适当的变换均可以化为此种标准形。线性规划问题虽然简单,但在工农业及其他生产部门中应用十分广泛。
在Matlab 中,线性规划问题由linprog 函数求解。
函数:linprog %求解如下形式的线性规划问题:
x f T x min
such that b x A ≤⋅
beq x Aeq =⋅
ub x lb ≤≤
其中f, x, b, beq, lb, ub 为向量,A, Aeq 为矩阵。
格式:x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)