Fgoalattain

解决多层目标达到问题

描述

Fgoalattain解决目标达到问题,是最小化多目标优化问题的制定。

Fgoalattain查找指定问题的最小值

最小化 X γ. γ. 这样 { F X 重量 γ. 目标 C X 0. C E. 问: X = 0. 一种 X B. 一种 E. 问: X = B. E. 问: L. B. X B.

重量目标B.,说真的是载体,一种AEQ.矩阵,FX),CX), 和CEQ.X),是返回向量的功能。FX),CX), 和CEQ.X)可以是非线性函数。

X,乌兰巴托可以作为向量或矩阵传递;看到矩阵的参数

例子

X= fgoalattain (有趣的x0目标重量试图使目标函数由有趣的达到指定的目标目标通过改变X,从x0,重量为重量

笔记

传递额外的参数说明如何在必要时向目标函数和非线性约束函数传递额外参数。

例子

X= fgoalattain (有趣的x0目标重量一种B.解决受不平等影响的目标实现问题* x≤b

X= fgoalattain (有趣的x0目标重量一种B.AEQ.说真的解决目标的目标达到问题Aeq * x =说真的.如果没有不等式,则设定一个= []b = []

例子

X= fgoalattain (有趣的x0目标重量一种B.AEQ.说真的乌兰巴托有限度地解决目标实现问题X乌兰巴托.如果不存在等式,则设置AEQ = []beq = [].如果x(i)在下面无界,设置LB(i)= -inf;如果x(i)在上面无界,设置UB(i)= inf

笔记

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

例子

X= fgoalattain (有趣的x0目标重量一种B.AEQ.说真的乌兰巴托nonlcon.求解非线性不等式下的目标实现问题c (x)或平等CEQ(x)中定义的nonlcon.Fgoalattain优化这样的C(x)≤0CEQ(x)= 0.如果不存在边界,则设置lb = []乌兰巴托= [], 或两者。

例子

X= fgoalattain (有趣的x0目标重量一种B.AEQ.说真的乌兰巴托nonlcon.选项用中指定的优化选项解决目标实现问题选项.采用优化选择设置这些选项。

X= fgoalattain (问题为客户解决目标实现问题问题中所描述的结构问题

例子

[Xfval) = fgoalattain (___,对于任何语法,返回所计算的目标函数的值有趣的在解决方案X

例子

[Xfvalatainfactor.ExitFlag.输出) = fgoalattain (___另外在解决方案处返回达到因子X, 一个值ExitFlag.的退出条件Fgoalattain,结构输出有关于优化过程的信息。

例子

[Xfvalatainfactor.ExitFlag.输出λ) = fgoalattain (___另外返回一个结构λ哪个场在解处包含拉格朗日乘数X

例子

全部折叠

考虑两个目标函数

F X = [ 2 + X - 3. 2 5. + X 2 / 4. ]

这个函数显然是最小化的 F 1 X X = 3. ,得到值2,并使之最小化 F 2 X X = 0. ,得到值5。

设定目标[3,6]和权重[1,1],并解决目标达到问题x0= 1。

有趣= @ (x) [2 + (- 3) ^ 2; 5 + x ^ 2/4);目标=(3、6);重量= [1];x0 = 1;X = FGOALATTAIN(乐趣,X0,目标,重量)
地方最低可能。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x = 2.0000

找出…的价值 F X 在解决方案中。

有趣的(x)
ans =.2×13.0000 - 6.0000

Fgoalattain准确完成目标。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],重量是[1,1],线性约束是 X 1 + X 2 4.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

创建线性约束矩阵一种B.代表a * x <= b

a = [1,1];B = 4;

设定初始点[1,1],解决目标实现问题。

x0 = [1];x = fgoalattain(有趣,x0,目标,体重,A, b)
地方最低可能。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x =1×22.0694 - 1.9306

找出…的价值 F X 在解决方案中。

有趣的(x)
ans =.2×13.1484 6.1484

Fgoalattain不符合目标。因为权重相等,所以求解器以相同的数量为每个目标进行了处理。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],重量是[1,1],并且界限是 0. X 1 3. 2 X 2 5.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

创建界限。

lb = [0,2];UB = [3,5];

将起始点设为[1,4],解决目标实现问题。

x0 = [1,4];a = [];无线性约束b = [];Aeq = [];说真的= [];x = fgoalattain(有趣,x0,目标,体重,A, b, Aeq,说真的,磅,乌兰巴托)
地方最低可能。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x =1×22.6667 2.3333

找出…的价值 F X 在解决方案中。

有趣的(x)
ans =.2×12.8889 5.8889

Fgoalattain超过了目标。因为权重是相等的,所以解算器会以相同的数量超额完成每个目标。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标为[3,6],权值为[1,1],非线性约束为 X 2 4.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

非线性约束函数在诺尔4.M.文件。

类型norm4
函数[c,ceq] = norm4(x) ceq = [];C = norm(x)^2 - 4;

为线性约束和界限创建空输入参数。

一个= [];Aeq = [];b = [];说真的= [];磅= [];乌兰巴托= [];

设初始点为[1,1],解决目标实现问题。

x0 = [1];x = fgoalattain(有趣,x0,目标,体重,A, b, Aeq,说真的,磅,乌兰巴托,@norm4)
地方最低可能。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x =1×21.1094 - 1.6641

找出…的价值 F X 在解决方案中。

有趣的(x)
ans =.2×14.5778 - 7.1991

Fgoalattain不符合目标。尽管重量平等, F 1 X 它的目标是3,距离3,和 F 2 X 与目标6相差1.2。非线性约束阻碍了求解X从实现目标平均。

通过设置选项返回迭代显示来监控目标实现解决方案过程。

选项= Optimoptions('fgoalattain''展示''iter');

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],重量是[1,1],线性约束是 X 1 + X 2 4.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

创建线性约束矩阵一种B.代表a * x <= b

a = [1,1];B = 4;

为线性平等约束,界限和非线性约束创建空输入参数。

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

设定初始点[1,1],解决目标实现问题。

x0 = [1];X = FGOAlaTain(乐趣,X0,目标,重量,A,B,AEQ,BEQ,LB,UB,NONLCON,选项)
达到最大线搜索定向Iter F-count因素约束steplength导数过程0 4 0 4 1 9 1 0.883 0.2813 -5.194 2.5 -0.535 1 2 14 e-09 1 3 19 24 0.1484 - 2.868 0.1452 0.883 0.005926 - 1 4 e-06 1 0.883 5 29日0.1484 - 6.839 e-13 1 0.883黑森当地最低可能的修改。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x =1×22.0694 - 1.9306

所报告的达到因子的正值表明Fgoalattain找不到满足目标的解决方案。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],重量是[1,1],线性约束是 X 1 + X 2 4.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

创建线性约束矩阵一种B.代表a * x <= b

a = [1,1];B = 4;

设定初始点[1,1],解决目标实现问题。请求目标函数的值。

x0 = [1];[x, fval] = fgoalattain(有趣,x0,目标,体重,A, b)
地方最低可能。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x =1×22.0694 - 1.9306
fval =2×13.1484 6.1484

目标函数值高于目标的意义Fgoalattain不能满足目标。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],重量是[1,1],线性约束是 X 1 + X 2 4.

创建目标函数,目标和体重。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

创建线性约束矩阵一种B.代表a * x <= b

a = [1,1];B = 4;

设定初始点[1,1],解决目标实现问题。请求目标函数,达到因子,退出标志,输出结构和拉格朗日乘数的值。

x0 = [1];[x, fval attainfactor, exitflag,输出,λ)= 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 Lssteplenth:1步骤化:4.1454E-13算法:'Active-Set'的Firstordoptopt:[] ConstRViolation:6.7482E-13消息:'...'
lambda =结构与字段:下:[2x1 double]上:[2x1 double] eqlin: [0x1 double] eqnonlin: [0x1 double] ineqlin: 0.5394 ineqnonlin: [0x1 double]

的正值atainfactor.表示目标未达到;你也可以通过比较看到这一点fval目标

lambda.ineqlin值是非零,表明线性不等式限制了解决方案。

目标函数为

F X = [ 2 + X - P. 1 2 5. + X - P. 2 2 / 4. ]

在这里,p_1= [2,3]和p_2=(4 1)。目标是[3,6],初始重量是[1,1]。

创建目标函数,目标和初始重量。

p_1 = [2,3];p_2 = [4,1];fun = @(x)[2 + norm(x-p_1)^ 2; 5 + norm(x-p_2)^ 2/4];目标=(3、6);重量= [1,1];

设置线性约束 X 1 + X 2 4.

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的上限x(2)

乌兰巴托=[正无穷,2];磅= [];Aeq = [];说真的= [];[x, fval] = fgoalattain(有趣,x0,目标,体重,A, b, Aeq,说真的,磅,乌兰巴托)
地方最低可能。约束满足。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,目标,重量);

的用户定义值XF是阵列,Fgoalattain使用线性索引将它们转换为向量(参见数组索引).

为了使目标函数尽可能接近一个目标值(即既不大于也不小于),请使用优化选择设置EqualityGoalCount选项需要在目标值附近所需的目标次数。这样的目标必须被分割成向量的第一个元素F返回有趣的

假设目标函数的梯度也可以计算出来specifyobjectivegradient.选项是真正的,按下列规定:

选择= optimoptions(‘fgoalattain’,‘SpecifyObjectiveGradient’,真的)

在这种情况下,功能有趣的必须返回,在第二个输出参数中,梯度值G(矩阵)在X.渐变由部分衍生物组成df / dx.每一个F当时X.如果F是长度的矢量mX有长度N, 在哪里N是的长度x0,然后是梯度GF (x)是一个N-经过-m矩阵G (i, j)是部分衍生的F (j)关于x(i)(那就是jth列G是渐变的j目标职能F (j)).

笔记

环境specifyobjectivegradient.真正的是只有当问题没有非线性约束时才有效,还是问题有非线性约束时有效specifyConstraintGRadient.设置为真正的.在内部,目标被折叠到约束中,因此求解器需要提供梯度(客观和约束)以避免估计梯度。

数据类型:char|细绳|function_handle.

初始点,指定为真实的矢量或真实数组。求解器使用元素数量x0和大小的x0来确定变量的数量和大小有趣的接受。

例子:x0 =(1、2、3、4)

数据类型:双倍的

目标要达到,指定为真正的矢量。Fgoalattain试图找到最小的乘数γ.这使得这些不平等适用于所有的值一世在解决方案X

F 一世 X 目标 一世 重量 一世 γ.

假如说重量为正向量:

  • 如果求解器找到一个点X同时实现所有目标,然后实现了达到因子γ.是否定的,目标是大次要的。

  • 如果解算器找不到一个点X同时实现所有目标,然后实现了达到因子γ.是积极的,目标是不明的。

例子:[1 3 6]

数据类型:双倍的

相对达到因子,指定为真正的矢量。Fgoalattain试图找到最小的乘数γ.这使得这些不平等适用于所有的值一世在解决方案X

F 一世 X 目标 一世 重量 一世 γ.

当值目标所有非零,以确保未完成或超额完成积极目标的百分比相同,设定重量ABS(目标).(活动目标是阻碍进一步改进解决方案目标的一组目标。)

笔记

的组件重量向量归零导致相应的目标约束被视为硬约束而不是目标约束。设置硬约束的另一种方法是使用输入参数nonlcon.

什么时候重量是积极的,Fgoalattain试图使目标函数小于目标值。使目标函数大于目标值,设置重量是消极的而不是积极的。在解决方案上看到权重的一些效果,见权重,目标和限制在目标达到的影响

使目标函数尽可能接近目标值,使用EqualityGoalCount选项,并将目标指定为返回的向量的第一个元素有趣的(看有趣的选项).例如,看到多目标目标实现优化

例子:ABS(目标)

数据类型:双倍的

线性不等式约束,指定为实矩阵。一种是一个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或更小,请使用一个= 1 (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或更小,请使用一个= 1 (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 = ONE(1,N)Beq = 1

数据类型:双倍的

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

说真的编码线性平等

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 = ONE(1,N)Beq = 1

数据类型:双倍的

下界,指定为实向量或实数组。如果元素的数量x0等于元素的数量,然后指定

x(i)> = lb(i)对全部一世

如果numel(lb),然后指定

x(i)> = lb(i)1 <= I <= numel(lb)

如果有更少的元素而不是x0,解算器发出警告。

例子:要指定所有x分量都是正数,请使用lb = zeros(size(x0))

数据类型:双倍的

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

x (i) < =乌兰巴托(我)对全部一世

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

x (i) < =乌兰巴托(我)1 <= i <= numel(UB)

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

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

数据类型:双倍的

非线性约束,指定为函数句柄或函数名。nonlcon.是一个接受向量或数组的函数X并返回两个数组,c (x)CEQ(x)

  • c (x)是非线性不等式约束的数组XFgoalattain试图满足

    C(x)<= 0的所有条目C

  • CEQ(x)是非线性平等约束的数组XFgoalattain试图满足

    CEQ(x)= 0的所有条目CEQ.

例如,

x = fgoalattain (@mycon @myfun, x0,…)

在哪里mycon是一个MATLAB函数,如:

功能[c,ceq] = mycon(x)c = ...%计算x的非线性不等式。CEQ = ...%计算X的非线性等于。

假设约束的梯度也可以计算出来specifyConstraintGRadient.选项是真正的,按下列规定:

选项= Optimoptions('fgoalattain','specifyconstraintgradient',true)

在这种情况下,功能nonlcon.还必须返回,在第三和第四个输出参数中,GC,梯度c (x),GCeq,梯度CEQ(x).看非线性约束有关如何将梯度“条件化”,以便在不接受已提供梯度的求解器中使用。

如果nonlcon.返回一个向量Cm组件和X有长度N, 在哪里N是的长度x0,然后是梯度GCc (x)是一个N-经过-m矩阵,其中GC (i, j)是部分衍生的C(j)关于x(i)(那就是jth列GC是渐变的j不平等限制C(j)).同样地,如果CEQ.P.组件,梯度GCeqCEQ(x)是一个N-经过-P.矩阵,其中GCEQ(I,J)是部分衍生的CEQ(j)关于x(i)(那就是jth列GCeq是渐变的j平等约束CEQ(j)).

笔记

环境specifyConstraintGRadient.真正的只是有效的时候specifyobjectivegradient.被设置为真正的.在内部,目标被折叠到约束中,因此求解器需要同时提供梯度(目标和约束),以避免估计梯度。

笔记

因为优化工具箱™功能仅接受类型的输入双倍的,用户提供的目标和非线性约束函数必须返回类型的输出双倍的

传递额外的参数有关如何参数化非线性约束函数的说明nonlcon.,如果必要的。

数据类型:char|function_handle.|细绳

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

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

有关具有不同名称的选项的详细信息optimset, 看当前和遗留选项名称

选项 描述
ConstraintTolerance

约束违背的终止容限,一个正标量。默认值是1 e-6.看公差和停止标准

optimset, 名字是tolcon.

诊断

显示关于要最小化或解决的功能的诊断信息。的选择是'在''离开'(默认值)。

diffmaxchange.

有限差分梯度(正标量)的变量最大变化。默认值是INF.

差异

有限差分梯度(正标量)变量变化的最小值。默认值是0.

显示

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

  • '离开''没有任何'显示无输出。

  • 'iter'在每次迭代时显示输出,并提供默认退出消息。

  • 'iter-comment'在每次迭代时显示输出,并给出技术退出消息。

  • “通知”仅当函数不收敛时显示输出,并给出默认退出消息。

  • '通知 - 详细'仅当函数不收敛时显示输出,并提供技术退出消息。

  • '最后'(默认)仅显示最终输出,并提供默认退出消息。

  • '最终详细'只显示最终输出,并给出技术性退出消息。

EqualityGoalCount

目标所需的目标数量有趣的达到目标目标(非负整数)。这些目标必须划分为F.默认值是0..例如,看到多目标目标实现优化

optimset, 名字是GoalsExactAchieve

FiniteDifferenceStepSize

有限差分的标量或向量步长因子。当您设置FiniteDifferenceStepSize一个向量V.,正有限差分δ

δ= v *标志的(x) *马克斯(abs (x)、TypicalX);

在哪里签名'(x)= sign(x)除了标志' (0)= 1.中央有限差异是

delta = v。* max(abs(x),典型值);

标量子FiniteDifferenceStepSize展开成一个向量。默认值是sqrt (eps)对于正向有限差分,和EPS ^(1/3)用于中央有限差异。

optimset, 名字是FINDIFFRELSTEP.

FiniteDifferenceType

用于估计梯度的有限差异的类型'向前'(默认),或“中央”(中心)。“中央”需要两倍的函数求值,但通常更准确。

当估计两种类型的有限差异时,算法小心遵循界限。例如,它可能采用向后步骤,而不是前向步骤,以避免在界限之外的点处评估。

optimset, 名字是FinDiffType

FunctionTolerance

函数值的终止公差(一个正标量)。默认值是1 e-6.看公差和停止标准

optimset, 名字是塔尔芬

FunValCheck

检查表示目标函数和约束值是否有效。'在'当目标函数或约束返回复杂的值时,显示错误,INF.,或.默认值'离开'显示没有错误。

MaxFunctionEvaluations.

允许的最大函数求值数(一个正整数)。默认值是100 * numberOfVariables.看公差和停止标准迭代和函数计数

optimset, 名字是Maxfunevals.

最大

允许的最大迭代次数(正整数)。默认值是400.看公差和停止标准迭代和函数计数

optimset, 名字是maxiter.

maxsqpiter.

允许的最大SQP迭代次数(正整数)。默认值是10*max(numberOfVariables, numberoffinequalities + numberOfBounds)

MeritFunction

如果该选项设置为“multiobj”(默认值),使用目标达到优点函数。如果该选项设置为'singleobj', 使用fminconMerit函数。

OptimalityTolerance

终止耐受一阶最优性(正标量)。默认值是1 e-6.看一阶最优测量

optimset, 名字是塔尔芬

outputfcn.

一个或多个用户定义的函数,用于在每次迭代时调用优化函数。通过功能句柄或功能句柄的单元格数组。默认值为none([]).看输出函数和绘图函数语法

Plotfcn.

显示算法执行过程中各种进度的图。从预定义的情节中选择或编写您自己的。传递名称、函数句柄或由名称或函数句柄组成的单元数组。对于定制的绘图函数,传递函数句柄。默认值为none([]).

  • 'OptimplotX'绘制当前点。

  • 'OptimplotFunccount'绘制函数计数。

  • 'OptimplotFval'绘制目标函数值。

  • “optimplotconstrviolation”绘制最大约束违背。

  • “optimplotstepsize”绘制阶梯尺寸。

自定义绘图功能使用与输出功能相同的语法。看优化工具箱的输出函数输出函数和绘图函数语法

optimset, 名字是Plotfcns.

Rellinesrchbnd.

直线搜索步长上的相对界(一个实非负标量值),使总位移在X满足X一世)|≤Rellinesrchbnd·max(|X一世) | |typicalx一世)|).该选项提供了对位移大小的控制X当求解器采取太大的步骤时。默认值为none([]).

RelLineSrchBndDuration

中指定的边界所对应的迭代次数Rellinesrchbnd.应该是活跃的。默认值是1

specifyConstraintGRadient.

用户定义的非线性约束函数的梯度。此选项设置为真正的Fgoalattain预计约束函数具有四个输出,如所述nonlcon..此选项设置为(默认),Fgoalattain使用有限差分估计非线性约束的梯度。

optimset, 名字是Gradconstr.值是'在''离开'

specifyobjectivegradient.

由用户定义的目标函数的梯度。参考的描述有趣的看如何定义渐变。将此选项设置为真正的具有Fgoalattain使用客观函数的用户定义梯度。默认值,,使Fgoalattain使用有限差异来估计梯度。

optimset, 名字是gradobj.值是'在''离开'

StepTolerance.

终止上公差X(积极的标量)。默认值是1 e-6.看公差和停止标准

optimset, 名字是TolX

Tolconsqp.

终止公差对内部迭代SQP约束违规(正标量)。默认值是1 e-6

TypicalX

典型的X值。元素的数量TypicalX等于元素的数量x0,起点。默认值为(Numberofvarialbles,1).这Fgoalattain函数使用TypicalX为梯度估计缩放有限差分。

UseParallel

并行计算指示。什么时候真正的Fgoalattain平行估计梯度。默认值是.看并行计算

例子:Optimoptions('fgoAlattain','plotfcn','OptimplotFval')

问题结构,指定为具有此表中字段的结构。

字段名称 入口

客观的

目标职能有趣的

x0

初始点X

目标

达到目标

重量

目标的相对重要因素

Aineq.

线性不等式约束的矩阵

bineq

线性不等式约束的向量

AEQ.

线性平等约束的矩阵

说真的

线性等式约束的向量
下限矢量
乌兰巴托 上界向量

nonlcon.

非线性约束函数

解算器

'fgoalattain'

选项

选择的选项优化选择

你必须至少提供客观的x0目标重量解算器,选项字段问题结构。

数据类型:塑造

输出参数

全部折叠

解决方案,返回真正的矢量或真实数组。的大小X和尺寸一样吗x0.通常,X什么时候能解决局部问题ExitFlag.是正的。有关解决方案质量的信息,请参见当求职者成功时

目标函数在解时的值,作为实数组返回。一般来说,fval=有趣的(x)

成就因子,返回为实数。atainfactor.包含值γ.在解决方案中。如果atainfactor.是消极的,目标已经超额实现;如果atainfactor.是积极的,目标已经不明了。看目标

原因Fgoalattain停止,返回整数。

1

功能融合到解决方案X

4.

搜索方向的幅度小于指定的公差,约束违规小于选项。ConstraintTolerance

5.

方向衍生物的幅度小于指定的公差,约束违规小于选项。ConstraintTolerance

0.

超出迭代次数选项。maxiter.在一世ons或超出函数评估的数量options.maxfunctionevaluations.

-1

通过输出函数或绘图函数停止

2

没有找到可行点。

有关优化过程的信息,返回与此表中字段的结构。

迭代

采取的迭代人数

Funccount.

功能评估数量

lssteplength

线路搜索步骤的大小相对于搜索方向

constrviolation

约束函数的最大值

stepsize

最后一次位移的长度X

算法

优化算法

firstordopt.

一阶最优性的衡量

信息

退出消息

解处的拉格朗日乘数,作为表中字段的结构返回。

较低的

对应的下限

上界对应于乌兰巴托

ineqlin.

线性不等式对应于一种B.

eqlin.

线性平等对应AEQ.说真的

Ineqnonlin.

对应的非线性不等式Cnonlcon.

eqnonlin.

对应的非线性等式CEQ.nonlcon.

算法

有关的描述Fgoalattain算法和目标实现的讨论概念,见算法

选择功能

应用程序

优化Live Editor任务提供可视界面Fgoalattain

扩展功能

之前介绍过的R2006a