主要内容

fgoalattain

解决多目标的目标实现的问题

描述

fgoalattain制定解决目标达到情况问题,最小化一个多目标优化问题。

fgoalattain找到指定的最小的问题

最小化 x , γ γ 这样 { F ( x ) 重量 γ 目标 c ( x ) 0 c e ( x ) = 0 一个 x b 一个 e x = b e l b x u b

重量,目标,b,说真的是向量,一个Aeq矩阵,F(x),c(x),量表信(x),是函数返回向量。F(x),c(x),量表信(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 = []说真的= []。如果x(我)下面是无界的,准备好了吗磅(i) =负无穷;如果x(我)上面是无界的,准备好了吗乌兰巴托(i) =正无穷

请注意

看到迭代可以违反约束

请注意

如果指定的输入范围不一致的问题,输出xx0和输出fval[]

例子

x= fgoalattain (有趣的,x0,目标,重量,一个,b,Aeq,说真的,,乌兰巴托,nonlcon)解决目标达到情况问题的非线性不等式c (x)或平等量表(x)中定义的nonlconfgoalattain优化,c (x)≤0量表(x) = 0。如果不存在边界,设置磅= []乌兰巴托= [],或两者兼而有之。

例子

x= fgoalattain (有趣的,x0,目标,重量,一个,b,Aeq,说真的,,乌兰巴托,nonlcon,选项)解决了优化选项中指定的目标达到情况问题选项。使用optimoptions设置这些选项。

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

例子

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

例子

(x,fval,attainfactor,exitflag,输出)= fgoalattain (___)此外回报实现因素的解决方案x,一个值exitflag描述的退出条件fgoalattain,一个结构输出的信息优化过程。

例子

(x,fval,attainfactor,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],线性约束 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];

创建线性约束矩阵一个b代表A * x < =

一个= [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不符合目标。因为重量是相等的,解算器underachieves相同数量的每个目标。

目标函数是

F ( x ) = ( 2 + x - - - - - - p 1 2 5 + x - - - - - - p 2 2 / 4 ]

在这里,p_1=[2、3]和p_2= (4 1)。目标是(3、6),重量是[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 = [];说真的= [];x = fgoalattain(有趣,x0,目标,体重,A, b, Aeq,说真的,磅,乌兰巴托)
局部最小值。约束满足。fgoalattain停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×22.6667 - 2.3333

找到的价值 F ( x ) 在解决方案。

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

fgoalattain满足以上的目标。因为重量是相等的,解算器overachieves相同数量的每个目标。

目标函数是

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

在非线性约束函数norm4.m文件。

类型norm4
功能测查[c] = norm4测查(x) = [];c =规范(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的目标是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]和p_2= (4 1)。我们的目标是(3、6),重量是[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];

创建线性约束矩阵一个b代表A * x < =

一个= [1];b = 4;

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

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

设置一个初始点(1,1)和解决目标达到情况的问题。

x0 = [1];x = fgoalattain(有趣,x0,目标,体重,A, b, Aeq,说真的,磅,乌兰巴托,nonlcon,选项)
达到最大线搜索定向Iter F-count因素约束steplength导数过程0 4 0 4 1 9 1 0.883 0.2813 -1.712 2.5 -0.535 1 2 14 e-08 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.666 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],线性约束 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];

创建线性约束矩阵一个b代表A * x < =

一个= [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],线性约束 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];

创建线性约束矩阵一个b代表A * x < =

一个= [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 lssteplength: 1 stepsize: 4.0824 e-13算法:“激活集”firstorderopt: [] constrviolation: 6.7568 e-13消息:“局部最小值。约束满足....”
λ=结构体字段:低(2 x1双):上:[2 x1双]eqlin: [0 x1双]eqnonlin: [0 x1双]ineqlin: 0.5394 ineqnonlin: [0 x1双]

积极的价值attainfactor表明目标并没有实现;你也可以看到这通过比较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]。

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

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

一个= [1];b = 4;

从重点解决目标实现问题x0 = [1]

x0 = [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同样接近目标。例如,设置一个上限2x (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,目标,重量)

在哪里myfunMATLAB是一种®等功能

函数F = myfun F (x) =在x %计算函数值。

有趣的还可以为一个匿名函数是一个函数处理:

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

fgoalattain通过x任何非线性目标函数和约束函数的形状x0论点。例如,如果x0是5-by-3数组,那么fgoalattain通过x有趣的作为一个5-by-3数组。然而,fgoalattain增加线性约束矩阵一个Aeqx转换后x的列向量x (:)

使目标函数尽可能接近目标价值(即既不大于或小于),使用optimoptions设置EqualityGoalCount选择目标的数量需要在附近的目标价值。这样的目标必须被划分为向量的第一个元素F返回的有趣的

假设目标函数的梯度也可以计算SpecifyObjectiveGradient选择是真正的,规定:

选择= optimoptions (“fgoalattain”,“SpecifyObjectiveGradient”,真正的)

在这种情况下,函数有趣的必须返回,在第二个输出参数,梯度值G(矩阵)x。梯度的偏导数dF / dx每一个F在点x。如果F是一个向量的长度x长度n,在那里n的长度是x0,那么梯度GF (x)是一个n——- - - - - -矩阵G (i, j)的偏导数是吗F (j)关于x(我)(即jth列G的梯度是吗jth目标函数F (j))。

请注意

设置SpecifyObjectiveGradient真正的是有效的只有当没有非线性约束问题,或者这个问题有一个非线性约束SpecifyConstraintGradient设置为真正的。在内部,目标是并入约束,因此需要解决两个梯度(目标和约束)为了避免提供估算梯度。

数据类型:字符|字符串|function_handle

初始点,指定为一个真正的向量或真正的数组。解决使用中元素的数量x0和的大小x0确定变量的数量和大小有趣的接受。

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

数据类型:

达到目标,指定为一个真正的向量。fgoalattain试图找到最小的乘数γ让这些不平等现象持有的所有值在解决方案x:

F ( x ) 目标 重量 γ

假设重量是一个积极的向量:

  • 如果解算器发现一个点x同时达到所有的目标,然后实现因素γ是负的,目标是overachieved。

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

例子:(1 3 6)

数据类型:

相对程度的因素,指定为一个真正的向量。fgoalattain试图找到最小的乘数γ让这些不平等现象持有的所有值在解决方案x:

F ( x ) 目标 重量 γ

时的值目标所有非零,以确保相同的不良比例或overattainment活跃的目标,集重量abs(目标)。(活动目标是目标的设置壁垒,进一步改善目标的解决方案)。

请注意

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

重量是正的,fgoalattain试图使目标函数小于目标价值。使目标函数值大于目标,集重量正面而非负面的。看到一些影响权重的解决方案,明白了权重的影响,目标,在实现目标和约束

使目标函数尽可能接近目标价值,使用EqualityGoalCount选择并指定目标返回的向量的第一个元素有趣的(见有趣的选项)。例如,看到的多目标目标达到情况优化

例子:abs(目标)

数据类型:

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

一个编码线性不等式

A * x < =,

在哪里x的列向量N变量x (:),b是一个列向量元素。

例如,考虑这些不平等:

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

输入以下命令来指定不等式约束条件。

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

例子:指定的x分量总和为1或更少,使用一个= 1 (1,N)b = 1

数据类型:

线性不等式约束,指定为一个真正的向量。b是一个元向量相关一个矩阵。如果你通过b作为一个行向量,解决内部转换b的列向量b (:)。对于大型问题,通过b作为一个稀疏的向量。

b编码线性不等式

A * x < =,

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

例如,考虑这些不平等:

x1+ 2x2≤10
3x1+ 4x2≤20
5x1+ 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];说真的= (10、20);

例子:指定的x分量之和为1,使用Aeq = 1 (1, N)说真的= 1

数据类型:

线性等式约束,指定为一个真正的向量。说真的是一个元向量相关Aeq矩阵。如果你通过说真的作为一个行向量,解决内部转换说真的的列向量说真的(:)。对于大型问题,通过说真的作为一个稀疏的向量。

说真的编码线性等式

Aeq * x =说真的,

在哪里x的列向量N变量x (:),Aeq是一个矩阵的大小——- - - - - -N

例如,考虑这些等式:

x1+ 2x2+ 3x3= 10
2x1+ 4x2+x3= 20。

输入以下命令来指定等式约束。

Aeq = [1、2、3、2、4、1];说真的= (10、20);

例子:指定的x分量之和为1,使用Aeq = 1 (1, N)说真的= 1

数据类型:

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

x(我)> =磅(我)对所有

如果元素个数(磅)<元素个数(x0),然后指定

x(我)> =磅(我)1我< < = =元素个数(磅)

如果有更少的元素比x0,解决者发出警告。

例子:指定,所有的x分量都是积极的,使用磅= 0(大小(x0))

数据类型:

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

x (i) < =乌兰巴托(我)对所有

如果元素个数(乌兰巴托)<元素个数(x0),然后乌兰巴托指定

x (i) < =乌兰巴托(我)1我< < = =元素个数(乌兰巴托)

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

例子:指定所有的x分量都小于1,使用乌兰巴托= 1(大小(x0))

数据类型:

非线性约束条件,指定为一个函数处理或函数名。nonlcon是一个函数,它接受一个向量或数组x并返回两个数组,c (x)量表(x)

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

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

  • 量表(x)是非线性等式约束的数组xfgoalattain试图满足

    量表(x) = 0所有条目的量表信

例如,

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

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

功能测查[c] = mycon c (x) =…%计算非线性不等式测查x =…在x %计算非线性等式。

假设的梯度约束也可以计算SpecifyConstraintGradient选择是真正的,规定:

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

在这种情况下,函数nonlcon还必须返回,在第三和第四输出参数,GC的梯度,c (x),GCeq的梯度,量表(x)。看到非线性约束解释如何“conditionalize”梯度用于解决者,不接受提供的梯度。

如果nonlcon返回一个向量c组件和x长度n,在那里n的长度是x0,那么梯度GCc (x)是一个n——- - - - - -矩阵,GC (i, j)的偏导数是吗c (j)关于x(我)(即jth列GC的梯度是吗jth不等式约束c (j))。同样地,如果量表信p组件,梯度GCeq量表(x)是一个n——- - - - - -p矩阵,GCeq (i, j)的偏导数是吗量表(j)关于x(我)(即jth列GCeq的梯度是吗jth等式约束量表(j))。

请注意

设置SpecifyConstraintGradient真正的是有效的只有当SpecifyObjectiveGradient被设置为真正的。在内部,目标是并入约束,因此需要解决两个梯度(目标和约束)为了避免提供估算梯度。

请注意

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

看到传递额外的参数的解释如何参数化非线性约束函数nonlcon,如果必要的。

数据类型:字符|function_handle|字符串

优化选项,指定的输出optimoptions或结构等optimset的回报。

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

有不同的名称的选项的详细信息optimset,请参阅当前和遗留选项名称

选项 描述
ConstraintTolerance

终止公差约束违反,积极的标量。默认值是1 e-6。看到公差和停止条件

optimset,名字是TolCon

诊断

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

DiffMaxChange

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

DiffMinChange

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

显示

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

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

  • “通路”在每个迭代中显示输出,给出了默认退出消息。

  • “iter-detailed”在每个迭代中显示输出,给出了技术退出消息。

  • “通知”显示输出只有在函数不收敛,并给出默认退出消息。

  • “notify-detailed”显示输出只有在函数不收敛,并给出技术退出消息。

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

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

EqualityGoalCount

数量的目标所需的目标有趣的等于我们的目标目标(非负整数)。目标必须分区的前几个元素F。默认值是0。例如,看到的多目标目标达到情况优化

optimset,名字是GoalsExactAchieve

FiniteDifferenceStepSize

标量或矢量步长因子有限的差异。当您设置FiniteDifferenceStepSize一个向量v向前,有限的差异δ

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

在哪里信号′(x) =标志(x)除了信号′(0)= 1。中央有限的差异是

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

标量FiniteDifferenceStepSize扩大到一个向量。默认值是sqrt (eps)向前有限的差异,eps ^ (1/3)中央有限的差异。

optimset,名字是FinDiffRelStep

FiniteDifferenceType

差分类型用来估计渐变“前进”(默认),或“中央”(中心)。“中央”需要两倍的功能评估,但通常是更准确的。

算法时小心遵守限差分估计两种类型。例如,它可能倒退,而不是向前一步,以避免评估范围之外的点。

optimset,名字是FinDiffType

FunctionTolerance

终止宽容的函数值(积极的标量)。默认值是1 e-6。看到公差和停止条件

optimset,名字是TolFun

FunValCheck

检查表示目标函数和约束值是否有效。“上”会显示一个错误当目标函数或约束返回一个值,是复杂的,,或。默认的“关闭”显示没有错误。

MaxFunctionEvaluations

最大数量的评估函数允许(正整数)。默认值是100 * numberOfVariables。看到公差和停止条件迭代和函数计算

optimset,名字是MaxFunEvals

MaxIterations

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

optimset,名字是麦克斯特

MaxSQPIter

最大数量的SQP迭代允许(正整数)。默认值是10 *马克斯(numberOfVariables numberOfInequalities + numberOfBounds)

MeritFunction

如果将此选项设置“multiobj”(默认),使用目标达到情况绩效函数。如果将此选项设置“singleobj”,可以使用fmincon价值函数。

OptimalityTolerance

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

optimset,名字是TolFun

OutputFcn

一个或多个用户定义的函数,每个迭代的优化函数调用。通过一个函数处理或处理单元阵列的功能。默认是没有([])。看到输出函数和情节函数的语法

PlotFcn

情节在算法执行时出现进步的各种措施。从预定义的情节或编写自己的选择。通过一个名称,名称或函数的函数处理或单元阵列处理。自定义绘制函数,通过函数处理。默认是没有([])。

  • “optimplotx”当前点的阴谋。

  • “optimplotfunccount”情节数的函数。

  • “optimplotfval”阴谋的目标函数值。

  • “optimplotconstrviolation”情节的最大约束违反。

  • “optimplotstepsize”情节的步长。

自定义函数使用相同的语法作为输出函数。看到输出函数优化工具箱输出函数和情节函数的语法

optimset,名字是PlotFcns

RelLineSrchBnd

相对绑定(一个真正的负的标量值)的搜索步长,这样的总位移x满足x()|≤relLineSrchBnd·马克斯(|x()| |typicalx()|)。此选项提供了控制位移的大小x当解决步骤太大。默认是没有([])。

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的起点。默认值是的(numberofvariables, 1)。的fgoalattain函数使用TypicalX为扩展有限差分梯度估计。

UseParallel

并行计算。当真正的,fgoalattain估计并行梯度。默认值是。看到并行计算

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

问题的结构,指定为与此表的字段结构。

字段名 条目

客观的

目标函数有趣的

x0

初始点x

目标

目标的实现

重量

目标的相对重要性因素

Aineq

矩阵线性不等式约束

bineq

向量的线性不等式约束

Aeq

矩阵线性等式约束

说真的

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

nonlcon

非线性约束函数

解算器

“fgoalattain”

选项

选择创建optimoptions

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

数据类型:结构体

输出参数

全部折叠

解决方案,作为真正的向量或返回数组。的大小x是一样的尺寸吗x0。通常情况下,x是当地的解决问题的办法exitflag是正的。信息的质量解决方案,明白了当解决成功

目标函数值的解决方案,作为真正的数组返回。一般来说,fval=有趣的(x)

程度的因素,作为一个实数返回。attainfactor包含的价值γ在解决方案。如果attainfactor是负的,目标已经overachieved;如果attainfactor是正的,目标是自尊。看到目标

原因fgoalattain停止,返回一个整数。

1

功能融合解决方案x

4

搜索方向的大小小于指定的公差,和约束违反还不到options.ConstraintTolerance

5

方向导数的大小小于指定的公差,和约束违反还不到options.ConstraintTolerance

0

迭代次数超过options.MaxIterations或功能评估的数量超过了options.MaxFunctionEvaluations

1

停在一个输出函数或函数

2

没有找到可行点。

优化过程的信息,作为结构返回这个表的字段。

迭代

采取的迭代次数

funcCount

数量的功能评估

lssteplength

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

constrviolation

最大的约束功能

stepsize

最后一个位移的长度x

算法

优化算法

firstorderopt

的一阶最优性

消息

退出消息

拉格朗日乘数法在解决方案,作为结构返回这个表的字段。

较低的

下界对应

上界对应乌兰巴托

ineqlin

线性不等式对应一个b

eqlin

线性等式对应Aeq说真的

ineqnonlin

非线性不等式对应cnonlcon

eqnonlin

非线性平等对应量表信nonlcon

算法

的描述fgoalattain算法和目标实现概念的讨论,请参阅算法

选择功能

应用程序

优化住编辑任务提供了一个可视化界面fgoalattain

扩展功能

版本历史

之前介绍过的R2006a