主要内容

二次规划优化函数

二次规划

描述

具有线性约束的二次目标函数求解器。

Quadprog为指定的问题找到一个最小值

最小值 X 1 2 X T. H X + F T. X 这样 { 一种 X ≤. B. 一种 E. 问: X = B. E. 问: L. B. ≤. X ≤. B.

H一种,AEQ.矩阵,FB.说真的乌兰巴托,X是向量。

你可以通过F,乌兰巴托作为载体或矩阵;看矩阵的参数

二次规划优化函数仅适用于基于求解器的方法。有关两种优化方法的讨论,请参阅首先选择基于问题或基于求解器的方法

X=quadprog(HF返回矢量X那就最小化了1/2 * x ' * H * x + f ' * x.输入H对于有有限极小值的问题必须是正定的。如果H是正定的,那么解呢x=H\(-f)

例子

X=quadprog(HF一种B.最小化1/2 * x ' * H * x + f ' * x受限制斧头≤.B..输入一种是一个双精度矩阵,并且B.是一个双精度向量。

例子

X=quadprog(HF一种B.AEQ.说真的解决了上述问题的附加限制Aeq * x =说真的AEQ.是一个双精度矩阵,并且说真的是一个双精度向量。如果不存在不等式,集合一个= []B = []

例子

X=quadprog(HF一种B.AEQ.说真的乌兰巴托解决了上述问题的附加限制≤.X≤.乌兰巴托.输入乌兰巴托是双打的载体,限制每个X组件。如果不存在等式,则设置AEQ = []说真的= []

如果问题的指定输入边界不一致,则输出Xx0和产出fval[]

二次规划优化函数重置的组件x0违反了界限≤.X≤.乌兰巴托到边界所定义的方框内部。二次规划优化函数不改变符合边界的分量。

X=quadprog(HF一种B.AEQ.说真的乌兰巴托x0从向量开始解决前面的问题x0.如果没有界限,请设置lb = []UB = [].一些二次规划优化函数算法忽略x0;看x0

x0“激活集”算法。

例子

X=quadprog(HF一种B.AEQ.说真的乌兰巴托x0选择权使用中指定的优化选项解决上述问题选择权.采用优化选择创建选择权. 如果不想给出初始点,请设置x0 = []

例子

X=quadprog(问题返回的最小值问题中所描述的结构问题. 创建问题结构使用点符号或塑造函数。另外,创建一个问题从一个OptimizationProblem通过使用问题2结构

例子

[Xfval] = QuadProg(___,对于任何输入变量,也返回fval,目标函数的价值X

fval = 0.5 * x'* h * x + f'* x

例子

[XfvalExitFlag.输出] = QuadProg(___同样的回报ExitFlag.,一个描述退出条件的整数二次规划优化函数,输出,该结构包含有关优化的信息。

例子

[XfvalExitFlag.输出λ] = QuadProg(___同样的回报λ,一种结构,其场包含解的拉格朗日乘子X

例子

[wsoutfvalExitFlag.输出λ] = QuadProg(HF一种B.AEQ.说真的乌兰巴托ws开始二次规划优化函数从温暖的启动对象中的数据ws,使用选项ws. 返回的参数wsout包含解决方案点wsout。X.通过使用wsout作为后续求解器调用中的初始热启动对象,二次规划优化函数可以更快地工作。

例子

全部折叠

找到最少

F X = 1 2 X 1 2 + X 2 2 - X 1 X 2 - 2 X 1 - 6. X 2

受约束

X 1 + X 2 ≤. 2 - X 1 + 2 X 2 ≤. 2 2 X 1 + X 2 ≤. 3.

二次规划优化函数语法,这个问题是为了最小化

F X = 1 2 X T. H X + F T. X

在哪里

H = [ 1 - 1 - 1 2 ] F = [ - 2 - 6. ]

受线性约束。

要解决这个问题,首先输入系数矩阵。

H=[1-1-1 2]; f=[-2-6]; A=[1-1 2; 2 1]; b=[2;2.3];

调用二次规划优化函数

[x, fval exitflag、输出λ)=......quadprog (H f A、b);
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。

检查最终点,函数值和退出标志。

x、 fval,exitflag
x =2×10.6667 - 1.3333
fval = -8.2222
exitflag = 1

退场旗1表示结果是局部最小值。因为H是一个正定矩阵,这个问题是凸的,所以最小值是全局最小值。

确认那个H通过检查其特征值是积极的。

eig(h)
ans =.2×10.3820 - 2.6180

找到最少

F X = 1 2 X 1 2 + X 2 2 - X 1 X 2 - 2 X 1 - 6. X 2

受约束

X 1 + X 2 = 0.

二次规划优化函数语法,这个问题是为了最小化

F X = 1 2 X T. H X + F T. X

在哪里

H = [ 1 - 1 - 1 2 ] F = [ - 2 - 6. ]

受线性约束。

要解决这个问题,首先输入系数矩阵。

h = [1 -1;-1 2];f = [-2;-6];AEQ = [1 1];beq = 0;

调用二次规划优化函数,进入[]的输入一种B.

[x, fval exitflag、输出λ)=......Quadprog(H,F,[],[],AEQ,BEQ);
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。

检查最终点,函数值和退出标志。

x、 fval,exitflag
x =2×1-0.8000 - 0.8000
fval = -1.6000
exitflag = 1

退场旗1表示结果是局部最小值。因为H是一个正定矩阵,这个问题是凸的,所以最小值是全局最小值。

确认那个H通过检查其特征值是积极的。

eig(h)
ans =.2×10.3820 - 2.6180

找到X这最小化了二次表达

1 2 X T. H X + F T. X

在哪里

H = [ 1 - 1 1 - 1 2 - 2 1 - 2 4. ] F = [ 2 - 3. 1 ]

受约束

0. ≤. X ≤. 1 σ. X = 1 / 2

要解决此问题,请首先输入系数。

H = [1,-1,1 -1,2,-2 1,-2,4];f =[2、3、1];磅= 0 (3,1);乌兰巴托= 1(大小(磅));Aeq = 1(1、3);说真的= 1/2;

调用二次规划优化函数,进入[]的输入一种B.

X = QuadProg(H,F,[],[],AEQ,BEQ,LB,UB))
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
x =3×10.0000 0.5000 0.0000

设置监视进度的选项二次规划优化函数

选择= optimoptions ('quadprog'“显示”'iter');

用二次目标和线性不等式约束定义问题。

H=[1-1-1 2]; f=[-2-6]; A=[1-1 2; 2 1]; b=[2;2.3];

帮助编写二次规划优化函数函数调用时,将不必要的输入设置为[]

Aeq = [];说真的= [];磅= [];乌兰巴托= [];x0 = [];

调用二次规划优化函数解决问题。

X = QuadProg(H,F,A,B,AEQ,BEQ,LB,UB,X0,选项)
国际热核聚变实验堆原发感染-双感染互补性0-8.884885e+00 3.214286e+00 1.071429e-01 1.000000e+00 1-8.331868e+00 1.321041e-01 4.403472e-03 1.910489e-01 2-8.212804e+00 1.676295e-03 5.587652e-05 1.009601e-02 3-8.381476e-07 2.793826e-08 1.8094E-05 2-22.22737E-22发现最小值为0.5257E满足约束条件。优化已完成,因为目标函数在可行方向上不递减,在最优性公差值范围内,且约束满足在约束公差值范围内。
x =2×10.6667 - 1.3333

创建一个问题结构使用基于问题的优化工作流程.创建相当于的优化问题具有线性约束的二次程序

x = optimvar ('X',2); 目标=x(1)^2/2+x(2)^2-x(1)*x(2)-2*x(1)-6*x(2);prob=优化问题('客观的',objec);prob.Constraints.cons1=和(x)<=2;prob.Constraints.cons2=-x(1)+2*x(2)<=2;prob.Constraints.cons3=2*x(1)+x(2)<=3;

转换问题到一个问题结构体。

问题= prob2struct(概率);

使用方法解决问题二次规划优化函数

[x, fval] = quadprog(问题)
警告:你的Hessian不是对称的。重置H = (H + H) / 2。
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
x =2×10.6667 - 1.3333
fval = -8.2222

解一个二次规划,并返回解和目标函数值。

H = [1,-1,1 -1,2,-2 1,-2,4];f = [7, -12; -15);一个= (1 1 1);b = 3;[x,fval] = Quadprog(H,F,A,B)
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。
x =3×1-3.5714 2.9286 3.6429
fval = -47.1786

检查返回的目标函数值是否与从二次规划优化函数目标函数定义。

fval2 = 1/2 * x'* h * x + f'* x
fval2 = -47.1786

来看看优化过程二次规划优化函数,设置选项以显示迭代显示并返回4个输出。问题是最小化

1 2 X T. H X + F T. X

从属于

0. ≤. X ≤. 1

在哪里

H = [ 2 1 - 1 1 3. 1 2 - 1 1 2 5. ] F = [ 4. - 7. 12 ]

输入问题系数。

H = [2 1 -1 1 3 1/2 -1 /2 5];f =(4、7、12);磅= 0 (3,1);乌兰巴托= 1 (3,1);

设置选项以显示求解器的迭代进度。

选择= optimoptions ('quadprog'“显示”'iter');

调用二次规划优化函数有四个输出。

[x fval,退出,输出] = quadprog(h,f,[],[],[],[],LB,UB,[],选项)
ITER FVAL PRIMAL INFEAS双INFEAS互补0 2.691769E + 01 1.582123E + 00 1.712849C + 01 1.680447E + 00 1 -3.889430E + 00 0.0000000E + 00 8.5.971731C-01 2 -5.451769E + 00 0.0000000+00 4.282123E-06 2.710131E-02 3 -5.499997E + 00 0.0000000E + 00 1.221903E-10 6.939689E-07 4 -5.500000E + 00 0.000000E + 00 5.842173E-14 3.469847E -10 -10 -10最低限度约束。优化完成,因为目标函数在可行的方向上不降低,到在最优性公差的值内,并且对约束公差的值满足约束。
x =3×10.0000 1.0000 0.0000
fval=-5.5000
exitflag = 1
输出=结构与字段:消息:'...'算法:'Interion-point-convex'firstorderopt:1.5921E-09 Constrviolation:0迭代:4 linearsolver:'密集'cgiterations:[]

解决二次编程问题并返回拉格朗日乘法器。

H = [1,-1,1 -1,2,-2 1,-2,4];f = [7, -12; -15);一个= (1 1 1);b = 3;磅= 0 (3,1);[x, fval exitflag、输出λ)= quadprog (H f A、b[],[],磅);
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。

检查拉格朗日乘子结构λ

disp(λ)
eqlin: [0x1 double] lower: [3x1 double] upper: [3x1 double]

线性不等式约束具有相关的拉格朗日乘法器12

显示与下界相关的乘数。

显示(λ下)
5.0000 0.0000 0.0000.

只有第一个组成部分lambda.lower.有一个非零乘数。这通常意味着只有第一个组成部分X处于零的下限。显示组件通过显示X

DISP(x)
0.0000 1.5000 1.5000

速度后续二次规划优化函数调用,创建一个温暖的启动对象。

选择= optimoptions ('quadprog'“算法”“激活集”);X0 = [1 2 3];ws = optimwarmstart (x0,选项);

使用ws

H = [1,-1,1 -1,2,-2 1,-2,4];f = [7, -12; -15);一个= (1 1 1);b = 3;磅= 0 (3,1);抽搐(ws、fval exitflag、输出λ)= quadprog (H f A、b[],[],磅,[],ws);toc
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。运行时间为0.021717秒。

改变目标函数,再次解决问题。

f = (-10; -15; -20);抽搐(ws、fval exitflag、输出λ)= quadprog (H f A、b[],[],磅,[],ws);toc
找到满足约束条件的最小值。优化完成是因为目标函数在可行方向上不减小到最优性公差的值内,约束条件满足到约束公差的值内。经过时间为0.018485秒。

输入参数

全部折叠

二次客观术语,指定为对称的真实矩阵。H表示表达式的二次1/2 * x ' * H * x + f ' * x.如果H不对称的,二次规划优化函数发出警告并使用对称版本(H + H ') / 2相反

如果二次矩阵H稀疏,然后默认情况下,“interior-point-convex”算法使用的算法略有不同,当H是密集。一般来说,稀疏算法在大的、稀疏的问题上更快,而密集算法在密集或小的问题上更快。有关更多信息,请参见linearsolver选项描述和内部点凸Quadprog算法

例子:(2, 1, 1, 3)

数据类型:双重的

线性目标项,指定为实向量。F表示表达式中的线性项1/2 * x ' * H * x + f ' * x

例子:[1; 3; 2]

数据类型:双重的

线性不等式约束,指定为实矩阵。一种是一个m-借-N矩阵,在哪里m是不平等的数量,和N是变量的数量(元素的数量x0). 对于大问题,请通过一种作为稀疏矩阵。

一种编码m线性不平等

A*x<=b

在哪里X列向量是N变量X(:),B.是一个具有m元素。

例如,要指定

X1+ 2X2≤10
3.X1+ 4X2≤20
5.X1+ 6X2≤30日

输入以下约束条件:

= [1, 2, 3, 4, 5, 6);b = (10、20、30);

例子:要指定x分量的和为1或更小,请使用a = =(1,n)B = 1

数据类型:双重的

线性不平等约束,指定为真正的矢量。B.是一个m元素向量相关的一种矩阵。如果你通过了B.作为行向量,求解器内部转换B.到列向量B(:).对于大问题,不予考虑B.作为一个稀疏向量。

B.编码m线性不平等

A*x<=b

在哪里X列向量是N变量X(:),一种矩阵的大小是多少m-借-N

例如,考虑一下这些不平等:

X1+ 2X2≤10
3.X1+ 4X2≤20
5.X1+ 6X2≤30。

输入以下约束指定不等式。

= [1, 2, 3, 4, 5, 6);b = (10、20、30);

例子:要指定x分量的和为1或更小,请使用a = =(1,n)B = 1

数据类型:双重的

线性等式约束,指定为实矩阵。AEQ.是一个-借-N矩阵,在哪里是相等数,并且N是变量的数量(元素的数量x0). 对于大问题,请通过AEQ.作为稀疏矩阵。

AEQ.编码线性等式

Aeq * x =说真的

在哪里X列向量是N变量X(:),说真的是一个具有元素。

例如,要指定

X1+ 2X2+ 3X3.= 10.
2X1+ 4X2+X3.= 20,

输入以下约束条件:

AEQ = [1,2,3; 2,4,1];Beq = [10; 20];

例子:指定x组件总和为1,使用Aeq = 1 (1, N)Beq = 1

数据类型:双重的

线性平等约束,指定为真正的矢量。说真的是一个元素向量相关的AEQ.矩阵。如果你通过了说真的作为行向量,求解器内部转换说真的到列向量贝基(:).对于大问题,不予考虑说真的作为一个稀疏向量。

说真的编码线性等式

Aeq * x =说真的

在哪里X列向量是N变量X(:),AEQ.矩阵的大小是多少-借-N

例如,考虑以下平等:

X1+ 2X2+ 3X3.= 10.
2X1+ 4X2+X3.= 20.

通过输入以下约束来指定相等项。

AEQ = [1,2,3; 2,4,1];Beq = [10; 20];

例子:指定x组件总和为1,使用Aeq = 1 (1, N)Beq = 1

数据类型:双重的

下限,指定为真实的矢量或真实数组。如果元素的数量x0等于中的元素数,然后指定

x(我)> =磅(我)对全部一世

如果努美尔(磅)<努美尔(x0),然后指定

x(我)> =磅(我)1 <= i <= numel(lb)

如果有更少的元素比在x0,解算器发出警告。

例子:要指定所有x组件是正的,请使用lb = zeros(size(x0))

数据类型:双重的

上界,指定为实向量或实数组。如果元素的数量x0等于中的元素数乌兰巴托,然后乌兰巴托指定

x(i)<= UB(i)对全部一世

如果numel(Ub),然后乌兰巴托指定

x(i)<= UB(i)1<=i<=numel(ub)

如果有更少的元素乌兰巴托比在x0,解算器发出警告。

例子:要指定所有x分量都小于1,使用UB =α(大小(x0))

数据类型:双重的

初始点,指定为实向量。的长度x0的行数或列数H

x0适用于'信任区域反光'问题只有绑定约束时算法。x0也适用于“激活集”算法。

x0“激活集”算法。

如果您未指定x0二次规划优化函数设置所有组件x0到由边界定义的框内部的一个点。二次规划优化函数忽略了x0对于“interior-point-convex”算法和算法'信任区域反光'具有等式约束的算法。

例子:[1;2.1]

数据类型:双重的

的输出,指定为优化选项优化选择或一个结构如optimset返回。

某些选择缺席优化选择显示。这些选项在下表中以斜体显示。有关详细信息,请参阅视图选项

所有算法

算法

选择算法:

  • “interior-point-convex”(默认)

  • '信任区域反光'

  • “激活集”

“interior-point-convex”算法只处理凸问题。这'信任区域反光'算法处理仅限界限或仅线性平等约束的问题,但不是两者。这“激活集”算法处理不确定的问题,假设的投影H在零空间上AEQ.是半正定。有关详细信息,请参阅选择算法

诊断

显示关于要最小化或解决的函数的诊断信息。的选择是'在'“关闭”(默认)。

显示

显示水平(见迭代显示):

  • “关闭”'没有任何'显示没有输出。

  • “最后一次”只显示最终输出(默认)。

“interior-point-convex”“激活集”算法允许附加值:

  • 'iter'指定迭代显示。

  • 'iter-comment'指定带有详细退出消息的迭代显示。

  • 最后详细的仅显示具有详细退出消息的最终输出。

最大

允许的最大迭代次数;一个正整数。

  • 对于一个'信任区域反光'等式约束问题,默认值为2 *(Numberofvariables - NumberoFequalities)

  • “激活集”有一个默认的10 *(NumberOfVariables + Numperofackstraints)

  • 对于所有其他算法和问题,默认值为200.

optimset,选项名称为麦克斯特. 看见当前和旧选项名称

OptimalityTolerance

一阶最优性的终止耐受性;一个积极的标量。

  • 对于一个'信任区域反光'等式约束问题,默认值为1 e-6

  • 对于一个'信任区域反光'有界约束的问题,默认值为100 * EPS.,大约2.2204e-14

  • “interior-point-convex”“激活集”算法,默认值是1 e-8

公差和停止标准

optimset,选项名称为TolFun. 看见当前和旧选项名称

StepTolerance.

终止上公差X;一个积极的标量。

  • '信任区域反光',默认值是100 * EPS.,大约2.2204e-14

  • “interior-point-convex”,默认值是1E-12

  • “激活集”,默认值是1 e-8

optimset,选项名称为TolX. 看见当前和旧选项名称

'信任区域反光'算法只

FunctionTolerance

函数值的终止容差;一个积极的标量。默认值取决于问题类型:绑定约束问题使用100 * EPS.,以及线性等式约束问题1 e-6. 看见公差和停止标准

optimset,选项名称为TolFun. 看见当前和旧选项名称

黑森州Multiplyfcn.

Hessian乘法函数,指定为函数句柄。对于大规模结构化问题,此函数计算Hessian矩阵乘积H*Y没有真正形成H.函数有形式

w = hmfun(hinfo,y)

在哪里Hinfo(和可能的一些其他参数)包含用于计算的矩阵H*Y

稠密的结构化Hessian的二次极小化下面是使用此选项的示例。

optimset,选项名称为赫斯穆特. 看见当前和旧选项名称

MaxPCGIter

PCG(预条件共轭梯度)迭代的最大次数;一个积极的标量。默认值是Max(1,楼层(Numberofvariables / 2))对于有界约束问题。对于等式约束问题,二次规划优化函数忽略了MaxPCGIter和使用最大以限制PCG迭代次数。有关更多信息,请参阅预条件共轭梯度法

PrecondBandWidth

PCG预处理器的上带宽;一个非负整数。默认情况下,二次规划优化函数使用对角线预处理(较高带宽0.)。对于一些问题,增加带宽减少了PCG迭代的数量。环境PrecondBandWidth使用直接分解(Cholesky)而不是共轭梯度(CG)。直接分解比CG计算更昂贵,但为解决方案产生更好的质量步骤。

SubproblemAlgorithm

确定如何计算迭代步骤。默认值,'cg',比“分解”. 看见trust-region-reflective quadprog算法

托尔普克

PCG迭代的终止公差一个积极的标量。默认值是0.1

TypicalX

典型的X值。元素的数量TypicalX等于元素的数量x0,起点。默认值是(Numberofvarialbles,1)二次规划优化函数使用TypicalX内部用于缩放。TypicalX只有当X具有无限的组件,并且TypicalX值为无界组件超过1

“interior-point-convex”算法只

约束特许

容忍违反约束;正标量。默认值是1 e-8

optimset,选项名称为托尔康. 看见当前和旧选项名称

linearsolver

算法中内部线性解算器的类型:

  • '汽车'(默认)-使用“稀疏”如果是H矩阵是稀疏的'稠密'否则。

  • “稀疏”- 使用稀疏线性代数。看稀疏矩阵

  • '稠密'-使用密集线性代数。

“激活集”算法只

约束特许

对约束违规的宽容;一个积极的标量。默认值是1 e-8

optimset,选项名称为托尔康. 看见当前和旧选项名称

ObjectiveLimit

宽度(停止标准)是标量。如果目标函数值下面ObjectiveLimit如果当前点是可行的,迭代就会停止,因为问题可能是无界的。默认值是-1e20

问题结构,指定为具有以下字段的结构:

H

对称矩阵1/2 * x ' * H * x

F

线性向量f ' * x

Aineq

线性不等式约束中的矩阵Aineq * X.≤.bineq

bineq

线性不平等约束的矢量Aineq * X.≤.bineq

AEQ.

线性等式约束下的矩阵Aeq * x =说真的

说真的

线性等式约束下的向量Aeq * x =说真的
下限矢量
乌兰巴托 上界向量

x0

初始点X

求解器

'quadprog'

选择权

使用创建的选项优化选择optimset

必填字段是HF求解器,选择权.当解决,二次规划优化函数忽略中的任何字段问题除了列出的那些。

你不能用热开始问题论点。

数据类型:塑造

热启动对象,指定为使用的对象Optimwarmstart..暖启动对象包含起始点和选项,以及代码生成中用于内存大小的可选数据。看Warm Start最佳实践

例子:ws = optimwarmstart (x0,选项)

输出参数

全部折叠

解,返回实向量。X是最小化的向量吗1/2 * x ' * H * x + f ' * x服从所有的边界和线性约束。X对于非凸问题,可以是局部最小值。对凸的问题,X是全局最小值。有关更多信息,请参阅局部优化与全局优化

解决方案热启动对象,返回为quadprogwarmstart.对象。解决点是wsout。X

您可以使用wsout作为输入温暖的启动对象在随后的二次规划优化函数呼叫

解决方案的客观函数值,作为实际标量返回。fval是值的价值1/2 * x ' * H * x + f ' * x在解决方案X

原因二次规划优化函数已停止,作为此表中描述的整数返回。

所有算法

1

功能融合到解决方案X

0.

超出迭代次数选项。麦克斯特ations

-2

问题是不可行的。或者,为“interior-point-convex”,阶梯尺寸小于选项。StepTolerance.,但不满足约束。

3

问题是无限的。

“interior-point-convex”算法

2

步长小于选项。StepTolerance.,约束条件得到满足。

-6

检测到非凸问题。

8

无法计算步长方向。

'信任区域反光'算法

4.

局部最小值;最小值并不是唯一的。

3.

目标函数值的变化小于options.FunctionTolerance.

-4

目前的搜索方向不是下降方向。不可能取得进一步进展。

“激活集”算法

-6

非凸问题发现;的投影H在零空间上AEQ.不是半正定的。

偶尔,“激活集”算法停止退出标志0.事实上,这个问题是无界的。设置更高的迭代限制也会导致退出标志0.

关于优化过程的信息,作为带有以下字段的结构返回:

迭代

采取的迭代人数

算法

优化算法

cgiterations

PCG迭代总数('信任区域反光'仅限算法)

CONSTRVIOMATION.

最大约束函数

第一顺序选择

一阶最优性的衡量

线人

内部线性求解器的类型,'稠密'“稀疏”“interior-point-convex”仅限算法)

信息

退出消息

解决方案中的拉格朗日乘数,作为具有这些字段的结构返回:

较低的

下界

上界乌兰巴托

线性不等式

线性不平等

eqlin

线性平等

有关详细信息,请参阅拉格朗日乘子的结构

算法

全部折叠

“interior-point-convex”

“interior-point-convex”算法试图遵循严格在约束之内的路径。它使用一个预解决模块来消除冗余,并通过解决简单的组件来简化问题。

该算法对稀疏Hessian矩阵有不同的实现方式H并且对于密集的基质。通常,稀疏的实施是大,稀疏问题的速度更快,密集的实现更快,密集或小问题更快。有关更多信息,请参阅内部点凸Quadprog算法

'信任区域反光'

'信任区域反光'算法是基于内部反射牛顿方法的子空间信任区域方法[1].每次迭代都涉及到使用预条件共轭梯度(PCG)方法求解一个大线性系统的近似解。有关更多信息,请参阅trust-region-reflective quadprog算法

“激活集”

“激活集”算法是一种投影方法,类似于所描述的方法[2].该算法不是大规模的;看大规模与中型算法.有关更多信息,请参阅主动集Quadprog算法

温暖的开始

温暖的启动对象维护来自先前解决的问题的活动约束列表。求解器通过尽可能多地运行最大的激活约束信息以解决当前问题。如果先前的问题与当前的问题太不同,则不会重复使用活动集信息。在这种情况下,求解器有效地执行冷启动以重建活动约束列表。

替代功能

应用程序

优化活动编辑器任务为二次规划优化函数

参考文献

[1]科尔曼,T. F.和Y. Li。使二次函数在某些变量有界的情况下最小的反射牛顿法SIAM优化学报.第6卷第4期,1996年,第1040-1058页。

吉尔,P. E., W.默里和M. H.赖特。实际的优化。伦敦:学术出版社,1981。

[3] Gould,N.和P. L. Toint。“预处理二次编程。”数学规划。B,Vol系列。100,2004,PP。95-132。

扩展功能

之前介绍过的R2006a