非线性规划
概念
在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中至少有一个非线性函数,这类问题称之为非线性规划问题。可概括为一般形式
其中 \(x=\left[\begin{array}{lll}x_{1} & \cdots & x_{n}\end{array}\right]^{T}\) 称为模型 \((\mathrm{NP})\) 的决策变量, \(f\) 称为目标函数, \(g_{i}(i=1, \cdots, p)\)和 \(h_{j}(j=1, \cdots, q)\) 称为约束函数。另外, \(g_{i}(x)=0 \quad(i=1, \cdots, p)\) 称为等式约束, \(h \cdot(x) \leq 0 \quad(j=1, \cdots, a)\) 称为不等式的约束。
线性规划的最优解存在,其最优解只能在其可行域的边界上达到。
非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。
Matlab解法
Matlab 中非线性规划的数字模型下形式
其中 \(f(x)\) 是标量函数, \(A, B, A e q, B e q\) 是相应维数的矩阵和向量, \(C(x), C e q(x)\) 是非 线性向量函数。
Matlab 中的命令是
\(X= FMINCON (FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON, OPTIONS)\) 它的返回值是向量 \(x\), 其中 FUN 是用 \(\mathrm{M}\) 文件定义的函数 $f(x) $$;
$ \mathrm{X} 0$ 是 \(x\) 的初始值;
\(\mathrm{A}, \mathrm{B}, \mathrm{Aeq}, \mathrm{Beq}\) 定义了线性约束 \(A^{*} X \leq B, A e q^{*} X=B e q\),如果没有线性约束, 则$\mathrm{A}=[], \mathrm{B}=[], \mathrm{Aeq}=[], \mathrm{Beq}=[] $$; \mathrm{LB}$ 和 \(\mathrm{UB}\) 是变量 \(x\) 的下界和上界,如果上界和下界没有约束, 则 \(\mathrm{LB}=[], \mathrm{UB}=[]\), 如果 \(x\) 无下界, 则 \(\mathrm{LB}\) 的各分量都为 \(-\mathrm{inf}\), 如果 \(x\) 无上界, 则 UB 的各分量都为 inf;
NONLCON 是用 \(M\) 文件定义的非线性向量函数 \(C(x), \operatorname{Ceq}(x) ; 0 \mathrm{PTIONS}\) 定义了优化参数, 可以使用 Matlab 缺省的参数设置。
例子
分析
由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整 个可行域上的全局最优解。
非线性规划却不然,有时求出的某个解虽是一部分可行域上 的极值点,但却并不一定是整个可行域上的全局最优解
对于非线性规划模型(NP), 可以采用迭代方法求它的最优解。迭代方法的基本思 想是:从一个选定的初始点 \(x^{0} \in R^{n}\) 出发, 按照某一特定的迭代规则产生一个点列 \(\left\{x^{k}\right\}\), 使得当 \(\left\{x^{k}\right\}\) 是有穷点列时, 其最后一个点是(NP)的最优解;当 \(\left\{x^{k}\right\}\) 是无穷点 列时,它有极限点,并且其极限点是(NP)的最优解。
设 \(x^{k} \in R^{n}\) 是某迭代方法的第 \(k\) 轮迭代点, \(x^{k+1} \in R^{n}\) 是第 \(k+1\) 轮迭代点, 记
这里 \(t_{k} \in R^{1}, p^{k} \in R^{n},\left\|p^{k}\right\|=1\), 并且 \(p^{k}\) 的方向是从点 \(x^{k}\) 向着点 \(x^{k+1}\) 的方向。式 (1) 就是求解非线性规划模型(NP)的基本迭代格式。

浙公网安备 33010602011771号