patternsearch

使用模式搜索查找函数的最小值

描述

实例

x= patternsearch (有趣的,x0)找到一个局部最小值,x,指向函数句柄有趣的它计算目标函数的值。x0为模式搜索算法指定初始点的实向量。

请注意

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

实例

x= patternsearch (有趣的,x0,A.,B)最小化有趣的服从线性不等式A*xB.看到线性不等式约束

x= patternsearch (有趣的,x0,A.,B,Aeq,说真的)最小化有趣的服从线性等式Aeq * x=说真的A*xB.如果不存在线性不等式,集合一个= []b = []

实例

x= patternsearch (有趣的,x0,A.,B,Aeq,说真的,,乌兰巴托)定义中设计变量的一组上下限x,所以解总是在这个范围内x乌兰巴托.如果不存在线性等式,集合Aeq=[]说真的= [].如果x(我)没有下界,集合磅(i) =负无穷.如果x(我)没有上界,集合乌兰巴托(i) =正无穷

实例

x= patternsearch (有趣的,x0,A.,B,Aeq,说真的,,乌兰巴托,nonlcon)将最小化为非线性不等式c (x)或平等ceq(x)中定义的nonlconpatternsearch优化有趣的这样c (x)≤0量表(x) = 0.如果不存在边界,则设置lb=[],ub=[],或两者兼而有之。

实例

x= patternsearch (有趣的,x0,A.,B,Aeq,说真的,,乌兰巴托,nonlcon,选项)最小化有趣的中的优化选项选项使用最佳选择设置这些选项。如果没有非线性不等式或等式约束,则集合nonlcon = []

x= patternsearch (问题)求最小值问题中所描述的结构问题

实例

[x,fval]=模式搜索(___),对于任何语法,返回目标函数的值有趣的在解决方案x

实例

[x,fval,出口滞后,输出]=模式搜索(___)额外回报出口滞后的退出条件patternsearch,结构输出关于优化过程的信息。

例子

全部折叠

将无约束问题最小化patternsearch解算器。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

求最小值,从这个点开始(0,0)

x0=[0,0];x=patternsearch(fun,x0)
优化终止:网格尺寸小于选项。网格公差。X = -0.7037 -0.1860

最小化一个受线性不等式约束的函数。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

设置两个线性不等式约束。

一个= [3 2;4、7];b = (1; 8);

求最小值,从这个点开始[0.5, -0.5]

x0=[0.5,-0.5];x=patternsearch(乐趣,x0,A,b)
优化终止:网格大小小于options.MeshTolerance.x=5.2824-1.8758

求只有有限约束条件的函数的最小值。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

求最小值$0 \le x(1) \le\ inty $$-\infty\le x(2)\le-3$

磅=(0,负);乌兰巴托=[正无穷,3];一个= [];b = [];Aeq = [];说真的= [];

求最小值,从这个点开始(1、5)

x0 =(1、5);x = patternsearch (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托)
优化终止:网格尺寸小于选项。网格公差。X = 0.1880 -3.0000

求一个函数在非线性不等式约束下的最小值。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

创建非线性约束

$ $ \压裂{{xy}}{2} +{\离开({x + 2} \右)^ 2}+ \压裂{{{{\离开({y - 2} & # xA; \右)}^ 2}}}{2}\ le 2。$$

为此,在MATLAB路径上,将以下代码保存到一个名为ellipsetilt.m

作用[c,ceq] = ellipsetilt(x);C = x(1)*x(2)/2 + (x(1)+2)^2 + (x(2)-2;

开始patternsearch从起始点开始(2, 2)

x0 = (2, 2);一个= [];b = [];Aeq = [];说真的= [];磅= [];乌兰巴托= [];nonlcon = @ellipsetilt;x=模式搜索(趣味、x0、A、b、Aeq、beq、lb、ub、非LCON)
优化已终止:网格大小小于options.MeshTolerance和约束冲突小于options.ConstraintTolerance。x=-1.5144 0.0874

设置选项来观察进程patternsearch解决方案的过程。

创建以下两个变量的目标函数。在你的MATLAB®路径,将以下代码保存到名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

选项给出迭代显示,并在每次迭代中绘制目标函数。

选择= optimoptions (“patternsearch”,“显示”,“国际热核实验堆”,“PlotFcn”, @psplotbestf);

从该点出发,求目标的无约束最小值(0,0)

x0 = (0,0);一个= [];b = [];Aeq = [];说真的= [];磅= [];乌兰巴托= [];nonlcon = [];x=模式搜索(趣味、x0、A、b、Aeq、beq、lb、ub、非LCON、选项)

Iter f-count f (x) MeshSize方法-5.88607 0 1 1 1 1 4 2成功的调查2 8 -5.88607 - 1完善网3 12 -5.88607 0.5细化网格4 16 -5.88607 - 0.25细化网格(输出修剪)63 218 -7.02545 1.907 e-06细化网格64 221 -7.02545 3.815 e-06成功调查65 225 -7.02545 1.907 e-06细化网格66 229 -7.02545 9.537 e-07细化网格优化终止:网目尺寸小于选项。网目公差。X = -0.7037 -0.1860

找到函数的最小值,并报告最小值的位置和值。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

从点开始查找目标的无约束最小值(0,0).返回最小值的位置,x的价值有趣的(x)

x0 = (0,0);[x, fval] = patternsearch(有趣,x0)
优化终止:网格尺寸小于选项。网格公差。X = -0.7037 -0.1860 fval = -7.0254

检查patternsearch求解过程中,获取所有输出。

创建以下两个变量的目标函数。在MATLAB®路径上,将以下代码保存到一个名为psobj.m

作用y = psobj (x) y = exp (- x (1) ^ 2 x (2) ^ 2) * (1 + 5 * x (1) + 6 * x x (1) (2) + 12 * * cos (x (2)));

设置目标函数为@psobj

有趣= @psobj;

从点开始查找目标的无约束最小值(0,0).返回解决方案,x,目标函数在解处的值,有趣的(x)、退出标志和输出结构。

x0 = (0,0);[x, fval exitflag、输出]= patternsearch(有趣,x0)
优化终止:网格尺寸小于选项。网格公差。x = -0.7037 -0.1860 fval = -7.0254 exitflag = 1 output = struct with fields: function: @psobj problemtype: 'unconstrained' pollmethod: ' gppositivebasis2n ' maxconstraint: [] searchmethod: [] iterations: 66 funccount: 229 meshsize: 9.5367e-07 rngstate: [1x1 struct] message: 'Optimization terminated: meshsize less than options. mesholerance .'

这个出口滞后1.,表示收敛到局部最小值。

这个输出结构包含诸如多少次迭代之类的信息patternsearch以及有多少个函数求值。将此输出结构与使用非默认选项的模式搜索.在那个示例中,您获得了其中的一些信息,但是没有获得,例如,函数求值的数量。

输入参数

全部折叠

要最小化的函数,指定为函数句柄或函数名。这个有趣的函数接受一个向量x并返回一个实标量F,即目标函数的取值为x

您可以指定有趣的作为文件的函数句柄

x = patternsearch (x0 @myfun)

在这里,myfun是MATLAB函数之类的

函数f = myfun(x)%计算函数在x处的值

有趣的也可以是匿名函数的函数句柄

x = patternsearch (@ (x)规范(x) ^ 2, x0, A, b);

例子:有趣= @ (x) sin (x (1)) * cos (x (2))

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

初始点,指定为实向量。patternsearch使用中的元素数x0来确定变量的数量有趣的接受。

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

数据类型:

线性不等式约束,指定为实矩阵。A.是一个M——- - - - - -据nvar矩阵,M是不等式的个数。

A.编码M线性不等式

A * x < =,

在哪里x列向量是据nvar变量x (:),B列向量是M元素。

例如,指定

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

给这些约束:

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

例子:要指定控制变量的和为1或更小,请给出约束条件一个= 1 (1,N)b=1

数据类型:

线性不等式约束,指定为实向量。B是一个M元素向量相关的A.矩阵,如果你通过的话B作为行向量,求解器内部转换B到列向量b(:)

B编码M线性不等式

A * x < =,

在哪里x列向量是N变量x (:),A.矩阵的大小是多少M——- - - - - -N

例如,指定

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

给这些约束:

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

例子:要指定控制变量的和为1或更小,请给出约束条件一个= 1 (1,N)b=1

数据类型:

线性等式约束,指定为实矩阵。Aeq是一个——- - - - - -据nvar矩阵,是等式的个数。

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];

例子:要指定控制变量的和为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];

例子:要指定控制变量的和为1,请给出约束条件Aeq = 1 (1, N)beq=1

数据类型:

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

x(我)> =磅(我)

对所有

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

x(我)> =磅(我)

1<=i<=numel(磅)

在这种情况下,求解器发出警告。

例子:要指定所有的控制变量都是正的,磅= 0(大小(x0))

数据类型:

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

x (i) < =乌兰巴托(我)

对所有

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

x (i) < =乌兰巴托(我)

1 <= I <= numel(ub)

在这种情况下,求解器发出警告。

例子:要指定所有控制变量都小于1,ub=个(尺寸(x0))

数据类型:

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

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

    c (x) < = 0

    的所有条目C

  • ceq(x)是一组非线性等式约束xpatternsearch试图满足

    量表(x) = 0

    的所有条目ceq

例如,

x = patternsearch (Aeq @myfun x0, A, b,说真的,磅,乌兰巴托,@mycon)

在哪里mycon是MATLAB函数之类的

函数[c,ceq] = mycon(x)%计算非线性不等式在x. ceq =…计算x处的非线性等式。
有关更多信息,请参见非线性约束

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

的返回对象指定为优化选项最佳选择(推荐)或结构。

最佳选择隐藏中列出的选项斜体字看见Options隐藏的选项

{}表示默认值。请参阅模式搜索选项

选项patternsearch帕累托研究

选项 描述 价值观

ConstraintTolerance

公差约束。

对于期权结构,请使用TolCon

积极的标量|{1e-6}

显示

显示级别。

“关闭”|“国际热核实验堆”|“诊断”|{'最后'}

最大函数求值

目标函数求值的最大次数。

对于期权结构,请使用MaxFunEvals

正整数|{' 2000 * numberOfVariables '}patternsearch,{3000 * (numberOfVariables + numberOfObjectives)}帕累托研究,在那里numberOfVariables是问题变量的数量,和目标数目标函数的个数是多少

最大迭代次数

最大迭代次数。

对于期权结构,请使用麦克斯特

正整数|{' 100 * numberOfVariables '}patternsearch,{100 * (numberOfVariables + numberOfObjectives)}帕累托研究,在那里numberOfVariables是问题变量的数量,和目标数目标函数的个数是多少

MaxTime

允许优化的总时间(以秒为单位)。

对于期权结构,请使用时限

积极的标量|{Inf}

啮合公差

网格大小的公差。

对于期权结构,请使用TolMesh

积极的标量|{1e-6}

OutputFcn

优化函数在每次迭代时调用的函数。指定为函数句柄或函数句柄的单元格数组。

对于期权结构,请使用OutputFcns

函数句柄或函数句柄的单元数组|{[]}

绘图仪

模式搜索输出的绘图。指定为内置绘图函数的名称、函数句柄或内置绘图函数或函数句柄名称的单元格数组。

对于期权结构,请使用绘图仪

{[]}|都patternsearch帕累托研究:“psplotfuncount”|“psplotmaxconstr”|自定义绘制函数

帕累托研究只有多个目标:“psplotdistance”|“psplotparetof”|“psplotparetox”|“psplotspread”|“psplotvolume”

patternsearch只或帕累托研究只有一个目标:“psplotbestf”|“psplotmeshsize”|“psplotbestx”

波勒法

在模式搜索中使用的轮询策略。

{'GPSPositiveBasis2N'}|“GPSPositiveBasisNp1”|“GSSPositiveBasis2N”|“GSSPositiveBasisNp1”|“MADSPositiveBasis2N”|“MADSPositiveBasisNp1”

帕累托研究仅:{' GSSPositiveBasis2np2 '}

UseParallel

并行计算目标函数和非线性约束函数。看到向量化和并行选项(用户函数评估)如何在全局优化工具箱中使用并行处理

真正的|{假}

UseVectorized

指定是否对函数进行矢量化。请参阅向量化和并行选项(用户函数评估)将目标函数和约束函数矢量化

对于期权结构,请使用矢量化=“开”“关闭”

真正的|{假}

选项帕累托研究只有

选项 描述 价值观

InitialPoints

初始点帕累托研究使用one of these data types:

  • 矩阵据nvar列,其中每一行表示一个初始点。

  • 结构,包含以下字段(所有字段都是可选的,除了X0):

    • X0——矩阵据nvar列,其中每一行表示一个初始点。

    • Fvals——矩阵numObjectives列,其中每一行表示在中对应点的目标函数值X0

    • 锡内克——矩阵努米涅克列,其中每一行表示在中对应点处的非线性不等式约束值X0

帕累托研究中任何缺失的值Fvals锡内克字段。

矩阵据nvar柱|结构|{[]}

MinPollFraction

要轮询的模式的最小分数。

从0到1|的标量{0}

ParetoSetSize

帕累托集合中的点数。

正整数|{“马克斯(numberOfObjectives 60)”},在那里目标数目标函数的个数是多少

ParetoSetChangeTolerance

当一个迭代窗口中停止度量的相对变化小于或等于时,求解器停止ParetoSetChangeTolerance

  • 对于三个或更少的目标,帕累托研究使用音量和传播度量。

  • 对于四个或更多的目标,帕累托研究使用传播和距离度量。

看到帕累托搜索算法定义

当任何适用措施的相对变化小于时,求解程序停止ParetoSetChangeTolerance,或这些测量的时间序列的傅里叶变换的平方的最大值相对较小。看到帕累托搜索算法

请注意

设置ParetoSetChangeTolerance<sqrt (eps)~ 1.5e-8不推荐。

积极的标量|{1e-4}

选项patternsearch只有

选项 描述 价值观
缓存

缓存设置为“开”,patternsearch保留它投票的网格点的历史。在后继的迭代中,patternsearch民调点数与已经民调的点数并不接近。使用此选项patternsearch在计算目标函数时运行缓慢。如果目标函数是随机的,不要使用这个选项。

“开”|{'off'}

CacheSize

历史的规模。

积极的标量|{1 e4}

CacheTol

从当前网格点到历史上任何点的最大距离,以便patternsearch以避免轮询当前点。如果使用缓存选项设置为“开”

积极的标量|{eps}

FunctionTolerance

函数的公差。如果函数值的变化小于,迭代将停止FunctionTolerance并且网格尺寸小于StepTolerance.此选项不适用于MADS轮询。

对于期权结构,请使用TolFun

积极的标量|{1e-6}

初始网格大小

算法的初始网格大小。看到模式搜索轮询如何工作

积极的标量|{1.0}

初始惩罚

惩罚参数的初始值。看到非线性约束求解算法

积极的标量|{10}

最大网格尺寸

在轮询或搜索步骤中使用的最大网格大小。看到模式搜索轮询如何工作

积极的标量|{Inf}

网状收缩因子

不成功迭代的网格收缩因子。

对于期权结构,请使用MeshContraction

积极的标量|{0.5}

MeshExpansionFactor

成功迭代的网格扩展因子。

对于期权结构,请使用MeshExpansion

积极的标量|{2.0}

MeshRotate

在声明一个点为最佳点之前,先旋转模式。看到网格选项

“关闭”|{'在'}

PenaltyFactor

点球更新参数。看到非线性约束求解算法

积极的标量|{100}

绘图间隔

指定在每个间隔调用绘图函数。

正整数|{1}

PollOrderAlgorithm

模式搜索中轮询方向的顺序。

对于期权结构,请使用PollingOrder

“随机”|“成功”|{“连续”}

鳞片鱼

自动缩放变量。

对于期权结构,请使用鳞片鱼=“开”“关闭”

{true}|

SearchFcn

模式搜索中使用的搜索类型。指定为名称或函数句柄。

对于期权结构,请使用SearchMethod

' gppositive basis2n ' | ' gppositive basisnp1 ' | ' gspositive basis2n ' | ' gpositive basisnp1 ' | ' madpositive basis2n ' | ' madpositive basisnp1 ' | 'searchga' | 'searchlhs' | 'searchneldermead' | {[]} |自定义搜索功能

StepTolerance

变量的公差。如果位置变化和网格大小小于,迭代将停止StepTolerance.此选项不适用于MADS轮询。

对于期权结构,请使用TolX

积极的标量|{1e-6}

TolBind

绑定的宽容。看到约束参数

积极的标量|{1 e - 3}

使用CompletePoll

围绕当前点完成轮询。请参阅模式搜索轮询如何工作

对于期权结构,请使用CompletePoll=“开”“关闭”

真正的|{假}

使用完全搜索

当搜索方法是轮询方法时,围绕当前点完成搜索。看到搜索和轮询

对于期权结构,请使用CompleteSearch=“开”“关闭”

真正的|{假}

例子:选项=最佳选项('patternsearch','MaxIterations',150,'MeshTolerance',1e-4)

数据类型:结构

问题结构,指定为具有以下字段的结构:

  • 客观的-目标函数

  • x0——起点

  • Aineq-线性不等式约束的矩阵

  • bineq-线性不等式约束的向量

  • Aeq-线性等式约束的矩阵

  • 说真的-线性等式约束的向量

  • -下界x

  • 乌兰巴托-的上界x

  • nonlcon-非线性约束函数

  • 解算器“patternsearch”

  • 选项-使用最佳选择psoptimset

  • rngstate—可选字段,重置随机数生成器的状态

请注意

各个领域中问题是必需的。

数据类型:结构

输出参数

全部折叠

解,返回实向量。的大小x和尺寸一样吗x0.当出口滞后是积极的,,x通常是问题的局部解决方案。

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

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

出口标志 意义

1.

没有非线性约束—网格尺寸的大小小于指定的公差,且约束违背小于ConstraintTolerance

具有非线性约束-的大小互补测度(在该表之后定义)小于√ConstraintTolerance,子问题用比细的网格来求解啮合公差,约束违背小于ConstraintTolerance

2.

的变化x网格尺寸均小于规定的公差,且约束违背小于ConstraintTolerance

3.

的变化fval网格尺寸均小于规定的公差,且约束违背小于ConstraintTolerance

4.

步长的大小小于机器精度,约束违背小于ConstraintTolerance

0

已达到函数计算或迭代的最大数量。

-1

由输出函数或绘图函数终止的优化。

-2

没有找到可行点。

在非线性约束求解器中互补测度元素所在的向量的范数是多少Cλ,在那里C非线性不等式是否违反约束,和λ为相应的拉格朗日乘子。

关于优化过程的信息,作为带有以下字段的结构返回:

  • 作用-目标函数。

  • problemtype-问题类型,其中之一:

    • “不受约束”

    • “boundconstraints”

    • “linearconstraints”

    • “nonlinearconstr”

  • 波勒法——轮询技术。

  • searchmethod-使用搜索技术,如果有。

  • 迭代—总迭代次数。

  • funccount—函数求值的总数。

  • meshsize-网孔尺寸x

  • 最大约束—最大约束违背(如果有)。

  • rngstate- MATLAB随机数生成器的状态,就在算法开始之前。中的值可以使用rngstate在使用随机搜索方法或随机轮询方法时重新生成输出。看到复制的结果,其中讨论了相同的技术遗传算法

  • 消息-算法终止的原因。

算法

默认情况下,patternsearch在没有线性约束的情况下,根据自适应网格与坐标方向对齐,寻找最小值。看到什么是直接查册?模式搜索轮询如何工作

替代功能

应用程序

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

参考文献

[1] Audet, Charles, and J. E. Dennis Jr. <广义模式搜索的分析>SIAM优化学报.2003年第13卷第3期,第889-903页。

康,A. R., N. i.m. Gould,和博士L. Toint。“具有一般不等式约束和简单边界的全局收敛增广拉格朗日势垒优化算法”。数学的计算.第66卷第217号,1997年,261-288页。

马克·A·艾布拉姆森混合变量一般约束优化问题的模式搜索滤波算法.2002年8月,莱斯大学计算与应用数学系博士论文。

[4] Abramson, Mark A., Charles Audet, J. E. Dennis, Jr.和Sebastien Le Digabel。ORTHOMADS:具有正交方向的确定性MADS实例。SIAM优化学报.第20卷第2期,2009年,948-966页。

[5] 科尔达、塔玛拉·G、罗伯特·迈克尔·刘易斯和弗吉尼亚·托森。“直接搜索优化:一些经典和现代方法的新视角。”暹罗审查.2003年第45卷第3期385-482页。

科尔达,塔玛拉·G,罗伯特·迈克尔·刘易斯和弗吉尼亚·托尔松。一种集直接搜索增广拉格朗日算法,用于结合一般约束和线性约束进行优化。SAND2006-5315技术报告,桑迪亚国家实验室,2006年8月。

[7] 刘易斯、罗伯特·迈克尔、安妮·谢泼德和弗吉尼亚·托森。“为线性约束最小化实现生成集搜索方法。”SIAM科学计算杂志.第29卷,第6期,2007年,2507-2530页。

扩展功能

之前介绍过的R2006a