createOptimProblem

创建优化问题结构

语法

问题= createOptimProblem (“solverName”)
问题= createOptimProblem (“solverName”、“ParameterName”、ParameterValue…)

描述

问题= createOptimProblem (“solverName”)方法创建空的优化问题结构solverName解算器。

问题= createOptimProblem (“solverName”、“ParameterName”、ParameterValue…)接受一个或多个逗号分隔的参数名称/值对。指定ParameterName在单引号。

输入参数

solverName

求解器的名称。对于一个GlobalSearch问题,使用“fmincon”。对于一个MultiStart问题,使用“fmincon”,“fminunc”,“lsqcurvefit”要么'lsqnonlin'

名称-值对的观点

“Aeq”

矩阵为线性等式约束。约束的形式如下:

Aeq x=说真的

“Aineq”

矩阵为线性不等式约束。约束的形式如下:

Aineq Xbineq

“说真的”

线性等式约束的向量。约束的形式如下:

Aeq x=说真的

“bineq”

线性不等式约束的向量。约束的形式如下:

Aineq Xbineq

'磅'

下界向量。

也可以是数组;看到矩阵的参数(优化工具箱)。

“nonlcon”

函数句柄为非线性约束函数。约束函数必须接受一个向量x返回两个向量:c,非线性不等式约束,量表信,非线性等式约束。如果其中一个约束函数是空的,nonlcon必须返回[]这个函数。

如果GradConstr选择是“上”,那么另外nonlcon必须返回两个额外的输出,gradcgradceq。的gradc参数是一个矩阵,每个约束的梯度是一个列,就像这样gradceq

有关更多信息,请参见写约束

“目标”

函数句柄到目标函数。对于所有的解算器,除了lsqnonlinlsqcurvefit,目标函数必须接受一个向量x并返回一个标量。如果GradObj选择是“上”,然后目标函数必须返回第二个输出,一个向量,表示目标的梯度。为lsqnonlin,目标函数必须接受一个向量x然后返回一个向量。lsqnonlin求目标函数值的平方和。为lsqcurvefit,目标函数必须接受两个输入,xxdata,并返回一个向量。

有关更多信息,请参见计算目标函数

“选项”

优化选项。创建选项optimoptions,或者从优化应用程序导出(优化工具箱)。

乌兰巴托的

上界的向量。

乌兰巴托也可以是数组;看到矩阵的参数(优化工具箱)。

“x0”

一个向量,一个优化的潜在起点。给出了问题的维数。

x0也可以是数组;看到矩阵的参数(优化工具箱)。

“xdata”

数据点的向量lsqcurvefit

“ydata”

数据点的向量lsqcurvefit

输出参数

问题

结构优化问题。

例子

使用Rosenbrock的函数创建一个问题结构作为目标(参见遗传算法中的混合方案),内点算法fmincon和带绝对值的界限2:

anonrosen = @ (x) (100 * (x (2) - (1) ^ 2) ^ 2 + (1 - x (1)) ^ 2);选择= optimoptions (@fmincon、“算法”、“内点”);问题= createOptimProblem (fmincon, x0, randn (2, 1),…anonrosen“客观”,“磅”,(2);2),乌兰巴托,(2,2),……“选项”,选择);

选择

您可以通过从优化应用程序(optimtool),如所述从优化应用程序导出

介绍了R2010a