主要内容

fgoalattain

解决多目标目标实现问题

描述

fgoalattain解决目标达成问题,这是一个最小化多目标优化问题的公式。

fgoalattain查找由指定的问题的最小值

减少 x , γ γ 这样 { F ( x ) 重量 γ 目标 C ( x ) 0 C E Q ( x ) = 0 A. x B A. E Q x = B E Q L B x U B

重量,目标,B贝基是向量,A.Aeq是矩阵,和F(x),C(x),及ceq(x),是返回向量的函数。F(x),C(x),及ceq(x)可以是非线性函数。

x,乌兰巴托可以作为向量或矩阵传递;请参见矩阵参数

实例

x=fgoalattain(享乐,x0,目标,重量)尝试使提供的目标函数享乐达到指定的目标目标通过改变x,由x0,重量由重量

请注意

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

实例

x=fgoalattain(享乐,x0,目标,重量,A.,B)解决受不等式约束的目标达成问题A*x≤ B

x=fgoalattain(享乐,x0,目标,重量,A.,B,Aeq,贝基)解决受平等制约的目标实现问题Aeq * x =说真的如果No inequalities exist, setA=[]b=[]

实例

x=fgoalattain(享乐,x0,目标,重量,A.,B,Aeq,贝基,,乌兰巴托)解决受边界约束的目标达成问题x乌兰巴托.如果不存在等式,则设置Aeq=[]说真的= []如果x(我)下面是无界的吗磅(i) =负无穷;如果x(我)上面是无界的,集乌兰巴托(i) =正无穷

请注意

看到迭代会违反约束

请注意

如果问题的指定输入边界不一致,则输出xx0以及输出未来值[]

实例

x=fgoalattain(享乐,x0,目标,重量,A.,B,Aeq,贝基,,乌兰巴托,nonlcon)求解非线性不等式下的目标达成问题c(x)还是平等ceq(x)定义于nonlconfgoalattain优化以使c (x)≤0量表(x) = 0。如果不存在边界,则设置lb=[]ub=[],或两者兼而有之。

实例

x=fgoalattain(享乐,x0,目标,重量,A.,B,Aeq,贝基,,乌兰巴托,nonlcon,选项)使用中指定的优化选项解决目标实现问题选项使用最佳选择设置这些选项。

x=fgoalattain(问题)解决目标实现问题问题,中描述的结构问题

实例

[x,未来值]=fgoalattain(___),对于任何语法,返回在中计算的目标函数的值享乐在解决方案x

实例

[x,未来值,attainfactor,出口滞后,输出]=fgoalattain(___)另外,还返回解决方案中的实现因子x,一个值出口滞后它描述了fgoalattain,以及一个结构输出关于优化过程的信息。

实例

[x,未来值,attainfactor,出口滞后,输出,兰姆达]=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+(x-3)^2;5+x^2/4];目标=[3,6];权重=[1,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] and p_ .2.=(4 1)。目标为[3,6],权值为[1,1],线性约束为 x 1. + x 2. 4.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [1];

创建线性约束矩阵A.B代表A * x < =

一个= [1];b = 4;

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

x0=[1,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] and p_ .2.=(4 1)。目标是[3,6],权重是[1,1],边界是 0 x 1. 3. , 2. x 2. 5.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [1];

创建边界。

磅= (0,2);乌兰巴托=(3、5);

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

x0 = [1,4];一个= [];%无线性约束b=[];Aeq=[];beq=[];x=fgoalattain(乐趣、x0、目标、体重、A、b、Aeq、beq、lb、ub)
局部最小值。约束满足。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] and p_ .2.=[4,1]。目标为[3,6],权重为[1,1],非线性约束为 x 2. 4.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [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

发现价值 F ( x ) 在解决方案。

乐趣(x)
ans=2×14.5778 7.1991

fgoalattain没有达到目标。尽管权重相等, F 1. ( x ) 离目标3的距离是1.58,还有 F 2. ( x ) 与目标6相差1.2。非线性约束阻碍了求解x平等地实现目标。

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

选择= optimoptions (“fgoalattain”,“显示”,“国际热核实验堆”);

目标函数是

F ( x ) = [ 2. + x - P 1. 2. 5. + x - P 2. 2. / 4. ]

在这里,p_1.= [2,3] and p_ .2.=(4 1)。目标为[3,6],权值为[1,1],线性约束为 x 1. + x 2. 4.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [1];

创建线性约束矩阵A.B代表A * x < =

一个= [1];b = 4;

为线性等式约束、边界和非线性约束创建空输入参数。

Aeq=[];beq=[];lb=[];ub=[];非LCON=[];

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

x0=[1,1];x=fgoalattain(乐趣、x0、目标、重量、A、b、Aeq、beq、lb、ub、非LCON、选项)
达到最大线搜索方向Iter F计数因子约束步长导数程序0 4 0 4 1 9-1 2.5 1-0.535 2 14-1.235e-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.757e-13 1 0.883 Hessian修改的局部最小可能值。满足约束。因尺寸当前搜索方向的e小于步长公差值的两倍,且满足的约束在约束公差值范围内。
x=1×22.0694 1.9306

报告的成就系数的正值表示fgoalattain没有找到满足目标的解决方案。

目标函数是

F ( x ) = [ 2. + x - P 1. 2. 5. + x - P 2. 2. / 4. ]

在这里,p_1.= [2,3] and p_ .2.=(4 1)。目标为[3,6],权值为[1,1],线性约束为 x 1. + x 2. 4.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [1];

创建线性约束矩阵A.B代表A * x < =

一个= [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不满足目标。

目标函数是

F ( x ) = [ 2. + x - P 1. 2. 5. + x - P 2. 2. / 4. ]

在这里,p_1.= [2,3] and p_ .2.=(4 1)。目标为[3,6],权值为[1,1],线性约束为 x 1. + x 2. 4.

创建目标函数、目标和权重。

p_1 =(2、3);p_2 = (4 1);有趣= @ (x)[2 +规范(x-p_1) ^ 2; 5 +规范(x-p_2) ^ 2/4];目标=(3、6);重量= [1];

创建线性约束矩阵A.B代表A * x < =

一个= [1];b = 4;

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

x0=[1,1];[x,fval,获得因子,exitflag,output,lambda]=fgoalattain(乐趣,x0,目标,权重,A,b)
局部最小值。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x=1×22.0694 1.9306
fval =2×13.1484 - 6.1484
可达系数=0.1484
exitflag=4
输出=带字段的结构:迭代次数:6次funcCount:29 lssteplength:1步长:4.0824e-13算法:“活动集”firstorderopt:[]冲突:6.7568e-13消息:“…”
λ=带字段的结构:下限:[2x1 double]上限:[2x1 double]eqlin:[0x1 double]eqnonlin:[0x1 double]ineqlin:0.5394 ineqnonlin:[0x1 double]

的正值attainfactor表明目标没有实现;您也可以通过比较来了解这一点未来值具有目标

这个lambda.ineqlin值为非零,表明线性不等式约束了解。

目标函数是

F ( x ) = [ 2. + x - P 1. 2. 5. + x - P 2. 2. / 4. ]

在这里,p_1.= [2,3] and 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];

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

A=11;b=4;

从根本上解决目标达成问题x0=[1]

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

每个组件未来值位于的相应组件之上目标,表示目标没有实现。

通过设定目标来增加满足第一个目标的重要性重量(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 (1)更接近于目标(1)fval (2)目标(2).当目标无法实现时,较小的权重更有可能使其组成部分接近满意,但当目标能够实现时,则会降低超额完成程度。

更改权重以使其相等未来值结果与目标的距离相等。

重量(2)=1/10;[x,fval]=fgoalattain(乐趣,x0,目标,重量,A,b)
局部最小值。约束满足。Fgoalattain停止是因为当前搜索方向的大小小于步长公差值的两倍,并且约束条件满足到约束公差值之内。
x=1×21.7613 - 2.2387
fval =2×12.6365 6.6365

约束可以保持结果未来值从同样接近目标。例如,设置上限为2x(2)

ub=[Inf,2];lb=[];Aeq=[];beq=[];[x,fval]=fgoalattain(乐趣,x0,目标,重量,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,目标,重量)

哪里我的乐趣是一个MATLAB®等功能

作用F=myfun(x)F=...%计算x处的函数值。

享乐也可以是匿名函数的函数句柄:

x=fgoalattain(@(x)sin(x.*x),x0,目标,重量);

fgoalattain通行证x目标函数和形状中的任何非线性约束函数x0论点例如,如果x0是一个5乘3的数组,那么fgoalattain通行证x享乐作为一个5乘3的阵列。然而fgoalattain乘线性约束矩阵A.Aeq具有x转换后x到列向量x(:)

要使目标函数尽可能接近目标值(即既不大于也不小于),请使用最佳选择设定相等目标计数选择的目标数量需要在目标值的附近。这样的目标必须被划分为向量的第一个元素F返回的享乐

假设目标函数的梯度也可以计算这个指定对象半径选择是符合事实的,由以下机构设定:

选择= optimoptions (“fgoalattain”,“SpecifyObjectiveGradient”,对)

在本例中,函数享乐必须在第二个输出参数中返回梯度值G(矩阵)x.梯度由偏导数组成dF/dxF在点x如果F向量的长度是多少Mx长度N,在那里N长度是多少x0,然后是梯度G属于F (x)是一个N——- - - - - -M矩阵在哪里G (i, j)的偏导数是什么F(j)关于x(我)(即J第列G是物体的梯度Jth目标函数F(j)).

请注意

设置指定对象半径符合事实的只有当问题没有非线性约束,或者问题有带约束的非线性约束时,该方法才有效指定约束约束梯度着手符合事实的。在内部,目标被折叠到约束中,因此解算器需要同时提供梯度(目标和约束),以避免估计梯度。

数据类型:字符|字符串|功能手柄

初始点,指定为实向量或实数组。解算器使用中的图元数x0以及x0要确定享乐接受。

例子:x0=[1,2,3,4]

数据类型:

要达到的目标,指定为实向量。fgoalattain试图找到最小的乘数γ这使得这些不等式适用于所有的在解决方案x:

F ( x ) 目标 重量 γ

假设重量是一个正向量:

  • 如果解算器找到一个点x同时实现所有目标,然后是实现因素γ是消极的,目标超额完成。

  • 如果解算器找不到点x同时实现所有目标,然后是实现因素γ是积极的,目标没有实现。

例子:(1 3 6)

数据类型:

相对成就因子,指定为实向量。fgoalattain试图找到最小的乘数γ这使得这些不等式适用于所有的在解决方案x:

F ( x ) 目标 重量 γ

目标全非零,以确保未完成或超额完成积极目标的比例相同,设置重量abs(目标)(主动目标是解决方案中阻碍进一步改进目标的一组目标。)

请注意

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

重量是积极的,,fgoalattain试图使目标函数小于目标值。要使目标函数大于目标值,请设置重量消极而不是积极。要看重量对溶液的影响,请看权重、目标和约束对目标实现的影响

为了使目标函数尽可能接近一个目标值,使用相等目标计数选项,并将目标指定为返回的向量的第一个元素享乐(见享乐选项)。有关示例,请参阅多目标达成优化

例子:abs(目标)

数据类型:

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

A.编码M线性不等式

A * x < =,

哪里x是的列向量N变量x(:)B列向量是M元素。

例如,考虑这些不等式:

x1.+ 2x2.≤10
3.x1.+ 4x2.≤ 20
5.x1.+ 6x2.≤ 30,

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

A=[1,2;3,4;5,6];b=[10;20;30];

例子:要指定x分量的总和等于或小于1,请使用A=一(1,N)b=1

数据类型:

线性不等式约束,指定为实向量。B是一个M-与元素相关的元素向量A.矩阵,如果你通过的话B作为行向量,解算器在内部进行转换B到列向量b(:). 对于大问题,请通过B作为稀疏向量。

B编码M线性不等式

A * x < =,

哪里x是的列向量N变量x(:)A.是一个大小矩阵M——- - - - - -N

例如,考虑这些不等式:

x1.+ 2x2.≤10
3.x1.+ 4x2.≤ 20
5.x1.+ 6x2.≤ 30

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

A=[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
2.x1.+ 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
2.x1.+ 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(磅)

如果元素数少于x0,解算器发出警告。

例子:要指定所有x分量都为正值,请使用磅= 0(大小(x0))

数据类型:

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

x(i)<=ub(i)对所有

如果努梅尔(ub)<努梅尔(x0)然后乌兰巴托指定

x(i)<=ub(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试图满足

    量表(x) = 0适用于ceq

例如,

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

哪里麦肯是一个MATLAB函数,如下所示:

函数[c,ceq] = mycon(x)%计算非线性不等式在x. ceq =…计算x处的非线性等式。

假设也可以计算约束的梯度这个指定约束约束梯度选择是符合事实的,由以下机构设定:

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

在本例中,函数nonlcon还必须在第三个和第四个输出参数中返回,GC,梯度c(x)GCeq,梯度ceq(x).看到非线性约束有关如何“条件化”渐变以在不接受提供的渐变的解算器中使用的说明,请参见。

如果nonlcon返回一个向量C属于M组件和x长度N,在那里N长度是多少x0,然后是梯度GC属于c(x)是一个N——- - - - - -M矩阵,GC(i,j)的偏导数是什么c (j)关于x(我)(即J第列GC是物体的梯度Jth不等式约束c (j)).同样,如果ceqP组件,梯度GCeq属于ceq(x)是一个N——- - - - - -P矩阵,GCeq (i, j)的偏导数是什么量表(j)关于x(我)(即J第列GCeq是物体的梯度Jth等式约束量表(j)).

请注意

设置指定约束约束梯度符合事实的只有当指定对象半径被设置为符合事实的。在内部,目标被折叠到约束中,因此解算器需要同时提供梯度(目标和约束),以避免估计梯度。

请注意

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

看到传递额外参数,以说明如何参数化非线性约束函数nonlcon,如有需要。

数据类型:字符|功能手柄|字符串

的输出,指定为优化选项最佳选择或一种结构,如优化集的回报。

有些选项不在计划中最佳选择陈列下表中以斜体显示这些选项。有关详细信息,请参阅查看选项

有关具有不同名称的选项的详细信息优化集看见当前和遗留选项名称

选项 描述
约束耐受性

约束冲突的终止容差,正标量。默认值是1 e-6.看到公差和停止标准

对于优化集,名字是TolCon

诊断学

显示有关要最小化或解决的功能的诊断信息。选项如下“开”“关闭”(默认)。

DiffMaxChange

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

DiffMinChange

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

陈列

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

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

  • “国际热核实验堆”在每次迭代时显示输出,并给出默认退出消息。

  • “国际热核实验堆详细说明”显示每次迭代的输出,并给出技术退出消息。

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

  • “notify-detailed”仅当功能不收敛时显示输出,并给出技术退出消息。

  • “最后一次”(default)只显示最终输出,并给出默认的退出消息。

  • 最后详细的仅显示最终输出,并给出技术退出消息。

相等目标计数

目标所需的目标数量享乐不相上下目标(非负整数)。必须将目标划分为以下几个要素:F. 默认值是0。有关示例,请参阅多目标达成优化

对于优化集,名字是进球数

有限差分步长

有限差分的标量或向量步长因子。设置有限差分步长指向向量v,正有限差分希腊字母表的第4个字母

δ=v.*符号′(x)。*最大值(绝对值(x),典型值x);

哪里符号′(x)=符号(x)除了符号′(0)=1.中心有限差分是

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

标量有限差分步长展开为向量。默认值为sqrt(每股收益)对于正向有限差分,以及每股收益^(1/3)对于中心有限差分。

对于优化集,名字是FinDiffielstep

有限差分类型

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

当估计这两种类型的有限差分时,该算法小心地遵守边界。例如,可能需要后退一步,而不是向前一步,以避免在边界之外的点进行计算。

对于优化集,名字是FinDiffType

功能公差

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

对于优化集,名字是TolFun

欢乐支票

检查是否表示目标函数和约束值有效。“开”当目标函数或约束返回复杂值时显示错误,. 默认值“关闭”显示无错误。

最大函数求值

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

对于优化集,名字是MaxFunEvals

最大迭代次数

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

对于优化集,名字是麦克斯特

MaxSQPIter

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

功绩函数

如果此选项设置为“多目标”(默认),使用目标实现价值函数。如果此选项设置为“singleobj”,使用铁铬镍铁合金价值函数。

最佳耐受性

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

对于优化集,名字是TolFun

OutputFcn

优化函数在每次迭代时调用的一个或多个用户定义函数。传递函数句柄或函数句柄的单元格数组。默认为无([]).看输出函数和绘图函数语法

绘图仪

显示算法执行时各种进度度量的绘图。从预定义绘图中选择或编写自己的绘图。传递名称、函数句柄或名称或函数句柄的单元格数组。对于自定义绘图函数,传递函数句柄。默认为无([]).

  • “optimplotx”绘制当前点。

  • “optimplotfunccount”绘制函数计数。

  • “optimplotfval”绘制目标函数值。

  • “优化冲突”绘制最大约束冲突。

  • “optimplotstepsize”绘制步长。

自定义打印函数使用与输出函数相同的语法。请参阅优化工具箱的输出函数™输出函数和绘图函数语法

对于优化集,名字是绘图仪

RelLineSrchBnd

线搜索步长上的相对界(实数非负标量值),以使x满足x()| ≤ relLineSrchBnd·max(|x()|,|典型的()|). 此选项提供对中位移大小的控制x当求解器所采取的步骤过大时。默认为none ([]).

RelLineSrchBndDuration

在中指定边界的迭代次数RelLineSrchBnd应该是主动的。默认值是1.

指定约束约束梯度

用户定义的非线性约束函数的梯度。当此选项设置为符合事实的,fgoalattain要求约束函数具有四个输出,如中所述nonlcon。当此选项设置为错误的(默认),fgoalattain使用有限差分估计非线性约束的梯度。

对于优化集,名字是渐变这些值是“开”“关闭”

指定对象半径

用户定义的目标函数的梯度。请参阅的说明享乐了解如何定义渐变。将此选项设置为符合事实的拥有fgoalattain使用用户定义的目标函数梯度。默认情况下,错误的,原因fgoalattain用有限差分估计梯度。

对于优化集,名字是GradObj这些值是“开”“关闭”

StepTolerance

端接公差x(正标量)。默认值为1 e-6.看到公差和停止标准

对于优化集,名字是收费

TolConSQP

内部迭代SQP约束违背(一个正标量)上的终止容忍。默认值是1 e-6

典型的

典型的x价值观中的元素数典型的等于中的元素数x0,起始点。默认值为的(numberofvariables, 1).这个fgoalattain函数使用典型的用于缩放梯度估计的有限差分。

使用并行

并行计算的指示。当符合事实的,fgoalattain并行地估计梯度。默认值是错误的.看到并行计算

例子:optimoptions(“fgoalattain”、“PlotFcn”、“optimplotfval”)

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

字段名 条目

客观的

目标函数享乐

x0

起始点x

目标

目标的实现

重量

目标的相对重要性因素

Aineq

线性不等式约束的矩阵

比内克

线性不等式约束向量

Aeq

线性等式约束的矩阵

贝基

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

nonlcon

非线性约束函数

解算器

“fgoalattain”

选项

选择创建最佳选择

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

数据类型:结构

输出参数

全部崩溃

解决方案,作为实向量或实数组返回。的大小x大小与x0.通常情况下,x是问题的局部解决方案,当出口滞后这是积极的。有关解决方案质量的信息,请参阅当解算器成功时

解的目标函数值,以实数组形式返回。通常,未来值=乐趣(x)

成就因子,作为实数返回。attainfactor包含的值γ在解决方案。如果attainfactor是消极的,目标已经超额完成;如果attainfactor是积极的,目标没有完全实现。看到目标

原因fgoalattain已停止,作为整数返回。

1.

函数收敛到一个解x

4.

搜索方向的大小小于指定的公差,约束违背小于选项.约束容忍度

5.

方向导数的大小小于规定的公差,约束违背小于选项.约束容忍度

0

超过迭代次数选项。麦克斯特在我ons或者超出了函数求值的数量选项。MaxFunctionEvaluations

-1

被输出函数或绘图函数停止

-2

没有找到可行的点。

有关优化过程的信息,以结构形式返回,包含此表中的字段。

迭代

迭代次数

funcCount

函数计算次数

lssteplength

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

违反合同

约束函数的极大值

步长

最后一次位移的长度x

算法

使用的优化算法

firstorderopt

一阶最优性测度

消息

退出消息

解决方案中的拉格朗日乘数,作为结构返回,包含此表中的字段。

降低

下界对应于

上面的

对应于乌兰巴托

ineqlin

对应于A.B

eqlin

对应的线性等式Aeq贝基

ineqnonlin

与方程组相对应的非线性不等式C在里面nonlcon

eqnonlin

对应于ceq在里面nonlcon

算法

有关fgoalattain算法和目标实现概念的讨论,请参见算法

替代功能

应用程序

这个优化活动编辑器任务为fgoalattain

扩展能力

在R2006a之前引入