主要内容

解决

解决优化问题或方程的问题

描述

使用解决找到一个优化问题的解决方案或方程问题。

例子

索尔=解决(概率)解决优化问题或方程问题概率

例子

索尔=解决(概率,x0)解决了概率从点或一组值x0

例子

索尔=解决(概率,x0,女士)解决了概率使用女士多个开始解决。使用这个语法来寻找更好的解决方案比你得到当不使用女士论点。

例子

索尔=解决(___,名称,值)修改解决方案过程使用一个或多个名称-值对参数除了输入参数在以前的语法。

(索尔,fval)=解决(___)还返回目标函数值的解决方案使用任何输入参数在以前的语法。

例子

(索尔,fval,exitflag,输出,λ)=解决(___)还返回一个退出旗描述退出条件,一个输出结构包含额外的信息解决方案的过程,和,非整数最优化问题的拉格朗日乘子的结构。

例子

全部折叠

解决线性规划问题定义为一个优化问题。

x = optimvar (“x”);y = optimvar (“y”);概率= optimproblem;概率。目标= - x - y / 3;prob.Constraints。con年代1=x+ y <= 2; prob.Constraints.cons2 = x + y/4 <= 1; prob.Constraints.cons3 = x - y <= 2; prob.Constraints.cons4 = x/4 + y >= -1; prob.Constraints.cons5 = x + y >= 1; prob.Constraints.cons6 = -x + y <= 2; sol = solve(prob)
使用linprog解决问题。找到最优解。
索尔=结构体字段:x: 0.6667 y: 1.3333

找到一个最小的山峰函数,它包含在MATLAB®,在该地区 x 2 + y 2 4 。为此,创建优化变量xy

x = optimvar (“x”);y = optimvar (“y”);

创建一个优化问题山峰作为目标函数。

概率= optimproblem (“客观”山峰(x, y));

包括一个不等式的约束优化变量。

概率。约束= x ^ 2 + y ^ 2 < = 4;

设置的初始点x1,y1,解决这个问题。

x0。x=1;x0。y=1;索尔=解决(x0概率)
使用fmincon解决问题。局部最小值发现,满足约束。优化完成,因为目标函数中引入可行的方向,在最优值的宽容,和约束满足约束的值公差内。
索尔=结构体字段:x: 0.2283 y: -1.6255

不支金宝app持的功能要求fcn2optimexpr

如果你的目标或非线性约束函数并不完全由基本函数,您必须使用转换函数来优化表达式fcn2optimexpr。看到将非线性函数优化表达式金宝app支持操作优化变量和表达式

将目前的例子:

convpeaks = fcn2optimexpr (@peaks, x, y);概率。目标= convpeaks;x0 sol2 =解决(问题)
使用fmincon解决问题。局部最小值发现,满足约束。优化完成,因为目标函数中引入可行的方向,在最优值的宽容,和约束满足约束的值公差内。
sol2 =结构体字段:x: 0.2283 y: -1.6255

版权2018 - 2020 MathWorks公司。

比较的步骤来解决整数规划问题都有或没有一个初始可行点。问题有八个整数变量和四个线性等式约束,和所有变量限制是正的。

概率= optimproblem;x = optimvar (“x”8 1下界的0,“类型”,“整数”);

创建四个线性等式约束,包括他们的问题。

Aeq =[22 13 26 33 21 3 14 26 39 16 22日28日26日30日23日24日18 14 29日27日30日38 26 26 41 26 28 36 38 16 18 - 26岁);说真的= (7872 10466 11322 12058);缺点= Aeq * x = =说真的;prob.Constraints。缺点=缺点;

创建一个目标函数,包括它的问题。

10 13 17 f = [2 7 5 7 3];概率。目标= f * x;

解决这个问题不使用一个初始点,检查显示和节点的数量。

(x1, fval1, exitflag1 output1] =解决(问题);
使用intlinprog解决问题。LP:最优的客观价值是1554.047531。减少生成:应用8强CG削减。下界是1591.000000。分支界限法:节点总num int整数相对探索时间(s)解决方案fval差距(%)1 10000 0 - 0.42 - 14739 0.58 2.154000 2.593968 e + e + 03 01 18258 0.73 1.854000 1.180593 e + e + 03 01 18673 0.75 1.854000 1.563342 e + e + 03 00 18829 0.75 1.854000 0.000000 e + e + 03 00找到最优解。Intlinprog停止因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05。

相比之下,找到解决方案使用一个初始可行点。

x0。x=(8 62 23 103 53 84 46 34]'; [x2,fval2,exitflag2,output2] = solve(prob,x0);
使用intlinprog解决问题。LP:最优的客观价值是1554.047531。减少生成:应用8强CG削减。下界是1591.000000。相对差距是59.20%。分支界限法:节点总num int整数相对探索时间(s)解决方案fval差距(%)3627 0.20 2.154000 2.593968 e + e + 03 01 5844 0.29 1.854000 1.180593 e + e + 03 01 6204 0.31 1.854000 1.455526 e + e + 03 00 6400 0.32 1.854000 0.000000 e + e + 03 00找到最优解。Intlinprog停止因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05。
流(没有一个初始点,解决了% d步骤。\ nWith初始点,解决了% d步骤。”、output1.numnodes output2.numnodes)
没有一个初始点,解决了18829步。用一个初始点,解决了6400步。

给一个初始点并不总是提高的问题。对于这个问题,使用一个初始点节省时间和计算步骤。然而,对于一些问题,会导致初始点解决采取更多的步骤。

对于一些解决,您可以通过目标和约束函数值,如果有的话,解决x0论点。这可以节省时间解决。通过一个向量的OptimizationValues对象。创建这个向量使用optimvalues函数。

可以使用目标函数值的解决:

  • 遗传算法

  • gamultiobj

  • paretosearch

  • surrogateopt

可以使用的解决非线性约束函数值是:

  • paretosearch

  • surrogateopt

例如,最小化山峰函数使用surrogateopt开始,从最初的网格点值。从-10年10在创建一个网格x变量,5/25/2y变量间隔为1/2。计算目标函数值在初始点。

x = optimvar (“x”下界= -10,UpperBound = 10);y = optimvar (“y”下界= 5/2 UpperBound = 5/2);概率= optimproblem (“客观”山峰(x, y));xval = 10:10;yval = (5) / 2;[x0x, x0y] = meshgrid (xval yval);peaksvals =山峰(x0x x0y);

通过中的值x0参数使用optimvalues。这可以节省时间解决,因为解决不需要计算的值。通过值作为行向量。

x0 = optimvalues(概率,“x”x0x (:)”,“y”x0y (:)”,“客观”,peaksvals (:)”);

解决问题用surrogateopt初始值。

[溶胶,fval eflag、输出]=解决(概率,x0,解算器=“surrogateopt”)
使用surrogateopt解决问题。

图优化函数包含一个坐标轴对象。坐标轴对象与标题最好的函数值:-6.55113,包含迭代,ylabel函数值包含一行对象显示它的值只使用标记。该对象代表最好的函数值。

surrogateopt停止,因为它超过了设定的评价函数极限“options.MaxFunctionEvaluations”。
索尔=结构体字段:x: 0.2283 y: -1.6256
fval = -6.5511
eflag = SolverLimitExceeded
输出=结构体字段:elapsedtime: 35.1571 funccount: 200 constrviolation: 0 ineq: [1 x1 struct] rngstate: [1 x1 struct]消息:“surrogateopt停止,因为它超过了设定的评价函数极限……“解决者:“surrogateopt”

找到一个局部最小值山峰功能范围 - - - - - - 5 x , y 5 从一点开始[1,2]

x = optimvar (“x”下界= 5,UpperBound = 5);y = optimvar (“y”下界= 5,UpperBound = 5);x0。x=1;x0。y=2;概率= optimproblem(客观=山峰(x, y));选择= optimoptions (“fmincon”显示=“没有”);[溶胶,fval] =解决(概率,x0,选项=选择)
索尔=结构体字段:x: -3.3867 y: 3.6341
fval = 1.1224 e-07

试图找到一个更好的解决方案通过使用GlobalSearch解算器。这个解算器运行fmincon多次,这可能产生一个更好的解决方案。

女士= GlobalSearch;[sol2, fval2] =解决(概率,x0, ms)
使用GlobalSearch解决问题。GlobalSearch停止,因为所有审判点分析。当地所有15解决运行聚合与当地一个积极解决退出旗。
sol2 =结构体字段:x: 0.2283 y: -1.6255
fval2 = -6.5511

GlobalSearch找到一个解决方案,一个更好的(较低的)目标函数值。退出消息显示fmincon,当地的解算器,运行的15倍。返回的解决方案有一个目标函数值约为-6.5511,低于价值在第一个解决方案,1.1224 e-07。

解决这个问题

最小值 x ( - - - - - - 3 x 1 - - - - - - 2 x 2 - - - - - - x 3 ) 年代 u b j e c t t o { x 3 b n 一个 r y x 1 , x 2 0 x 1 + x 2 + x 3 7 4 x 1 + 2 x 2 + x 3 = 1 2

没有显示迭代显示。

x = optimvar (“x”、2、1,下界的,0);x3 = optimvar (“x3”,“类型”,“整数”,下界的0,“UpperBound”1);概率= optimproblem;概率。目标= 3 * x (1) - 2 * (2) - x3;prob.Constraints。con年代1=x(1) + x(2) + x3 <= 7; prob.Constraints.cons2 = 4*x(1) + 2*x(2) + x3 == 12; options = optimoptions(“intlinprog”,“显示”,“关闭”);索尔=解决(概率,“选项”选项)
索尔=结构体字段:x: [2 x1双]x3: 1

检查解决方案。

sol.x
ans =2×10 5.5000
sol.x3
ans = 1

解决使用intlinprog作为一个线性规划问题的解决者。

x = optimvar (“x”);y = optimvar (“y”);概率= optimproblem;概率。目标= - x - y / 3;prob.Constraints。con年代1=x+ y <= 2; prob.Constraints.cons2 = x + y/4 <= 1; prob.Constraints.cons3 = x - y <= 2; prob.Constraints.cons4 = x/4 + y >= -1; prob.Constraints.cons5 = x + y >= 1; prob.Constraints.cons6 = -x + y <= 2; sol = solve(prob,“规划求解”,“intlinprog”)
使用intlinprog解决问题。LP:最优的客观价值是-1.111111。找到最优解。没有指定的整数变量。Intlinprog解决线性问题。
索尔=结构体字段:x: 0.6667 y: 1.3333

解决混合整数线性规划问题中描述解决整数规划问题的非默认选项并检查所有的输出数据。

x = optimvar (“x”、2、1,下界的,0);x3 = optimvar (“x3”,“类型”,“整数”,下界的0,“UpperBound”1);概率= optimproblem;概率。目标= 3 * x (1) - 2 * (2) - x3;prob.Constraints。con年代1=x(1) + x(2) + x3 <= 7; prob.Constraints.cons2 = 4*x(1) + 2*x(2) + x3 == 12; [sol,fval,exitflag,output] = solve(prob)
使用intlinprog解决问题。LP:最优的客观价值是-12.000000。找到最优解。Intlinprog停在根节点,因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05。
索尔=结构体字段:x: [2 x1双]x3: 1
fval = -12
exitflag = OptimalSolution
输出=结构体字段:relativegap: 0 absolutegap: 0 numfeaspoints: 1 numnodes: 0 constrviolation: 0消息:“....发现最优解“解决者:“intlinprog”

对于一个问题没有任何整数约束,还可以获得一个非空的拉格朗日乘子作为第五输出结构。

创建和使用命名索引变量解决优化问题。问题是最大化profit-weighted水果流向不同的机场,受到约束加权流动。

rng (0)%的再现性p = optimproblem (“ObjectiveSense”,“最大化”);流= optimvar (“流”,{“苹果”,“橘子”,“香蕉”,“浆果”},{“纽约”,“bo”,“宽松”},下界的0,“类型”,“整数”);p。目标=总和(总和(兰德(4,3)。*流));p.Constraints。纽约=r和(1,4)*flow(:,“纽约”)< = 10;p.Constraints。BOS=r和(1,4)*flow(:,“bo”)< = 12;p.Constraints。宽松的=r和(1,4)*flow(:,“宽松”)< = 35;索尔=解决(p);
使用intlinprog解决问题。LP:最优的客观价值是1027.472366。使用子启发式:发现1解决方案。下界是1027.233133。相对差距是0.00%。找到最优解。Intlinprog停在根节点,因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05。

找到最优的纽约和洛杉矶橘子和草莓。

[idxFruit, idxAirports] = findindex(流,{“橘子”,“浆果”},{“纽约”,“宽松”})
idxFruit =1×22 4
idxAirports =1×21 3
orangeBerries = sol.flow (idxFruit idxAirports)
orangeBerries =2×20 980 70 0

这意味着没有橘子要显示纽约,70个浆果纽约980个橙子要宽松的,不去浆果宽松的

列表的最优流如下:

果机场

- - - - - - - - - - - - - - -

浆果纽约

苹果BOS

橙子松懈

idx = findindex(流,{“浆果”,“苹果”,“橘子”},{“纽约”,“bo”,“宽松”})
idx =1×34 5 10
optimalFlow = sol.flow (idx)
optimalFlow =1×370年28 980年

这意味着70个浆果会显示纽约,28日苹果要BOS,980橙子要宽松的

解决非线性方程组

经验值 ( - - - - - - 经验值 ( - - - - - - ( x 1 + x 2 ) ) ) = x 2 ( 1 + x 1 2 ) x 1 因为 ( x 2 ) + x 2 ( x 1 ) = 1 2

运用具体问题具体分析的方法,首先定义x作为一个双元素优化变量。

x = optimvar (“x”2);

创建第一个方程作为一个优化平等表达。

eq1 = exp (exp (- x (x (1) + (2)))) = = x (2) * (1 + x (1) ^ 2);

类似地,创建第二个方程作为一个优化平等表达。

eq2 = x (1) * cos (x (2)) + x (2) * sin (x (1)) = = 1/2;

创建一个方程问题,把方程的问题。

概率= eqnproblem;prob.Equations。eq1 = eq1;prob.Equations。eq2 = eq2;

回顾这个问题。

显示(概率)
EquationProblem:解:x eq1: exp ((exp ((- x (x (1) + (2)))))) = = (x (2) * (1 + x (1) ^ 2)) eq2: ((x (1)。* cos (x (2))) + (x (2)。* sin (x (1)))) = = 0.5

从点开始解决问题(0,0)。具体问题具体分析的方法,指定初始点为一个结构,变量名称的字段结构。对于这个问题,只有一个变量,x

x0。x=(00]; [sol,fval,exitflag] = solve(prob,x0)
使用fsolve解决问题。方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
索尔=结构体字段:x (2 x1双):
fval =结构体字段:eq1: -2.4070 e-07 eq2: -3.8255 e-08
exitflag = EquationSolved

查看解决方案。

disp (sol.x)
0.3532 - 0.6061

不支金宝app持的功能要求fcn2optimexpr

如果你不组成的基本方程函数功能,您必须使用转换函数来优化表达式fcn2optimexpr。目前的例子:

ls1 = fcn2optimexpr (@ (x) exp (exp (- x (x (1) + (2)))), x);eq1 = ls1 = = x (2) * (1 + x (1) ^ 2);ls2 = fcn2optimexpr (@ (x) x (1) * cos (x (2)) + x (2) * sin (x (1)), x);eq2 = ls2 = = 1/2;

看到金宝app支持操作优化变量和表达式将非线性函数优化表达式

输入参数

全部折叠

优化问题或方程问题,指定为一个OptimizationProblem对象或一个EquationProblem对象。通过创建一个优化问题optimproblem;通过创建一个方程问题eqnproblem

警告

具体问题具体分析的方法不支持复杂的值在一个目标函数,非线性等式,或非线性金宝app不等式。如果一个函数计算具有复杂的价值,即使作为一个中间值,最终结果可能是不正确的。

例子:概率= optimproblem;概率。目标= obj;prob.Constraints。cons1 = cons1;

例子:概率= eqnproblem;prob.Equations=eqs;

初始点,指定为一个结构和字段名称的变量名概率

对于一些全局优化工具箱解决,x0可以是一个向量的OptimizationValues对象代表多个初始点。创建点使用optimvalues函数。这些解决方案是:

  • 遗传算法(全局优化工具箱),gamultiobj(全局优化工具箱),paretosearch(全局优化工具箱)particleswarm(全局优化工具箱)。解决这些接受多个起点作为初始种群的成员。

  • MultiStart(全局优化工具箱)。该解算器接受多个初始点等当地解决fmincon

  • surrogateopt(全局优化工具箱)。该解算器接受多个初始点,帮助创建一个初始代理。

例如使用x0与命名索引变量,明白了创建初始点优化与命名索引变量

例子:如果概率有变量命名xy:x0。x=(3,2,17]; x0.y = [pi/3,2*pi/3]

数据类型:结构体

多个开始解算器,指定为一个MultiStart(全局优化工具箱)对象或一个GlobalSearch(全局优化工具箱)对象。创建女士使用MultiStartGlobalSearch命令。

目前,GlobalSearch金宝app只支持fmincon当地的解决者,MultiStart金宝app只支持fmincon,fminunc,lsqnonlin当地的解决者。

例子:女士= MultiStart;

例子:= GlobalSearch女士(FunctionTolerance = 1的军医);

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:解决(问题提出,“选项”,选择)

最小数量的开始点MultiStart(全局优化工具箱),指定为一个正整数。这种说法只适用于当你的电话解决使用女士论点。解决使用的所有值x0开始点。如果MinNumStartPoints大于值的数量吗x0,然后解决生成更多的开始点范围内均匀随机问题。如果一个组件是无限的,解决使用默认的人工边界产生点MultiStart

例子:解决(问题,x0,女士,MinNumStartPoints = 50)

数据类型:

优化选项,指定为对象创建的optimoptions或一个选项由等结构optimset

在内部,解决函数调用相关的详细的解算器“规划求解”参数的参考。确保选项在解算器兼容。例如,intlinprog不允许选项是一个结构,lsqnonneg不允许选择一个对象。

改善建议选项设置intlinprog解决方案或解决方案的速度,明白了调优整数线性规划。为linprog,默认的对偶单纯形的算法通常是节约内存和快速。偶尔,linprog解决了一个大问题更快的时候算法选择是“内点”。建议选项设置来改善非线性问题的解决方案,明白了常用的优化选择:优化和故障排除改善结果

例子:选择= optimoptions (“intlinprog”,“显示”,“没有一个”)

优化求解程序,指定为上市解决者的名字。对于优化问题,这个表包含可用的解决每个问题类型,包括解决者全局优化工具箱。细节方程问题出现以下优化解算器的细节。

使用非线性问题转换为整数约束prob2struct,由此产生的问题结构可以取决于选择的解决者。如果你没有全局优化工具箱许可,您必须指定解决者。看到整数约束非线性具体问题具体分析优化

默认为每个优化问题解算器类型是列在这里。

问题类型 默认的解算器
线性规划(LP) linprog
混合整数线性规划(MILP) intlinprog
二次规划(QP) quadprog
给出了二次锥规划 coneprog
线性最小二乘 lsqlin
非线性最小二乘 lsqnonlin
非线性规划(NLP)

fminunc问题没有约束,否则fmincon

混合整数非线性规划(适应) 遗传算法(全局优化工具箱)
多目标 gamultiobj(全局优化工具箱)

在这个表中,是的意味着问题的解算器是可用的类型,x解算器不可用。

问题类型

LP MILP QP 二次 线性最小二乘 非线性最小二乘 NLP 适应
解算器
linprog

是的

x x x x x x x
intlinprog

是的

是的

x x x x x x
quadprog

是的

x

是的

是的

是的

x x x
coneprog

是的

x x

是的

x x x x
lsqlin x x x x

是的

x x x
lsqnonneg x x x x

是的

x x x
lsqnonlin x x x x

是的

是的

x x
fminunc

是的

x

是的

x

是的

是的

是的

x
fmincon

是的

x

是的

是的

是的

是的

是的

x
fminbnd x x x x

是的

是的

是的

x
fminsearch x x x x

是的

是的

是的

x
patternsearch(全局优化工具箱)

是的

x

是的

是的

是的

是的

是的

x
遗传算法(全局优化工具箱)

是的

是的

是的

是的

是的

是的

是的

是的

particleswarm(全局优化工具箱)

是的

x

是的

x

是的

是的

是的

x
simulannealbnd(全局优化工具箱)

是的

x

是的

x

是的

是的

是的

x
surrogateopt(全局优化工具箱)

是的

是的

是的

是的

是的

是的

是的

是的

gamultiobj(全局优化工具箱)

是的

是的

是的

是的

是的

是的

是的

是的

paretosearch(全局优化工具箱)

是的

x

是的

是的

是的

是的

是的

x

请注意

如果你选择lsqcurvefit作为一个最小二乘问题的求解,解决使用lsqnonlin。的lsqcurvefitlsqnonlin解决者是相同的,解决

谨慎

为最大化问题(prob.ObjectiveSense“马克斯”“最大化”),不指定一个最小二乘解算器(一个名字开始lsq)。如果你这样做,解决抛出一个错误,因为这些连接器不能最大化。

对方程求解,这为每个问题类型表包含可用的解决者。在表中,

  • *显示的默认解决问题类型。

  • Y显示一个可用的解决者。

  • N表示不可用解算器。

金宝app支持动力学方程

方程类型 lsqlin lsqnonneg fzero fsolve lsqnonlin
线性 * N Y(标量) Y Y
线性和范围 * Y N N Y
标量非线性 N N * Y Y
非线性系统 N N N * Y
非线性系统+界限 N N N N *

例子:“intlinprog”

数据类型:字符|字符串

指示使用自动分化(广告)的非线性目标函数,指定为“汽车”(尽可能使用广告),“auto-forward”(尽可能使用转发广告),自动翻转的(尽可能使用反向广告),或有限差分的(不要使用广告)。选择包括汽车导致潜在的解算器利用梯度信息时提供解决问题的目标函数是支持,中描述金宝app金宝app支持操作优化变量和表达式。例如,看到的自动微分运用优化的效果

解决选择默认以下类型的广告:

  • 对于一般的非线性目标函数,fmincon默认为反向广告为目标函数。fmincon默认为反向广告为非线性约束函数当非线性约束的数量小于变量的数量。否则,fmincon默认转发广告为非线性约束函数。

  • 对于一般的非线性目标函数,fminunc默认为反向广告。

  • 最小二乘目标函数,fminconfminunc目标函数的默认转发广告。运用基于最小二乘的定义目标函数,看看写具体问题具体分析最小二乘法的目标函数

  • lsqnonlin默认转发广告当目标向量中的元素的数量大于或等于变量的数量。否则,lsqnonlin默认为反向广告。

  • fsolve默认转发广告当方程的数量大于或等于变量的数量。否则,fsolve默认为反向广告。

例子:有限差分的

数据类型:字符|字符串

指示使用自动分化(广告)非线性约束函数,指定为“汽车”(尽可能使用广告),“auto-forward”(尽可能使用转发广告),自动翻转的(尽可能使用反向广告),或有限差分的(不要使用广告)。选择包括汽车造成潜在的解算器时使用梯度信息解决问题提供支持约束函数,描述金宝app金宝app支持操作优化变量和表达式。例如,看到的自动微分运用优化的效果

解决选择默认以下类型的广告:

  • 对于一般的非线性目标函数,fmincon默认为反向广告为目标函数。fmincon默认为反向广告为非线性约束函数当非线性约束的数量小于变量的数量。否则,fmincon默认转发广告为非线性约束函数。

  • 对于一般的非线性目标函数,fminunc默认为反向广告。

  • 最小二乘目标函数,fminconfminunc目标函数的默认转发广告。运用基于最小二乘的定义目标函数,看看写具体问题具体分析最小二乘法的目标函数

  • lsqnonlin默认转发广告当目标向量中的元素的数量大于或等于变量的数量。否则,lsqnonlin默认为反向广告。

  • fsolve默认转发广告当方程的数量大于或等于变量的数量。否则,fsolve默认为反向广告。

例子:有限差分的

数据类型:字符|字符串

指示使用自动分化(广告)非线性约束函数,指定为“汽车”(尽可能使用广告),“auto-forward”(尽可能使用转发广告),自动翻转的(尽可能使用反向广告),或有限差分的(不要使用广告)。选择包括汽车造成潜在的解算器时使用梯度信息解决问题提供支持函数方程,描述金宝app金宝app支持操作优化变量和表达式。例如,看到的自动微分运用优化的效果

解决选择默认以下类型的广告:

  • 对于一般的非线性目标函数,fmincon默认为反向广告为目标函数。fmincon默认为反向广告为非线性约束函数当非线性约束的数量小于变量的数量。否则,fmincon默认转发广告为非线性约束函数。

  • 对于一般的非线性目标函数,fminunc默认为反向广告。

  • 最小二乘目标函数,fminconfminunc目标函数的默认转发广告。运用基于最小二乘的定义目标函数,看看写具体问题具体分析最小二乘法的目标函数

  • lsqnonlin默认转发广告当目标向量中的元素的数量大于或等于变量的数量。否则,lsqnonlin默认为反向广告。

  • fsolve默认转发广告当方程的数量大于或等于变量的数量。否则,fsolve默认为反向广告。

例子:有限差分的

数据类型:字符|字符串

输出参数

全部折叠

解决方案,作为一个结构或一个返回OptimizationValues向量。索尔是一个OptimizationValues当问题是多目标向量。简略的问题,返回的字段结构优化变量的名称问题。看到optimvar

目标函数值返回的解决方案,为下列之一:

问题类型 返回值(s)
标量优化目标函数f(x) 实数f(索尔)
最小二乘 实数,残差的平方和的解决方案
解决方程 如果prob.Equations是一个条目:真正的向量函数值的解决方案,意义-左边的右边方程
如果prob.Equations有多个命名字段:结构相同的名字吗prob.Equations,每个字段值是-左边的右边叫方程
多目标 为每个目标函数分量矩阵的一行,一列,每个解决方案。

提示

如果你忽视要求fval客观的定义为一个优化表达式或方程表达式,可以计算使用

fval =评估(prob.Objective sol)

如果目标是定义为一个结构只有一个字段,

fval =评估(prob.Objective.ObjectiveName sol)

如果目标是一个与多个字段结构,编写一个循环。

帧=字段(prob.Equations);i = 1:长度(帧)fval。(帧{我})=评估(prob.Equations。(帧{我}),索尔);结束

原因解决者停止了,作为一个枚举变量返回。您可以转换exitflag数值上等于使用双(exitflag)等效的字符串,并使用字符串(exitflag)

此表描述了退出的旗帜intlinprog解算器。

退出旗intlinprog 数值上等于 意义
OptimalWithPoorFeasibility 3

对相对的解决方案是可行的ConstraintTolerance宽容,但对绝对宽容并不可行。

IntegerFeasible 2 intlinprog过早地停止了,发现一个整数可行点。
OptimalSolution

1

解算器聚集到一个解决方案x

SolverLimitExceeded

0

intlinprog超过一个公差如下:

  • LPMaxIterations

  • MaxNodes

  • MaxTime

  • RootLPMaxIterations

看到公差和停止条件解决还返回这个退出旗当它在根节点的内存耗尽。

OutputFcnStop 1 intlinprog停在一个输出函数或函数。
NoFeasiblePointFound

2

发现不可行点。

无限

3

问题是无限的。

FeasibilityLost

9

解决了可行性。

Exitflags39与有很大的不可行性的金宝搏官方网站解决方案。这些通常来自线性约束矩阵条件数大,或问题解决方案组件。纠正这些问题,尝试规模系数矩阵,消除冗余的线性约束,或给予更严格的边界变量。

此表描述了退出的旗帜linprog解算器。

退出旗linprog 数值上等于 意义
OptimalWithPoorFeasibility 3

对相对的解决方案是可行的ConstraintTolerance宽容,但对绝对宽容并不可行。

OptimalSolution 1

解算器聚集到一个解决方案x

SolverLimitExceeded 0

迭代的数量超过了options.MaxIterations

NoFeasiblePointFound 2

发现不可行点。

无限 3

问题是无限的。

FoundNaN 4

期间遇到的值执行算法。

PrimalDualInfeasible 5

原始与对偶问题是不可行的。

DirectionTooSmall 7

搜索方向是太小了。没有进一步的进展。

FeasibilityLost 9

解决了可行性。

Exitflags39与有很大的不可行性的金宝搏官方网站解决方案。这些通常来自线性约束矩阵条件数大,或问题解决方案组件。纠正这些问题,尝试规模系数矩阵,消除冗余的线性约束,或给予更严格的边界变量。

此表描述了退出的旗帜lsqlin解算器。

退出旗lsqlin 数值上等于 意义
FunctionChangeBelowTolerance 3

剩余的变化小于指定的公差options.FunctionTolerance。(trust-region-reflective算法)

StepSizeBelowTolerance

2

步长小于options.StepTolerance、约束满足。(内点算法)

OptimalSolution 1

解算器聚集到一个解决方案x

SolverLimitExceeded 0

迭代的数量超过了options.MaxIterations

NoFeasiblePointFound 2

对于优化问题,问题是不可行的。或,内点算法,步长小于options.StepTolerance不满意,但约束。

对方程的问题,没有找到解决方案。

IllConditioned 4

病态阻止进一步的优化。

NoDescentDirectionFound 8

搜索方向是太小了。没有进一步的进展。(内点算法)

此表描述了退出的旗帜quadprog解算器。

退出旗quadprog 数值上等于 意义
LocalMinimumFound 4

局部最小值;至少不是唯一的。

FunctionChangeBelowTolerance 3

目标函数值变化小于指定的公差options.FunctionTolerance。(trust-region-reflective算法)

StepSizeBelowTolerance

2

步长小于options.StepTolerance、约束满足。(interior-point-convex算法)

OptimalSolution 1

解算器聚集到一个解决方案x

SolverLimitExceeded 0

迭代的数量超过了options.MaxIterations

NoFeasiblePointFound 2

问题是不可行的。或,内点算法,步长小于options.StepTolerance不满意,但约束。

IllConditioned 4

病态阻止进一步的优化。

非凸

6

发现非凸问题。(interior-point-convex算法)

NoDescentDirectionFound 8

无法计算的方向迈出的一步。(interior-point-convex算法)

此表描述了退出的旗帜coneprog解算器。

退出旗coneprog 数值上等于 意义
OptimalSolution 1

解算器聚集到一个解决方案x

SolverLimitExceeded 0

迭代的数量超过了options.MaxIterations在几秒钟内,或者解决方案时间超过options.MaxTime

NoFeasiblePointFound 2

问题是不可行的。

无限 3

问题是无限的。

DirectionTooSmall

7

搜索方向变得太小了。不可能取得进一步进展。

不稳定 -10年

问题是数值不稳定。

此表描述了退出的旗帜lsqcurvefitlsqnonlin解算器。

退出旗lsqnonlin 数值上等于 意义
SearchDirectionTooSmall 4

大小的搜索方向是小于options.StepTolerance

FunctionChangeBelowTolerance 3

剩余不到的变化options.FunctionTolerance

StepSizeBelowTolerance

2

步长小于options.StepTolerance

OptimalSolution 1

解算器聚集到一个解决方案x

SolverLimitExceeded 0

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

OutputFcnStop 1

停在一个输出函数或函数。

NoFeasiblePointFound 2

对于优化问题,问题是不可行:边界乌兰巴托是不一致的。

对方程的问题,没有找到解决方案。

此表描述了退出的旗帜fminunc解算器。

退出旗fminunc 数值上等于 意义
NoDecreaseAlongSearchDirection 5

预测目标函数下降小于options.FunctionTolerance宽容。

FunctionChangeBelowTolerance 3

改变目标函数值小于options.FunctionTolerance宽容。

StepSizeBelowTolerance

2

的变化x比这个小options.StepTolerance宽容。

OptimalSolution 1

梯度的大小是小于options.OptimalityTolerance宽容。

SolverLimitExceeded 0

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

OutputFcnStop 1

停在一个输出函数或函数。

无限 3

在当前迭代目标函数如下options.ObjectiveLimit

此表描述了退出的旗帜fmincon解算器。

退出旗fmincon 数值上等于 意义
NoDecreaseAlongSearchDirection 5

级搜索方向的方向导数小于2 *options.OptimalityTolerance和最大约束违反小于options.ConstraintTolerance

SearchDirectionTooSmall 4

搜索方向的大小小于2 *options.StepTolerance和最大约束违反小于options.ConstraintTolerance

FunctionChangeBelowTolerance 3

目标函数值小于的变化options.FunctionTolerance和最大约束违反小于options.ConstraintTolerance

StepSizeBelowTolerance

2

的变化x小于options.StepTolerance和最大约束违反小于options.ConstraintTolerance

OptimalSolution 1

一阶最优性测量不到options.OptimalityTolerance,和最大约束违反小于options.ConstraintTolerance

SolverLimitExceeded 0

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

OutputFcnStop 1

停在一个输出函数或函数。

NoFeasiblePointFound 2

发现不可行点。

无限 3

在当前迭代目标函数如下options.ObjectiveLimit和最大约束违反小于options.ConstraintTolerance

此表描述了退出的旗帜fsolve解算器。

退出旗fsolve 数值上等于 意义
SearchDirectionTooSmall 4

的大小小于搜索方向options.StepTolerance方程,解决了。

FunctionChangeBelowTolerance 3

目标函数值小于的变化options.FunctionTolerance方程,解决了。

StepSizeBelowTolerance

2

的变化x小于options.StepTolerance方程,解决了。

OptimalSolution 1

一阶最优性测量不到options.OptimalityTolerance方程,解决了。

SolverLimitExceeded 0

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

OutputFcnStop 1

停在一个输出函数或函数。

NoFeasiblePointFound 2

聚合点,不是一个根。

TrustRegionRadiusTooSmall 3

方程没有解决。信赖域半径太小(trust-region-dogleg算法)。

此表描述了退出的旗帜fzero解算器。

退出旗fzero 数值上等于 意义
OptimalSolution 1

方程解决。

OutputFcnStop 1

停在一个输出函数或函数。

FoundNaNInfOrComplex 4

,,或复杂的搜索间隔期间遇到的值包含一个信号改变。

SingularPoint 5

可能聚集到一个奇点。

CannotDetectSignChange 6 没有发现两个点函数值相反的迹象。

此表描述了退出的旗帜patternsearch解算器。

退出旗patternsearch 数值上等于 意义
SearchDirectionTooSmall 4

一步的大小小于机器精度和约束违反小于ConstraintTolerance

FunctionChangeBelowTolerance 3

的变化fval和网格大小都小于指定的公差,和约束违反小于ConstraintTolerance

StepSizeBelowTolerance

2

的变化x和网格大小都小于StepTolerance和约束违反小于ConstraintTolerance

SolverConvergedSuccessfully 1

没有非线性约束——筛孔尺寸的大小小于指定的公差,和约束违反小于ConstraintTolerance

具有非线性约束——的大小互补措施(在这个表定义)小于√ConstraintTolerance,使用网格细比子问题已经解决了MeshTolerance和约束违反小于ConstraintTolerance

SolverLimitExceeded 0

函数评估或迭代的最大数量。

OutputFcnStop 1

停在一个输出函数或函数。

NoFeasiblePointFound 2

发现不可行点。

非线性约束求解的互补措施的标准向量元素是谁的cλ,在那里c非线性不等式约束违反,λ是对应的拉格朗日乘子。

此表描述了退出的旗帜遗传算法解算器。

退出旗遗传算法 数值上等于 意义
MinimumFitnessLimitReached 5

最低的健身限制FitnessLimit达到和约束违反小于ConstraintTolerance

SearchDirectionTooSmall 4

一步的大小小于机器精度和约束违反小于ConstraintTolerance

FunctionChangeBelowTolerance 3

适应度函数的值没有改变MaxStallGenerations代和约束违反小于ConstraintTolerance

SolverConvergedSuccessfully 1

没有非线性约束——平均累积价值变化的适应度函数MaxStallGenerations代小于FunctionTolerance和约束违反小于ConstraintTolerance

具有非线性约束-级的互补性测量(见互补措施(全局优化工具箱))小于√ConstraintTolerance,使用一个公差小于子问题已经解决了FunctionTolerance和约束违反小于ConstraintTolerance

SolverLimitExceeded 0

最大数量的代MaxGenerations超过了。

OutputFcnStop 1

停在一个输出函数或函数。

NoFeasiblePointFound 2

发现不可行点。

StallTimeLimitExceeded 4

拖延时间限制MaxStallTime超过了。

TimeLimitExceeded 5

时间限制MaxTime超过了。

此表描述了退出的旗帜particleswarm解算器。

退出旗particleswarm 数值上等于 意义
SolverConvergedSuccessfully 1

相对客观价值在过去的变化options.MaxStallIterations迭代小于options.FunctionTolerance

SolverLimitExceeded 0

迭代次数超过options.MaxIterations

OutputFcnStop 1

迭代停止输出函数或情节的功能。

NoFeasiblePointFound 2

范围不一致:对于一些,磅(我)>乌兰巴托(我)

无限 3

最下面的目标函数值options.ObjectiveLimit

StallTimeLimitExceeded 4

最好的目标函数值没有改变options.MaxStallTime秒。

TimeLimitExceeded 5

运行时间超过options.MaxTime秒。

此表描述了退出的旗帜simulannealbnd解算器。

退出旗simulannealbnd 数值上等于 意义
ObjectiveValueBelowLimit 5

目标函数值小于options.ObjectiveLimit

SolverConvergedSuccessfully 1

目标函数的平均变化值options.MaxStallIterations迭代小于options.FunctionTolerance

SolverLimitExceeded 0

最大数量的代MaxGenerations超过了。

OutputFcnStop 1

通过一个输出函数优化终止或情节功能。

NoFeasiblePointFound 2

发现不可行点。

TimeLimitExceeded 5

超过了时间限制。

此表描述了退出的旗帜surrogateopt解算器。

退出旗surrogateopt 数值上等于 意义
BoundsEqual 10

问题有独特的可行解决方案由于下列之一:

  • 所有的上界乌兰巴托(全局优化工具箱)下界是相等的(全局优化工具箱)

  • 线性等式约束Aeq * x =说真的点和边界有一个独特的解决方案。

surrogateopt没有执行任何可行点和函数返回值的优化。

FeasiblePointFound 3 找到可行点。解算器停止是因为继续发现新的可行点太少。
ObjectiveLimitAttained 1

目标函数值小于options.ObjectiveLimit。这个出口标志优先于退出旗10当适用。

SolverLimitExceeded 0

的数量超过功能评估options.MaxFunctionEvaluations或者运行时间超过options.MaxTime。如果非线性不等式问题,解决方案是可行的。

OutputFcnStop 1

优化输出函数或终止的情节功能。

NoFeasiblePointFound 2

没有找到可行的点由于下列之一:

  • 一个下界磅(我)超过一个相应的上界乌兰巴托(我)。或一个或多个装天花板(磅(i))超过一个相应的地板(乌兰巴托(i))因为我在intcon(全局优化工具箱)。在这种情况下,解决返回x = []fval = []

  • 磅=乌兰巴托和点是不可行的。在这种情况下,x =磅,.Fval fval = objconstr (x)

  • 如果存在,线性和整数约束是不可行的范围。在这种情况下,解决返回x = []fval = []

  • 整数,范围和线性约束是可行的,但没有找到可行解和非线性约束。在这种情况下,x是点最小最大非线性约束的不可行性,然后呢.Fval fval = objconstr (x)

此表描述了退出的旗帜MultiStartGlobalSearch解决者。

退出旗MultiStartGlobalSearch 数值上等于 意义
LocalMinimumFoundSomeConverged 2 至少一个局部最小值。一些当地的解算器聚集。
LocalMinimumFoundAllConverged 1 至少一个局部最小值。当地所有运行的解算器聚集。
SolverLimitExceeded 0 没有发现局部最小值。当地解决者和至少一个当地的解算器至少一次电话跑出迭代。
OutputFcnStop 1 停在一个输出函数或函数。
NoFeasibleLocalMinimumFound 2 没有找到可行的局部最小值。
TimeLimitExceeded 5 MaxTime限制超过。
NoSolutionFound 8 没有找到解决方案。所有运行本地解决退出旗2或更小,并不是所有等于2。
FailureInSuppliedFcn -10年 遇到失败的客观或非线性约束函数。

此表描述了退出的旗帜paretosearch解算器。

退出旗paretosearch 数值上等于 意义
SolverConvergedSuccessfully 1

满足下列条件之一:

  • 网格大小的现任者小于options.MeshTolerance和约束(如果有的话)是在满足options.ConstraintTolerance

  • 相对变化量小于帕累托集的传播options.ParetoSetChangeTolerance和约束(如果有的话)是在满足options.ConstraintTolerance

  • 相对变化量的体积小于帕累托集options.ParetoSetChangeTolerance和约束(如果有的话)是在满足options.ConstraintTolerance

SolverLimitExceeded 0 迭代次数超过options.MaxIterations的数量,或者超过功能评估options.MaxFunctionEvaluations
OutputFcnStop 1 停在一个输出函数或函数。
NoFeasiblePointFound 2 解算器无法找到满足所有的约束。
TimeLimitExceeded 5 优化时间超过options.MaxTime

此表描述了退出的旗帜gamultiobj解算器。

退出旗paretosearch 数值上等于 意义
SolverConvergedSuccessfully 1 几何平均的相对分布在价值的变化options.MaxStallGenerations代小于options.FunctionTolerance,最终小于平均传播蔓延过去options.MaxStallGenerations一代又一代。
SolverLimitExceeded 0 一代又一代的数量超过options.MaxGenerations
OutputFcnStop 1 停在一个输出函数或函数。
NoFeasiblePointFound 2 解算器无法找到满足所有的约束。
TimeLimitExceeded 5 优化时间超过options.MaxTime

优化过程的信息,作为一个结构返回。输出结构包含字段相关的潜在的解算器输出字段,这取决于解决者解决被称为:

  • “遗传算法”输出(全局优化工具箱)

  • “gamultiobj”输出(全局优化工具箱)

  • “paretosearch”输出(全局优化工具箱)

  • “particleswarm”输出(全局优化工具箱)

  • “patternsearch”输出(全局优化工具箱)

  • “simulannealbnd”输出(全局优化工具箱)

  • “surrogateopt”输出(全局优化工具箱)

  • “MultiStart”“GlobalSearch”返回当地解算器的输出结构。此外,输出结构包含以下字段:

    • globalSolver——要么“MultiStart”“GlobalSearch”

    • objectiveDerivative——需要在本节描述的值。

    • constraintDerivative——需要的值描述本节结束时,或“汽车”概率没有非线性约束。

    • 解算器——当地解决,例如“fmincon”

    • 当地的——包含额外的信息的结构优化。

      • 索尔——当地的解决方金宝搏官方网站案,作为一个向量的返回OptimizationValues对象。

      • x0——初始点为当地解决,作为细胞数组返回。

      • exitflag——出口的旗帜当地的解决方案,作为一个整数返金宝搏官方网站回向量。

      • 输出——结构数组,每个地方有一行的解决方案。每一行是本地输出结构对应于一个当地的解决方案。

解决包括额外的字段解算器输出结构来确定解算器使用,如“intlinprog”

解算器是一个非线性优化工具箱™的能手,解决包括一个或两个额外的字段描述导数估计类型。的objectivederivative如果合适,constraintderivative字段可以采取下列值:

  • “reverse-AD”为扭转自动分化

  • “forward-AD”提出自动分化

  • “有限差分”对有限差分估计

  • “封闭”线性或二次函数

拉格朗日乘数法在解决方案,作为一个结构返回。

请注意

解决不返回λequation-solving问题。

intlinprogfminunc解决,λ是空的,[]。对于其他解决者,λ这些字段:

  • 变量——包含每个问题变量的领域。每个问题的变量名称是一个结构,两个字段:

    • 较低的——拉格朗日乘数法与变量相关联下界相同大小的属性,作为一个数组返回的变量。非零项意味着解决方案是在下界。这些乘数的结构lambda.Variables。variablename.Lower

    • ——拉格朗日乘数法与变量相关联UpperBound相同大小的属性,作为一个数组返回的变量。非零项意味着解决方案是上界。这些乘数的结构lambda.Variables。variablename.Upper

  • 约束——为每个问题都包含一个字段约束。每个约束问题是结构约束的名字,是谁的名字,其值是一个数字数组大小相同的约束。非零项意味着解决方案的约束是活跃的。这些乘数的结构lambda.Constraints。constraintname

    请注意

    一个约束数组的元素都有相同的比较(< =,= =,或> =),都是同一类型的(线性、二次或非线性)。

算法

全部折叠

转换为解算器形式

在内部,解决通过调用函数解决优化问题解决者。的默认解决问题和支持解决的问题,看到的金宝app解决者函数。你可以覆盖默认的使用“规划求解”当调用名称-值对的论点解决

之前解决可以调用一个解决,这些问题必须转化为解算器形式,通过吗解决或其他相关函数或对象。例如,这种转换需要有一个矩阵表示线性约束而不是一个优化变量表达式。

算法的第一步是将优化表达式问题。一个OptimizationProblem对象有一个内部使用的变量的表达式列表。每个变量都有一个线性指数表达式,和大小。因此,变量有一个隐含的矩阵形式的问题。的prob2struct函数执行的转换问题形式解决形式。例如,看到的将问题转化为结构

对于非线性优化问题,解决使用自动分化计算目标函数的梯度和非线性约束函数。这些衍生品时应用目标和约束函数组成的金宝app支持操作优化变量和表达式。当自动分化并不适用,解决估计衍生品使用有限的差异。自动分化的详细信息,请参见自动分化背景。你可以控制解决使用自动分化的ObjectiveDerivative名称-值参数。

的算法intlinprog用来解决MILP问题,明白了intlinprog算法。的算法linprog用于解决线性规划问题,明白了线性规划算法。的算法quadprog用于解决二次规划问题,明白了二次规划算法。线性或非线性最小二乘求解算法,看到最小二乘(模型拟合)算法。非线性规划求解算法,看到无约束非线性优化算法约束非线性优化算法。为全局优化工具箱规划求解算法,看到全局优化工具箱文档。

为解决非线性方程,解决内部代表每个方程左右之间的区别。然后解决试图减少方程的平方和组件。的算法求解非线性系统方程,明白了方程求解算法。当这个问题也有界限,解决调用lsqnonlin方程组件的平方和最小化。看到最小二乘(模型拟合)算法

请注意

如果你的目标函数是一个平方和,和你想要的解决认识到它,把它写成规范(expr) ^ 2总和(expr。^ 2),而不是expr‘* expr或任何其他形式。内部解析器识别平方和只有当表示为一个正方形的规范或显式的广场。有关详细信息,请参见写具体问题具体分析最小二乘法的目标函数。例如,看到的非负线性最小二乘法,具体问题具体分析

自动分化

适用于自动分化(广告)解决prob2struct函数在下列条件:

  • 客观支持和约束函数,描述金宝app金宝app支持操作优化变量和表达式。他们不需要使用的fcn2optimexpr函数。

  • 解算器的调用解决fmincon,fminunc,fsolve,或lsqnonlin

  • 对于优化问题,“ObjectiveDerivative”“ConstraintDerivative”名称-值对的理由解决prob2struct“汽车”(默认),“auto-forward”,或自动翻转的

  • 对于方程的问题,“EquationDerivative”选项设置为“汽车”(默认),“auto-forward”,或自动翻转的

当广告应用 所有约束功能支持金宝app 不支持一个或多个约束金宝app
目标函数的支持金宝app 广告用于目标和约束 广告仅用于客观
目标函数不支持金宝app 广告仅用于约束 广告不习惯

当这些条件不满意,解决由有限差分估计梯度,prob2struct在其生成的函数文件不会创建渐变。

解决选择默认以下类型的广告:

  • 对于一般的非线性目标函数,fmincon默认为反向广告为目标函数。fmincon默认为反向广告为非线性约束函数当非线性约束的数量小于变量的数量。否则,fmincon默认转发广告为非线性约束函数。

  • 对于一般的非线性目标函数,fminunc默认为反向广告。

  • 最小二乘目标函数,fminconfminunc目标函数的默认转发广告。运用基于最小二乘的定义目标函数,看看写具体问题具体分析最小二乘法的目标函数

  • lsqnonlin默认转发广告当目标向量中的元素的数量大于或等于变量的数量。否则,lsqnonlin默认为反向广告。

  • fsolve默认转发广告当方程的数量大于或等于变量的数量。否则,fsolve默认为反向广告。

请注意

使用自动衍生品问题的转换prob2struct,通过选项指定这些衍生品。

选择= optimoptions (“fmincon”,“SpecifyObjectiveGradient”,真的,“SpecifyConstraintGradient”,真正的);问题。选项=选项;

目前,广告作品只有一阶导数;它并不适用于第二或高阶导数。举个例子,如果你想使用一个分析黑森速度优化,您不能使用解决直接,而且必须用描述的方法提供衍生品运用工作流

扩展功能

版本历史

介绍了R2017b

全部展开