主要内容

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必须返回两个额外的输出,gradc梯度.的gradc参数是每个约束的梯度为一列的矩阵梯度

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

客观的

目标函数的函数句柄。对于所有解算器,除了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),……“选项”,选择);
介绍了R2010a