主要内容

线性约束条件

什么是线性约束?

一些优化求解器接受线性约束,这是对解的限制x满足线性等式或不等式。接受线性约束的求解器包括fminconintlinproglinproglsqlinquadprog、多目标求解器等全局优化工具箱解决者。

线性不等式约束

线性不等式约束有这种形式A·x≤b.当一个——- - - - - -n,有变量的约束xn组件。你提供——- - - - - -n矩阵一个分矢量b

通过线性不等式约束一个b参数。

例如,假设有以下线性不等式作为约束条件:

x1+x3.≤4,
2x2- - - - - -x3.≥2,
x1- - - - - -x2+x3.- - - - - -x4≥9。

在这里,= 3n= 4

用下面的矩阵写出这些约束条件一个和向量b

一个 1 0 1 0 0 2 1 0 1 1 1 1 b 4 2 9

注意,“大于”不等式首先要乘以-1,使其变成“小于”不等式形式。在MATLAB®语法:

A = [1 0 1 0;0 -2 1 0;-1 1 -1 1];b =(4; 2、9);

你不需要为线性约束提供梯度;求解器会自动计算它们。线性约束不影响Hessians。

即使你通过了初始点x0作为一个矩阵,求解器通过当前点x作为线性约束的列向量。看到矩阵的参数

有关线性约束的更复杂的例子,请参见建立一个线性程序,基于求解器

中间迭代会违反线性约束。看到迭代会违反约束

线性等式约束

线性等式有这样的形式Aeq·x =说真的代表方程,n分矢量x.你提供——- - - - - -n矩阵Aeq分矢量说真的

传递线性等式约束Aeq说真的参数以相同的方式描述一个b参数在线性不等式约束

相关的话题