主要内容

fminimax

解决约束极大极小问题

描述

fminimax寻找一个点最小化最大的一组目标函数。

这一问题包括任何类型的约束。在细节,fminimax寻找指定的最小的问题

最小值 x 马克斯 F ( x ) 这样 { c ( x ) 0 c e ( x ) = 0 一个 x b 一个 e x = b e l b x u b

在哪里b说真的是向量,一个Aeq矩阵,c(x),量表信(x),F(x)函数返回向量。F(x),c(x),量表信(x)可以是非线性函数。

x,,乌兰巴托可以通过向量或矩阵;看到矩阵的参数

你也可以解决不等式问题fminimax使用身份

马克斯 x 最小值 F ( x ) = 最小值 x 马克斯 ( F ( x ) )

你可以解决问题的形式

最小值 x 马克斯 | F ( x ) |

通过使用AbsoluteMaxObjectiveCount选择;看到解决使用绝对值极大极小问题的目标

例子

x= fminimax (有趣的,x0)起价x0并找到一个极小极大的解决方案x描述的功能有趣的

请注意

传递额外的参数解释如何将额外的参数传递给目标函数和非线性约束函数,如果必要的。

例子

x= fminimax (有趣的,x0,一个,b)解决了极大极小问题的线性不等式* x≤b

x= fminimax (有趣的,x0,一个,b,Aeq,说真的)解决了极大极小问题的线性等式Aeq * x =说真的。如果不存在不平等,集一个= []b = []

例子

x= fminimax (有趣的,x0,一个,b,Aeq,说真的,,乌兰巴托)解决了极大极小问题的边界x乌兰巴托。如果不存在平等,集Aeq = []说真的= []。如果x(我)下面是无界的,准备好了吗磅(i) =负无穷;如果x(我)上面是无界的,准备好了吗乌兰巴托(i) =正无穷

请注意

看到迭代可以违反约束

请注意

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

例子

x= fminimax (有趣的,x0,一个,b,Aeq,说真的,,乌兰巴托,nonlcon)解决了非线性极大极小问题的不平等c (x)或平等量表(x)中定义的nonlcon。函数优化等c (x)≤0量表(x) = 0。如果不存在边界,设置磅= []乌兰巴托= [],或两者兼而有之。

例子

x= fminimax (有趣的,x0,一个,b,Aeq,说真的,,乌兰巴托,nonlcon,选项)解决了极大极小问题优化选项中指定选项。使用optimoptions设置这些选项。

x= fminimax (问题)解决了极大极小问题问题描述的结构问题

例子

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

例子

(x,fval,maxfval,exitflag,输出)= fminimax (___)此外返回最大价值目标函数的解决方案x,一个值exitflag描述的退出条件fminimax,一个结构输出的信息优化过程。

例子

(x,fval,maxfval,exitflag,输出,λ)= fminimax (___)此外返回一个结构λ字段包含拉格朗日乘数法的解决方案吗x

例子

全部折叠

创建一个的情节因为函数和他们的最大时间间隔(π-π,)

t = linspace(π-π);情节(t,罪(t)的r -)举行情节(t, cost,“b -”);情节(t,马克斯(罪(t),因为(t)),“柯”)传说(“罪(t)”,“因为(t)”,“马克斯(罪(t),因为(t))”,“位置”,“西北”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。一个或多个行显示的值只使用这些对象标记代表罪(t),因为(t)马克斯(罪(t),因为(t))。

情节展示了两个局部最小值最大的一个接近1,其他附近的2。找到最低接近1。

有趣= @ (x) [sin (x), cos (x));x0 = 1;x0, x1 = fminimax(有趣)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x1 = 0.7854

找到附近的最低2。

x0 = 2;x0, x2 = fminimax(有趣)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x2 = -2.3562

这个例子的目标函数是线性加常数。描述和目标函数的情节,看到的比较fminimax和fminunc

设置目标函数的三个线性函数形式 d o t ( x , v ) + v 0 为三个向量 v 和三个常量 v 0

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];

找到极大极小点的不平等(1)+ 3 * x (2) < = 4

一个= [1,3];b = 4;x0 = [1, 2];x = fminimax(乐趣,x0, A, b)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×2-5.8000 - 0.6000

这个例子的目标函数是线性加常数。描述和目标函数的情节,看到的比较fminimax和fminunc

设置目标函数的三个线性函数形式 d o t ( x , v ) + v 0 为三个向量 v 和三个常量 v 0

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];

设定界限,2 < = x (1) < = 21 < = x (2) < = 1并解决从极小极大问题(0,0)

磅= (2,1);乌兰巴托= (2,1);x0 = (0,0);一个= [];%没有线性约束b = [];Aeq = [];说真的= [];[x, fval] = fminimax (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×2-0.0000 - 1.0000
fval =1×33.0000 -2.0000 3.0000

在这种情况下,解决方案不是唯一的。许多点满足约束和有相同的极大极小值。情节表面代表最大的三个目标函数,和情节红线显示相同的极大极小值的点。

(X, Y) = meshgrid (linspace (2, 2), linspace (1,1));Z = max(乐趣([X (:), Y (:))), [], 2);Z =重塑(Z,大小(X));冲浪(X, Y, Z,“线型”,“没有”)视图(-118年28)线((2,0),[1],[3 3],“颜色”,“r”,“线宽”,8)

图包含一个坐标轴对象。坐标轴对象包含2表面类型的对象,线。

这个例子的目标函数是线性加常数。描述和目标函数的情节,看到的比较fminimax和fminunc

设置目标函数的三个线性函数形式 d o t ( x , v ) + v 0 为三个向量 v 和三个常量 v 0

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];

unitdisk函数是非线性不等式约束 x 2 1

类型unitdisk
功能测查[c] = unitdisk c (x) = x (1) ^ 2 + x (2) ^ 2 - 1;测查= [];

解决极小极大问题的主题unitdisk约束,从x0 = (0,0)

x0 = (0,0);一个= [];%没有其他约束b = [];Aeq = [];说真的= [];磅= [];乌兰巴托= [];nonlcon = @unitdisk;x = fminimax (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,nonlcon)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×2-0.0000 - 1.0000

fminimax最多可以最小化 F ( x ) | F ( x ) | 第一数的值 通过使用AbsoluteMaxObjectiveCount选择。以最小化的绝对值 k 的目标,目标函数值,以便安排 F 1 ( x ) 通过 F k ( x ) 绝对的目标是最小化,并设置AbsoluteMaxObjectiveCount选项k

在这个例子中,最小化最大的因为,指定作为第一个目标,集AbsoluteMaxObjectiveCount为1。

有趣= @ (x) [sin (x), cos (x));选择= optimoptions (“fminimax”,“AbsoluteMaxObjectiveCount”1);x0 = 1;一个= [];%没有约束b = [];Aeq = [];说真的= [];磅= [];乌兰巴托= [];nonlcon = [];x1 = fminimax (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,nonlcon,选项)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x1 = 0.7854

试着从x0 = 2

x0 = 2;x2 = fminimax (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,nonlcon,选项)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x2 = -3.1416

绘制函数。

t = linspace(π-π);情节(t,马克斯(abs (sin (t)),因为(t)))

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

看到的效果AbsoluteMaxObjectiveCount选择,比较这阴谋情节的例子最大的罪恶,因为最小化

获得极大极小点的位置和目标函数的值。描述和目标函数的情节,看到的比较fminimax和fminunc

设置目标函数的三个线性函数形式 d o t ( x , v ) + v 0 为三个向量 v 和三个常量 v 0

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];

设置初始点(0,0)并找到极大极小点和价值。

x0 = (0,0);[x, fval] = fminimax(有趣,x0)
局部最小值。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×2-2.5000 - 2.2500
fval =1×31.7500 1.7500 1.7500

所有三个目标函数极大极小点都包含相同的值。无约束问题通常有至少两个目标是平等的解决方案,因为如果一个点不是一个局部最小值为任何目的,只有一个目标的最大值,然后可以降低的最大目标。

这个例子的目标函数是线性加常数。描述和目标函数的情节,看到的比较fminimax和fminunc

设置目标函数的三个线性函数形式 d o t ( x , v ) + v 0 为三个向量 v 和三个常量 v 0

一个= (1,1);b = (1, 1);c = [0, 1];a0 = 2;b0 = 3;c0 = 4;有趣= @ (x) [x * + a0, * b + b0, x * c + c0];

找到极大极小点的不平等(1)+ 3 * x (2) < = 4

一个= [1,3];b = 4;x0 = [1, 2];

为迭代显示设置选项,并获得所有的解算器输出。

选择= optimoptions (“fminimax”,“显示”,“通路”);Aeq = [];%没有其他约束说真的= [];磅= [];乌兰巴托= [];nonlcon = [];[x, fval maxfval, exitflag,输出,λ)=fminimax(有趣,x0, A、b Aeq,说真的,磅,乌兰巴托,nonlcon,选项)
马克斯线搜索目标定向Iter F-count价值约束steplength导数过程0 4 0 6 1 9 5 0 1 4.889 8.882 e-16 1 -0.302 0.981 - 2 14黑森修改两次3 19 3.4 -0.302 8.132 e-09 1黑森修改局部最小值的两倍。约束满足。fminimax停止,因为当前的搜索方向的大小小于两倍的价值内一步满足尺寸公差和约束约束宽容的价值。
x =1×2-5.8000 - 0.6000
fval =1×3-3.2000 3.4000 3.4000
maxfval = 3.4000
exitflag = 4
输出=结构体字段:迭代:4 funcCount: 19 lssteplength: 1 stepsize: 6.0684平台以及算法:“激活集”firstorderopt: [] constrviolation: 8.1323 e-09消息:“局部最小值。约束满足....”
λ=结构体字段:低(2 x1双):上:[2 x1双]eqlin: [0 x1双]eqnonlin: [0 x1双]ineqlin: 0.2000 ineqnonlin: [0 x1双]

检查返回的信息:

  • 两个目标函数值相等的解决方案。

  • 4迭代和19中的求解收敛函数评估。

  • lambda.ineqlin值为零,表明线性约束的解决方案很活跃。

输入参数

全部折叠

目标函数,指定为一个函数处理或函数名。有趣的是一个函数,它接受一个向量x并返回一个向量F的目标函数值x。你可以指定函数有趣的作为一个函数的函数处理文件:

x = fminimax (@myfun x0,目标,重量)

在哪里myfunMATLAB是一种®等功能

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

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

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

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

最小化最坏的绝对值的一些元素的向量F(x)(即最小{最大abs {F(x}}),这些目标分割成F和使用的第一个元素optimoptions设置AbsoluteMaxObjectiveCount选择这些目标的数量。这些目标必须被划分为向量的第一个元素F返回的有趣的。例如,看到的解决使用绝对值极大极小问题的目标

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

选择= optimoptions (“fminimax”,“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))。如果您定义F作为一个数组,然后适用于前面的讨论F (:)的线性排序F数组中。在任何情况下,G是一个二维矩阵。

请注意

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

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

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

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

数据类型:

线性不等式约束,指定为一个真正的矩阵。一个是一个——- - - - - -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)非线性不等式约束的数组xfminimax试图满足

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

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

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

例如,

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

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

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

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

选择= optimoptions (‘fminimax’,‘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,请参阅当前和遗留选项名称

选项 描述
AbsoluteMaxObjectiveCount

的元素F(x最小化的绝对值)F。看到解决使用绝对值极大极小问题的目标

optimset,名字是MinAbsMax

ConstraintTolerance

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

optimset,名字是TolCon

诊断

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

DiffMaxChange

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

DiffMinChange

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

显示

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

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

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

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

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

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

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

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

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

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

optimset,名字是GradConstr和值“上”“关闭”

SpecifyObjectiveGradient

由用户定义的目标函数的梯度。参考的描述有趣的看到如何定义梯度。设置这个选项真正的fminimax使用一个用户定义的目标函数的梯度。默认的,,使fminimax估计使用有限差分梯度。

optimset,名字是GradObj和值“上”“关闭”

StepTolerance

终止上公差x(积极的标量)。默认是1 e-6。看到公差和停止条件

optimset,名字是TolX

TolConSQP

终止公差内迭代SQP约束违反(积极的标量)。默认值是1 e-6

TypicalX

典型的x值。元素的数量TypicalX等于元素的数量x0的起点。默认值是的(numberofvariables, 1)。的fminimax函数使用TypicalX为扩展有限差分梯度估计。

UseParallel

选择使用并行计算。此选项设置的时候出现真正的,fminimax估计并行梯度。默认值是。看到并行计算

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

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

字段名 条目

客观的

目标函数有趣的

x0

初始点x

Aineq

矩阵线性不等式约束

bineq

向量的线性不等式约束

Aeq

矩阵线性等式约束

说真的

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

nonlcon

非线性约束函数

解算器

“fminimax”

选项

选择创建optimoptions

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

数据类型:结构体

输出参数

全部折叠

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

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

最大目标函数值的解决方案,作为一个真正的标量返回。maxfval = max (fval (:))

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

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

算法

fminimax解决了极大极小问题,转换成一个目标达到情况的问题,然后解决问题转换后的目标达到情况使用fgoalattain。转换所有目标0和权重设置为1。看到方程1多目标优化算法

选择功能

应用程序

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

扩展功能

版本历史

之前介绍过的R2006a