fgoalattain
解决多目标目标实现问题
语法
描述
fgoalattain
解决了目标实现问题,一个多目标优化问题的最小化公式。
fgoalattain
查找指定的问题的最小值
重量
,目标
,b,说真的是向量,一个而且Aeq为矩阵,且F(x),c(x),量表信(x),是返回向量的函数。F(x),c(x),量表信(x)可以是非线性函数。
x,磅,乌兰巴托可以作为向量或矩阵传递;看到矩阵的参数.
[
另外返回解决方案处的实现因子x
,fval
,attainfactor
,exitflag
,输出
= fgoalattain(___)x
,一个值exitflag
的退出条件fgoalattain
,和结构输出
有关优化过程的信息。
例子
基本目标实现问题
考虑双目标函数
这个函数显然是最小化的 在 ,取值2,使之最小 在 ,得到值5。
设定目标[3,6]和权重[1,1],从。开始解决目标达成问题x0
= 1。
Fun = @(x)[2+(x-3)^2;5+x^2/4];目标= [3,6];重量= [1,1];X0 = 1;X = fgoalattain(乐趣,x0,目标,重量)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
X = 2.000
找到…的价值 在解上。
有趣的(x)
ans =2×13.0000 - 6.0000
fgoalattain
准确地实现目标。
线性约束下的目标实现
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标为[3,6],权值为[1,1],线性约束为
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
创建线性约束矩阵一个
而且b
代表A*x <= b
.
A = [1,1];B = 4;
设定一个起始点[1,1],解决目标达成问题。
X0 = [1,1];x = fgoalattain(乐趣,x0,目标,体重,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0694 - 1.9306
找到…的价值 在解上。
有趣的(x)
ans =2×13.1484 - 6.1484
fgoalattain
没有达到目标。因为权重是相等的,所以求解器在每个目标上都达不到相同的量。
有界限的目标实现
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标是[3,6],权重是[1,1],边界是
,
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
创建边界。
Lb = [0,2];Ub = [3,5];
设定起始点为[1,4],解决目标达成问题。
X0 = [1,4];A = [];%无线性约束B = [];Aeq = [];Beq = [];x = fgoalattain(乐趣,x0,目标,重量,A,b,Aeq,beq,lb,ub)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.6667 - 2.3333
找到…的价值 在解上。
有趣的(x)
ans =2×12.8889 - 5.8889
fgoalattain
超过了目标。因为权重是相等的,所以求解器会超额完成每个目标。
非线性约束下的目标实现
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标为[3,6],权值为[1,1],非线性约束为
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
非线性约束函数在norm4.m
文件。
类型norm4
函数[c,ceq] = norm4(x) ceq = [];C =范数(x)^2 - 4;
为线性约束和边界创建空输入参数。
A = [];Aeq = [];B = [];Beq = [];Lb = [];Ub = [];
设定起始点为[1,1],解决目标达成问题。
X0 = [1,1];x = fgoalattain(乐趣,x0,目标,重量,A,b,Aeq,beq,lb,ub,@norm4)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×21.1094 - 1.6641
找到…的价值 在解上。
有趣的(x)
ans =2×14.5778 - 7.1991
fgoalattain
没有达到目标。尽管权重相等,
距离3的目标约1.58,以及
距离目标6大约1.2。非线性约束阻碍了求解x
平等地实现目标。
使用非默认选项实现目标
通过设置返回迭代显示的选项来监视目标实现解决方案过程。
选项= optimoptions(“fgoalattain”,“显示”,“通路”);
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标为[3,6],权值为[1,1],线性约束为
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
创建线性约束矩阵一个
而且b
代表A*x <= b
.
A = [1,1];B = 4;
为线性等式约束、边界和非线性约束创建空输入参数。
Aeq = [];Beq = [];Lb = [];Ub = [];Nonlcon = [];
设定一个起始点[1,1],解决目标达成问题。
X0 = [1,1];x = fgoalattain(乐趣,x0,目标,重量,A,b,Aeq,beq,lb,ub,非lcon,选项)
实现最大行搜索方向Iter F-count因子约束步长导数步骤0 4 0 4 19 -1 2.5 1 -0.535 2 14 -1.712e-08 0.2813 1 0.883 3 19 0.1452 0.005926 1 0.883 4 24 0.1484 2.868e-06 1 0.883 5 29 0.1484 6.666e-13 1 0.883 Hessian修改局部最小值可能。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0694 - 1.9306
报告成就因子的正值表明fgoalattain
没有找到满足目标的解决方案。
获得目标实现中的目标函数值
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标为[3,6],权值为[1,1],线性约束为
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
创建线性约束矩阵一个
而且b
代表A*x <= b
.
A = [1,1];B = 4;
设定一个起始点[1,1],解决目标达成问题。请求目标函数的值。
X0 = [1,1];[x,fval] = fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0694 - 1.9306
fval =2×13.1484 - 6.1484
目标函数值高于目标,即fgoalattain
不能满足目标。
在目标实现中获得所有输出
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标为[3,6],权值为[1,1],线性约束为
.
创建目标函数、目标和权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
创建线性约束矩阵一个
而且b
代表A*x <= b
.
A = [1,1];B = 4;
设定一个起始点[1,1],解决目标达成问题。请求目标函数、实现因子、退出标志、输出结构和拉格朗日乘数的值。
X0 = [1,1];[x,fval,attainfactor,exitflag,output,lambda] = fgoalattain(乐趣,x0,目标,权重,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0694 - 1.9306
fval =2×13.1484 - 6.1484
Attainfactor = 0.1484
Exitflag = 4
输出=带字段的结构:迭代:6 funcCount: 29 lssteplth: 1 stepsize: 4.0824 -13 algorithm: 'active-set' firstorderopt: [] constrviolation: 6.7568e-13 message: '本地最小值可能。约束满足……”
λ=带字段的结构:下:[2x1 double]上:[2x1 double] eqlin: [0x1 double] eqnonlin: [0x1 double] ineqlin: 0.5394 ineqnonlin: [0x1 double]
的正值attainfactor
表示目标未达到;你也可以通过比较看到这一点fval
与目标
.
的lambda.ineqlin
值为非零,表示线性不等式约束解。
权重、目标和约束对目标实现的影响
目标函数为
在这里,p_1
=[2,3]和p_2
=(4 1)。目标是[3,6],初始权值是[1,1]。
创建目标函数、目标和初始权重。
P_1 = [2,3];P_2 = [4,1];有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标= [3,6];重量= [1,1];
设置线性约束 .
A = [1 1];B = 4;
从点出发,解决目标达成问题X0 = [1 1]
.
X0 = [1 1];[x,fval] = fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0694 - 1.9306
fval =2×13.1484 - 6.1484
每个组成部分fval
上面是对应的成分吗目标
,表示目标未达到。
通过设定来增加实现第一个目标的重要性重量(1)
到一个更小的值。
重量(1)= 1/10;[x,fval] = fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0115 - 1.9885
fval =2×13.0233 - 6.2328
现在的价值fval (1)
更接近于目标(1)
,而fval (2)
离得更远目标(2)
.
改变目标(2)
到7,在当前解的上方。解决方案改变了。
目标(2)= 7;[x,fval] = fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×21.9639 - 2.0361
fval =2×12.9305 - 6.3047
两个组成部分fval
都小于对应的分量目标
.但fval (1)
更接近于目标(1)
比fval (2)
是目标(2)
.当目标不能实现时,较小的权重更有可能使其组成部分接近满足,但当目标可以实现时,过度成就的程度会降低。
将权重更改为相等。的fval
结果与目标的距离相等。
重量(2)= 1/10;[x,fval] = fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×21.7613 - 2.2387
fval =2×12.6365 - 6.6365
约束可以保留结果fval
从同样接近目标。例如,设置上限为2 onx (2)
.
ub = [Inf,2];Lb = [];Aeq = [];Beq = [];[x,fval] = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
局部最小值。约束满足。Fgoalattain停止,因为当前搜索方向的大小小于步长公差值的两倍,约束被满足到约束公差值之内。
x =1×22.0000 - 2.0000
fval =2×13.0000 - 6.2500
在这种情况下,fval (1)
完全达到了目标,但是fval (2)
就是低于它的目标。
输入参数
有趣的
- - - - - -目标函数
函数处理|函数名
目标函数,指定为函数句柄或函数名。有趣的
一个函数接受一个向量吗x
并返回一个向量F
,处求值的目标函数x
.您可以指定函数有趣的
作为函数文件的函数句柄:
X = fgoalattain(@myfun,x0,目标,重量)
在哪里myfun
是一个MATLAB®函数如
函数F = myfun(x...计算x处的函数值。
有趣的
也可以是匿名函数的函数句柄:
X = fgoalattain(@(X)sin(X .* X),x0,目标,权重);
fgoalattain
通过x
你的目标函数和任何非线性约束函数的形状x0
论点。例如,如果x0
是一个5乘3的数组吗fgoalattain
通过x
来有趣的
作为一个5 × 3的数组。然而,fgoalattain
乘以线性约束矩阵一个
或Aeq
与x
转换后x
对列向量x (:)
.
为了使目标函数尽可能接近目标值(即既不大于也不小于),使用optimoptions
设置EqualityGoalCount
需要在目标值附近的目标数量的选项。这样的目标必须被分割成向量的第一个元素F
返回的有趣的
.
假设目标函数的梯度也可以计算而且的SpecifyObjectiveGradient
选择是真正的
,由:
选项= optimoptions(“fgoalattain”,“SpecifyObjectiveGradient”,真正的)
在这种情况下,函数有趣的
必须在第二个输出参数中返回梯度值吗G
(矩阵)在x
.梯度由偏导数组成dF / dx每一个F
在这一点上x
.如果F
向量是长度的吗米
而且x
长度n
,在那里n
的长度x0
,然后是梯度G
的F (x)
是一个n
——- - - - - -米
矩阵G (i, j)
的偏导数是F (j)
关于x(我)
(即j
的第Th列G
的梯度是j
第Th目标函数F (j)
).
请注意
设置SpecifyObjectiveGradient
来真正的
只有当问题没有非线性约束时有效,还是问题有非线性约束时有效SpecifyConstraintGradient
设置为真正的
.在内部,目标被折叠到约束中,所以求解器需要同时提供梯度(目标和约束),以避免估计梯度。
数据类型:字符
|字符串
|function_handle
x0
- - - - - -初始点
真正的向量|真正的数组
目标
- - - - - -达到的目标
真正的向量
要达到的目标,指定为一个真实的向量。fgoalattain
试图找到最小的乘数γ这使得这些不等式对所有的值都成立我在解决方案中x:
假设重量
是正向量:
如果解算器找到一个点
x
同时实现所有目标,然后是成就因素γ是消极的,目标是超额实现的。如果解算器找不到一个点
x
同时实现所有目标,然后是成就因素γ是积极的,而目标没有达到。
例子:[1 3 6]
数据类型:双
重量
- - - - - -相对成就因子
真正的向量
相对成就因子,以实向量表示。fgoalattain
试图找到最小的乘数γ这使得这些不等式对所有的值都成立我在解决方案中x:
当的值目标
是所有非零,以确保达到积极目标的未达到或超额达到的比例相同重量
来abs(目标)
.(活动目标是在解决方案中阻碍进一步改进目标的目标集。)
请注意
控件的组件重量
向量为零导致相应的目标约束被视为硬约束,而不是目标约束。设置硬约束的另一种方法是使用input参数nonlcon
.
当重量
是正的,fgoalattain
试图使目标函数小于目标值。若要使目标函数大于目标值,请设置重量
消极:消极而不是积极要查看权重对解决方案的一些影响,请参见权重、目标和约束对目标实现的影响.
要使目标函数尽可能接近目标值,请使用EqualityGoalCount
选项,并将目标指定为返回的向量的第一个元素有趣的
(见有趣的
而且选项
).有关示例,请参见多目标目标实现优化.
例子:abs(目标)
数据类型:双
一个
- - - - - -线性不等式约束
真正的矩阵
线性不等式约束,指定为实矩阵。一个
是一个米
——- - - - - -N
矩阵,米
不等式的数量,和N
变量的数量(元素的数量x0
).对于大问题,可以通过一个
作为一个稀疏矩阵。
一个
编码米
线性不等式
A*x <= b
,
在哪里x
列向量是N
变量x (:)
,b
列向量是米
元素。
例如,考虑以下不等式:
x1+ 2x2≤10
3.x1+ 4x2≤20
5x1+ 6x2≤30日
通过输入以下约束来指定不等式。
A = [1,2;3,4;5,6];B = [10;20;30];
例子:要指定x分量的和为1或更小,请使用A = ones(1,N)
而且B = 1
.
数据类型:双
b
- - - - - -线性不等式约束
真正的向量
线性不等式约束,指定为实向量。b
是一个米
元素的相关向量一个
矩阵。如果你通过了b
作为行向量,解算器内部转换b
对列向量b (:)
.对于大问题,可以通过b
作为一个稀疏向量。
b
编码米
线性不等式
A*x <= b
,
在哪里x
列向量是N
变量x (:)
,一个
矩阵的大小米
——- - - - - -N
.
例如,考虑以下不等式:
x1+ 2x2≤10
3.x1+ 4x2≤20
5x1+ 6x2≤30。
通过输入以下约束来指定不等式。
A = [1,2;3,4;5,6];B = [10;20;30];
例子:要指定x分量的和为1或更小,请使用A = ones(1,N)
而且B = 1
.
数据类型:双
Aeq
- - - - - -线性等式约束
真正的矩阵
线性等式约束,指定为实矩阵。Aeq
是一个我
——- - - - - -N
矩阵,我
等式的个数,和N
变量的数量(元素的数量x0
).对于大问题,可以通过Aeq
作为一个稀疏矩阵。
Aeq
编码我
线性等式
Aeq*x = beq
,
在哪里x
列向量是N
变量x (:)
,说真的
列向量是我
元素。
例如,考虑以下不等式:
x1+ 2x2+ 3x3.= 10
2x1+ 4x2+x3.= 20,
通过输入以下约束来指定不等式。
Aeq = [1,2,3;2,4,1];Beq = [10;20];
例子:要指定x分量的和为1,使用Aeq = ones(1,N)
而且Beq = 1
.
数据类型:双
说真的
- - - - - -线性等式约束
真正的向量
线性等式约束,指定为实向量。说真的
是一个我
元素的相关向量Aeq
矩阵。如果你通过了说真的
作为行向量,解算器内部转换说真的
对列向量说真的(:)
.对于大问题,可以通过说真的
作为一个稀疏向量。
说真的
编码我
线性等式
Aeq*x = beq
,
在哪里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 = ones(1,N)
而且Beq = 1
.
数据类型:双
磅
- - - - - -下界
真正的向量|真正的数组
下界,指定为实向量或实数组。如果元素的个数x0
等于里面元素的个数磅
,然后磅
指定
X (i) >= lb(i)
对所有我
.
如果数值(lb) <数值(x0)
,然后磅
指定
X (i) >= lb(i)
为1 <= I <= number (lb)
.
如果磅
元素少于x0
,解算器发出警告。
例子:要指定所有x分量都是正的,使用Lb = 0 (size(x0))
.
数据类型:双
乌兰巴托
- - - - - -上界
真正的向量|真正的数组
上界,指定为实向量或实数组。如果元素的个数x0
等于里面元素的个数乌兰巴托
,然后乌兰巴托
指定
X (i) <= ub(i)
对所有我
.
如果Numel (ub) < Numel (x0)
,然后乌兰巴托
指定
X (i) <= ub(i)
为1 <= I <= numel(ub)
.
如果乌兰巴托
元素少于x0
,解算器发出警告。
例子:要指定所有x分量都小于1,使用Ub = ones(size(x0))
.
数据类型:双
nonlcon
- - - - - -非线性约束
函数处理|函数名
非线性约束,指定为函数句柄或函数名。nonlcon
函数接受向量或数组吗x
并返回两个数组,c (x)
而且量表(x)
.
c (x)
非线性不等式的约束数组是在x
.fgoalattain
试图满足C (x) <= 0
对于所有c
.量表(x)
非线性等式约束的数组是在x
.fgoalattain
试图满足Ceq (x) = 0
对于所有量表信
.
例如,
X = fgoalattain(@myfun,x0,…,@mycon)
在哪里mycon
为MATLAB函数,如下所示:
函数[c,ceq] = mycon(x) c =…计算x上的非线性不等式ceq =…计算x处的非线性等式。
假设约束的梯度也可以计算出来而且的SpecifyConstraintGradient
选择是真正的
,由:
options = optimoptions('fgoalattain',' specyconstraintgradient ',true)
在这种情况下,函数nonlcon
还必须在第三和第四个输出参数中返回,GC
,的梯度c (x)
,GCeq
,的梯度量表(x)
.看到非线性约束有关如何“条件化”梯度以用于不接受提供梯度的求解器的解释。
如果nonlcon
返回一个向量c
的米
组件和x
长度n
,在那里n
的长度x0
,然后是梯度GC
的c (x)
是一个n
——- - - - - -米
矩阵,GC (i, j)
的偏导数是c (j)
关于x(我)
(即j
的第Th列GC
的梯度是j
t不等式约束c (j)
).同样地,如果量表信
有p
分量,梯度GCeq
的量表(x)
是一个n
——- - - - - -p
矩阵,GCeq (i, j)
的偏导数是量表(j)
关于x(我)
(即j
的第Th列GCeq
的梯度是j
等式约束量表(j)
).
请注意
设置SpecifyConstraintGradient
来真正的
仅在以下情况下有效SpecifyObjectiveGradient
设置为真正的
.在内部,目标被折叠到约束中,所以求解器需要同时提供梯度(目标和约束),以避免估计梯度。
请注意
因为优化工具箱™函数只接受类型的输入双
,用户提供的目标函数和非线性约束函数必须返回类型的输出双
.
看到传递额外参数为说明如何参数化非线性约束函数nonlcon
,如有需要。
数据类型:字符
|function_handle
|字符串
选项
- - - - - -优化选项
的输出optimoptions
|结构,例如optimset
返回
的优化选项,指定为的输出optimoptions
或者一个结构,比如optimset
的回报。
中缺少一些选项optimoptions
显示。这些选项在下表中以斜体字显示。详细信息请参见视图选项.
有关具有不同名称的选项的详细信息optimset
,请参阅当前和遗留选项名称.
选项 | 描述 |
---|---|
ConstraintTolerance |
约束违反的终止容差,为正标量。默认为 为 |
诊断 | 显示关于要最小化或解决的功能的诊断信息。选项是 |
DiffMaxChange | 有限差梯度(正标量)变量的最大变化。默认为 |
DiffMinChange | 有限差分梯度(正标量)的最小变量变化。默认为 |
|
显示水平(见迭代显示):
|
EqualityGoalCount |
目标所需的目标数量 为 |
FiniteDifferenceStepSize |
有限差分的标量或矢量步长因子。当你设置
符号' (x) =符号(x) 除了符号' (0)= 1 .中心有限差分为
FiniteDifferenceStepSize 展开成一个向量。默认为sqrt (eps) 对于正向有限差分,和eps ^ (1/3) 对于中心有限差分。为 |
FiniteDifferenceType |
用于估计梯度的有限差分类型 该算法在估计这两种类型的有限差分时谨慎地服从边界。例如,它可能会后退一步,而不是向前一步,以避免在边界外的点求值。 为 |
FunctionTolerance |
函数值(正标量)上的终止公差。默认为 为 |
FunValCheck | 检查是否表示目标函数和约束值有效。 |
MaxFunctionEvaluations |
允许的最大函数求值数(正整数)。默认为 为 |
MaxIterations |
允许的最大迭代次数(正整数)。默认为 为 |
MaxSQPIter | 允许的最大SQP迭代数(正整数)。默认为 |
MeritFunction | 如果此选项设置为 |
OptimalityTolerance |
一阶最优性(正标量)上的终止容差。默认为 为 |
OutputFcn |
优化函数在每次迭代时调用的一个或多个用户定义函数。传递一个函数句柄或函数句柄的单元格数组。默认值为none ( |
PlotFcn |
显示算法执行过程中各种进度度量的图表。从预定义的情节中选择或编写自己的。传递名称、函数句柄或名称或函数句柄的单元格数组。对于自定义绘图函数,传递函数句柄。默认值为none (
自定义绘图函数使用与输出函数相同的语法。看到优化工具箱的输出函数而且输出函数和图函数语法. 为 |
RelLineSrchBnd | 相对边界(一个实非负标量值)上的直线搜索步长,使总位移在 |
RelLineSrchBndDuration | 中指定的边界的迭代次数 |
SpecifyConstraintGradient |
用户定义的非线性约束函数的梯度。当此选项设置为 为 |
SpecifyObjectiveGradient |
由用户定义的目标函数的梯度。参考的描述 为 |
StepTolerance |
终止公差 为 |
TolConSQP | 内部迭代SQP约束违反的终止容差(一个正标量)。默认为 |
TypicalX |
典型的 |
UseParallel |
并行计算的指示。当 |
例子:optimoptions(“fgoalattain”、“PlotFcn”、“optimplotfval”)
问题
- - - - - -问题的结构
结构
问题结构,指定为具有此表中的字段的结构。
字段名 | 条目 |
---|---|
|
目标函数有趣的 |
|
起始点x |
|
要达到的目标 |
|
目标的相对重要性因素 |
|
线性不等式约束的矩阵 |
|
线性不等式约束的向量 |
|
矩阵的线性等式约束 |
|
线性等式约束的向量 |
磅 |
下界向量 |
乌兰巴托 |
上界向量 |
|
非线性约束函数 |
|
“fgoalattain” |
|
创建的选项optimoptions |
你必须提供至少客观的
,x0
,目标
,重量
,解算器
,选项
字段问题
结构。
数据类型:结构体
输出参数
fval
-目标函数值的解
真正的数组
目标函数在解处的值,作为实数组返回。一般来说,fval
=有趣的(x)
.
attainfactor
-成就因素
实数
获得因子,作为实数返回。attainfactor
包含的值γ在解上。如果attainfactor
是消极的,目标已经超额完成;如果attainfactor
是积极的,目标没有达到。看到目标
.
exitflag
- - -原因fgoalattain
停止
整数
原因fgoalattain
停止,以整数形式返回。
|
函数收敛到一个解 |
|
搜索方向的幅度小于指定公差,约束违反小于 |
|
方向导数的幅度小于规定的公差,约束违反小于 |
|
超过迭代次数 |
|
被输出函数或绘图函数停止 |
|
没有找到可行点。 |
输出
—优化过程信息
结构
关于优化过程的信息,作为带有此表中的字段的结构返回。
迭代 |
迭代次数 |
funcCount |
函数求值的数量 |
lssteplength |
直线搜索步长相对于搜索方向的大小 |
constrviolation |
约束函数的最大值 |
stepsize |
最后一次位移的长度 |
算法 |
所使用的优化算法 |
firstorderopt |
一阶最优性的度量 |
消息 |
退出消息 |
算法
的描述fgoalattain
算法和目标实现概念的讨论,参见算法.
选择功能
应用程序
的优化活动编辑器任务提供了一个可视化界面fgoalattain
.
扩展功能
自动平行支撑金宝app
通过使用并行计算工具箱™自动并行运行计算来加速代码。
要并行运行,请设置“UseParallel”
选项真正的
.
Options = optimoptions('
solvername
”、“UseParallel’,真的)
有关更多信息,请参见在优化工具箱中使用并行计算.
版本历史
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。