La traducción de esta página está obsoleta。Haga clic aquí para ver la última versión en inglés。
fminunc
entre el mínimo de una función multivariable no restringida
Sintaxis
Descripcion
解算器programación无线性。
事故mínimo特别问题
在哪里f(x) es una función que devuelve UN escalar。
xEs UN向量o una matriz;consulte矩阵论证.
Comienza en el puntox
= fminunc (有趣的
,x0
)x0
E intenta encontrar UN mínimo localx
De la función descrita en有趣的
.El puntox0
Puede ser UN escalar, UN vector o una matriz。
背板
在Pasar parámetros adicionales解释cómo pasar parámetros adicionales a la función目标与功能restricción没有直线,没有必要。
fminunc
在限制条件下,没有直线的问题。四素问题的限制,一般意义上的利用fmincon
.ConsulteTabla de decisiones de optimización.
minimizax
= fminunc (有趣的
,x0
,选项
)有趣的
管制optimización规定选项
.Utiliceoptimoptions
Para configurar estas opciones。
包括
Minimizar un poliomio
Minimice la función .
Para hacerlo, escriba una función anónima有趣的
客观计算。
有趣= @ (x) 3 * x (1) ^ 2 + 2 * x (1) * (2) + x (2) ^ 2 - 4 * x (1) + 5 * x (2);
Llame一fminunc
Para encontrar UN mínimo de有趣的
cerca德[1]
.
X0 = [1,1];[x,fval] = fminunc(fun,x0)
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
x =1×22.2500 - -4.7500
Fval = -16.3750
Proporcionar gradient
fminunc
Puede ser más rápida y más可伸缩的比例衍生物。
誓死誓死función我们英勇的目标función。使用el格式条件化描述包括梯度和黑森.La función objetivo es La función de Rosenbrock
Que tiene el gradiente
.
El código de la función客观空间最后的结局.
关于利用梯度的理论función客观。Asimismo,建立算法“信赖域”
.
选项= optimoptions(“fminunc”,“算法”,“信赖域”,“SpecifyObjectiveGradient”,真正的);
那是偶然的[1,2
].Después, lame afminunc
.
X0 = [-1,2];乐趣= @rosenbrockwithgrad;X = fminunc(fun,x0,options)
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
x =1×21.0000 - 1.0000
El siguiente código crea la funciónrosenbrockwithgrad
, que incluye el gradiente como la segunda salida。
函数[f,g] = rosenbrockwithgrad(x)计算目标fF = 100*(x(2) -x(1)²)²+ (1-x(1))²;如果Nargout > 1所需梯度百分比G = [-400*(x(2)-x(1)^2)*x(1) - 2*(1-x(1));200 * (x (2) - x (1) ^ 2)];结束结束
我们的结构问题
这是一个错误的问题Proporcionar gradient运用结构问题,分别论证。
誓死誓死función我们英勇的目标función。使用el格式条件化描述包括梯度和黑森.La función objetivo es La función de Rosenbrock
,
Que tiene el gradiente
.
El código de la función客观空间最后的结局.
关于利用梯度的理论función客观。Asimismo,建立算法“信赖域”
.
选项= optimoptions(“fminunc”,“算法”,“信赖域”,“SpecifyObjectiveGradient”,真正的);
在结构上的问题,包括对原始的惩罚X0 = [-1,2]
.Para obtener más información在重建的道路上清醒地思考,咨询问题.
问题。选项=选项;问题。x0=[1,2];问题。objective = @rosenbrockwithgrad; problem.solver =“fminunc”;
Resuelva el problem。
X = fminunc(问题)
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
x =1×21.0000 - 1.0000
El siguiente código crea la funciónrosenbrockwithgrad
, que incluye el gradiente como la segunda salida。
函数[f,g] = rosenbrockwithgrad(x)计算目标fF = 100*(x(2) -x(1)²)²+ (1-x(1))²;如果Nargout > 1所需梯度百分比G = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));200 * (x (2) - x (1) ^ 2)];结束结束
英勇的战士óptimo德拉función目标
中心点tanto la ubicación como el mínimo de una función没有直线y el valor de la función en ese mínimo。La función目标
.
有趣= @ (x) x (1) * exp (- x (x (1) ^ 2 + (2) ^ 2)) + x (x (1) ^ 2 + (2) ^ 2) / 20;
国家安全ubicación国家英勇función国家最小目标X0 = [1,2]
.
X0 = [1,2];[x,fval] = fminunc(fun,x0)
找到局部极小值。优化完成,因为梯度的大小小于最优性公差的值。
x =1×2-0.6691 - 0.0000
Fval = -0.4052
审查程序resolución
Escoja opciones y salidas defminunc
审查程序Para resolución。
建立操作性para obtener una visualización迭代应用算法“拟牛顿”
.
选项= optimoptions(@fminunc,“显示”,“通路”,“算法”,“拟牛顿”);
La función目标
有趣= @ (x) x (1) * exp (- x (x (1) ^ 2 + (2) ^ 2)) + x (x (1) ^ 2 + (2) ^ 2) / 20;
Comience la minimización enX0 = [1,2]
你的权利,你的权利,你的权利solución你的进程。
X0 = [1,2];[x,fval,exitflag,output] = fminunc(fun,x0,options)
一阶迭代函数函数f(x)步长最优性0 3 0.256738 0.173 1 6 0.222149 1 0.131 29 0.15717 1 0.158 3 18 -0.227902 0.438133 0.386 4 21 -0.299271 1 0.46 5 30 -0.404028 0.102071 0.0458 6 33 -0.404868 1 0.0296 7 36 -0.405236 1 0.00119 8 39 -0.405237 1 0.000252 9 42 -0.405237 1 7.97e-07找到局部最小值。优化完成,因为梯度的大小小于最优性公差的值。
x =1×2-0.6691 - 0.0000
Fval = -0.4052
Exitflag = 1
输出=带字段的结构:迭代:9 funcCount: 42 stepsize: 2.9343e-04 lssteplth: 1 firstorderopt: 7.9721e-07 algorithm: '准牛顿' message: '…'
El indicador de salida
1
Muestra que la solución es UN óptimo local。La estructura
输出
Muestra el número de iteraciones, el número de evaluaciones de función y otra información。La visualización iterativa también muestra el número de iteraciones y las evaluaciones de función。
entrada论证
有趣的
- - - - - -Función que desea minimizar
Identificador de función|Nombre de función
Función最小的地方,特别的地方función没有名字función。有趣的
Es una función que acepta UN vector o UN arreglox
Y devuelve UN escalar realf
, con la función客观评估enx
.
fminunc
pasax
A su función形式上的论证目的x0
.Por ejemplo, six0
Es UN arreglo de 5 por 3,fminunc
pasax
一个有趣的
Como UN arreglo de 5 por 3。
Especifique有趣的
Como UN identificador de función para UN archivo:
X = fminunc(@myfun,x0)
在哪里myfun
es una función de MATLAB®科莫
函数F = myfun(x) F =...计算x处的函数值
También绒面专用有趣的
Como UN identificador de función para una función anónima:
X = fminunc(@(X)范数(X)^2,x0);
Si puede计算器el梯度de有趣的
yla opcionSpecifyObjectiveGradient
Está establecida en真正的
, según establishment
选项= optimoptions(“fminunc”,“SpecifyObjectiveGradient”,真正的)
有趣的
矢量梯度g (x)
En el segundo argument to de salida。
Si también puede calcular la matriz Hessianayla opcionHessianFcn
Está establecida en“目标”
medianteoptions = optimoptions('fminunc','HessianFcn','objective')
yla opcion算法
Está establecida en“信赖域”
,有趣的
Debe devolver el valor hessianoH (x)
, una matriz simétrica, en UN tercer argumento de salida。有趣的
Puede dar una matriz hessiana分散化。ConsulteHessian for fminunc信任区域或fmincon信任区域反射算法Para ver más详细信息。
El algoritmo信赖域
Le permite proporciar una función de multiplicación de matriz hessiana。Esta función在黑森州矩阵中计算直接黑森州矩阵的结果。回忆起可怕的往事。Consulte黑森乘法函数.
比如:趣味= @(x)sin(x(1))*cos(x(2))
数据提示:字符
|function_handle
|字符串
x0
- - - - - -Punto进行调整
向量真实|arreglo真实
Punto inicial的,特别是como un vector real的。Los求解器使用el número de elements enx0
Y el tamaño dex0
Para determinar el número y el tamaño de las变量que有趣的
acepta。
比如:X0 = [1,2,3,4]
数据提示:双
选项
- - - - - -Opciones de optimización
公司salida德optimoptions
|地震来了optimset
Opciones de optimización, speciificadas como la salida deoptimoptions
噢,这是一种毁灭optimset
.
适用的运算法则与相关运算法则与特殊运算法则。Consulte优化选项参考Para ver información detallada。
阿古纳斯opciones no aparecen en la visualizaciónoptimoptions
.手鼓上的字母和字母。Para obtener más详情,咨询Visualizar各种选择.
都是算法 | |
|
算术题 El algoritmo |
CheckGradients |
比较“客观梯度”和“最终差异”的“客观梯度”。拉斯奥皮奥涅的儿子 帕拉 |
记录 | Muestre información de diagnóstico清醒的la función que se desea minimizar o resolver。拉斯奥皮奥涅的儿子 |
DiffMaxChange | Cambio máximo最终差异的梯度变量(不确定因素)。La opción predeterminada |
DiffMinChange | Cambio mínimo最终差异的梯度变量(不确定因素)。La opción predeterminada |
显示 |
Nivel de visualización(咨询迭代显示):
|
FiniteDifferenceStepSize |
因子tamaño de salto de escalar和向量的最后差别。Cuando establece
符号' (x) =符号(x) excepto符号' (0)= 1 .最后的差别是最重要的
FiniteDifferenceStepSize 展开一个UN向量。La opción predeterminadasqrt (eps) 结束和进步的差异eps ^ (1/3) 终点与中心的差别。信赖域应用算法 帕拉 |
FiniteDifferenceType |
最后的差别,对估计的梯度的利用 帕拉 |
FunValCheck | 我的幸福función我们的目标válidos。先天调整, |
MaxFunctionEvaluations |
Número máximo de evaluaciones de función许可,un entero positive。英勇的先兆 帕拉 |
MaxIterations |
Número máximo关于许可的迭代,不进入正题。英勇的先兆 帕拉 |
OptimalityTolerance |
容忍terminación最优秩序(积极的斗争)。La opción predeterminada 帕拉 |
OutputFcn |
特别的变化,功能,定义,通常情况下,一个las que una función de optimización lame en cada iteración。我们的身份证明función我们的身份证明función。La opción predeterminada es ninguno ( |
PlotFcn |
代表各种不同的进度表和计算方法;选择的一个una de las gráficas predefinidas o escriba la suya propia。función de gráfica一体化,un identificador de función o o arreglo de celdas nombres de función de gráfica一体化o identificadores de función。Para funciones de gráfica personalizadas, pase identificadores de función。La opción predeterminada es ninguno (
la funciones de gráfica个性化利用la misma sintaxis que Las funciones de salida。Consulte优化工具箱的输出函数y输出函数和图函数语法. 帕拉 |
SpecifyObjectiveGradient |
梯度para la función定义目标和日常目标。领事la descripción de 帕拉 |
StepTolerance |
容忍terminación en 帕拉 |
TypicalX |
英勇 El algoritmo |
Algoritmo信赖域 |
|
FunctionTolerance |
宽容terminación英勇función,积极向上。La opción predeterminada 帕拉 |
HessianFcn |
Si se ha establecido en Si se ha establecido en 帕拉 |
HessianMultiplyFcn |
Función de multiplicación de matriz hessiana, especificada como un identificador de función。Para structurados a gran escala问题,esta función calcula el producto de la matriz hessiana W = hmfun(Hinfo,Y) 在哪里 最基本的论证到最错误的论证到最简单的论证到最真实的论证función客观 [f,g,Hinfo] = fun(x)
背板 Para utilzar la opción Para ver un ejemplo, consulte密结构黑森最小化,线性等式. 帕拉 |
HessPattern | Patrón de dispersión de la matriz hessiana para diferenciación finita。Establezca Utilice 宽多拉结构海desconocida,没有建立 |
MaxPCGIter | Número máximo基于条件的变化梯度(PCG),不确定因素。La opción predeterminada |
PrecondBandWidth | 对PCG有先决条件,没有否定的理由。形式上的预先决定, |
SubproblemAlgorithm |
确定性cómo se calcula el salto de iteración。La opción predeterminada, |
TolPCG | 容忍度terminación en la iteración PCG,积极向上。La opción predeterminada |
Algoritmo拟牛顿 |
|
HessUpdate | Método para escoger la dirección de búsqueda en el algoritmo准牛顿。Las opciones son Las siguientes:
|
ObjectiveLimit |
Una tolerancia (criterio de detención) que es un escalar。我们的英勇función我们的目标iteración我们的心灵 |
UseParallel |
Cuando |
比如:options = optimoptions('fminunc',' speciyobjectivegradient ',true)
问题
- - - - - -问题结构
estructura
结构问题,特别是对结构问题的解释:
Nombre de campo | Entrada |
---|---|
|
脂肪酸objetivo |
|
Punto的非正式parax |
|
“fminunc” |
|
Opciones creadas conoptimoptions |
数据提示:结构体
salida的论证
fval
-英勇función客观solución
期实
英勇función目标之路solución,精神之路número真实。Por lo general,fval
=有趣的(x)
.
exitflag
- Razón por la quefminunc
Se ha detenido
英勇entero
Razón por la quefminunc
我知道你是谁,我是谁。
|
“容忍的程度之大” |
|
cambio en |
|
勇敢的勇气función我们的目标和我们的宽容 |
|
La reducción前展望en La función我们的目标是宽容 |
|
El número de iteraciones ha sobrepasado |
|
El algorimo ha sido terminado por la función de salida。 |
|
La función objetivo en La iteración actual ha descendido por debajo de |
输出
- Información清醒的过程optimización
estructura
Información清醒的进程optimización,与我们一起重建家园:
迭代 |
Número de iteraciones realizadas |
funcCount |
Número de evaluaciones de función |
firstorderopt |
Medida de optimalidad de primer orden |
算法 |
算法optimización utilitzado |
cgiterations |
Número total de iteraciones PCG (solo算法 |
lssteplength |
Tamaño del salto de búsqueda de línea relativo a la dirección de búsqueda(单独算法 |
stepsize |
Desplazamiento final en |
消息 |
Mensaje de salida |
研究生
- Gradiente en la solución
向量真实
Gradiente en la solución, devuelto como un vector real。研究生
Indica el gradient de有趣的
En el puntox (:)
.
黑森
- Matriz hessiana proximada
matriz真实
近距离的母性,真实的母性。Para saber cuál el signado de黑森
, consulte黑森输出.
Algoritmos
Algoritmo拟牛顿
El algoritmo拟牛顿
实用工具método准牛顿BFGS con un procemiento de búsqueda de línea cúbica。El método准牛顿实用la fórmula BFGS ([1],[5],[8]y[9]) para actualizar la aproximación de la matriz Hessiana。Puede选择la fórmula DFP ([4],[6]y[7]),逆母体,建立la opciónHessUpdate
在“dfp”
(y la opción算法
在“拟牛顿”
).Puede seleccionar un método de descent so más pronunciado establishmentHessUpdate
在“steepdesc”
(y算法
在“拟牛顿”
), aunque esta configuración正常的效率低下。Consultefminunc准牛顿算法.
Algoritmo信赖域
El algoritmo信赖域
这是必要的有趣的
Y que establlezcaSpecifyObjectiveGradient
在真正的
我们使用optimoptions
.Este algoritmo es un método de región de sub - espacio和se basa enel método de Newton de reflejo de punto内部描述[2]y[3].卡达iteración隐含solución近距离系统线性效用放大método共轭条件前缘梯度(PCG)。Consultefminunc信任域算法,非线性极小化的信赖域方法y预条件共轭梯度法.
Funcionalidad alternativa
应用程序
拉他利亚优化de Live Editor proporciona una interfaz视觉parafminunc
.
Referencias
[1] Broyden, C. G.“一类双秩最小化算法的收敛性”。科学杂志。数学。品, Vol. 6, 1970, pp. 76-90。
[2] Coleman, t.f., Li Y.。有边界的非线性极小化的内部信赖域方法。SIAM优化期刊, Vol. 6, 1996, pp. 418-445。
[3] Coleman, t.f., Li Y.。大尺度非线性有界极小化问题的反射牛顿方法的收敛性数学规划,第67卷第2期,1994年,第189-224页。
[4] Davidon, W. C. <最小化的可变度量方法>。a.e.c研发报告, anl - 5990,1959。
[5] Fletcher, R.《可变度量算法的新方法》。电脑杂志, Vol. 13, 1970, pp. 317-322。
[6]弗莱彻,R.《优化的实用方法》。1卷,无约束最优化《约翰·威利父子》,1980年。
R.弗莱彻和M. J. D.鲍威尔。一种快速收敛下降最小化方法电脑杂志, Vol. 6, 1963, pp. 163-168。
[8] Goldfarb, D. <由变分均值导出的变度量更新族>。计算数学,卷24,1970,第23-26页。
[9] Shanno, d.f . <函数最小化的拟牛顿方法的条件化>。计算数学, Vol. 24, 1970, pp. 647-656。
Capacidades ampliadas
Soporte parallelo automático
Acelere código mediante la ejecución automática de cálculo Parallel mediante并行计算工具箱™。
Para ejecutar en parallel,建立la opción“UseParallel”
在真正的
.
Options = optimoptions('
solvername
”、“UseParallel’,真的)
Para obtener más información, consulte在优化工具箱中使用并行计算.
历史版本
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。