FindMinimum

FindMinimum[f,x]

搜索 f 的局部极小值,从一个自动选定的点开始.

FindMinimum[f,{x,x0}]

搜索 f 的局部最小值,从 x=x0 开始.

FindMinimum[f,{{x,x0},{y,y0},}]

搜索多元函数的局部最小值.

FindMinimum[{f,cons},{{x,x0},{y,y0},}]

搜索约束条件 cons 下局部最小值.

FindMinimum[{f,cons},{x,y,}]

从约束条件定义区域内的点开始.

更多信息和选项

  • FindMinimum 返回 {fmin,{x->xmin}} 形式的列表,其中 fmin 是找到的 f 最小值,且 xmin 是找到的 x 的值.
  • 如果变量的初始值是以列表形式给出,变量值采用相同维数的列表.
  • 约束条件 cons 可以包含方程、不等式或这些表达式的逻辑组合.
  • 约束条件 cons 可以是下列任意的逻辑组合:
  • lhs==rhs方程
    lhs>rhslhs>=rhs 不等式
    {x,y,}reg区域规范
  • FindMinimum 首先局部化所有变量值,然后计算符号变量下的 f,然后重复计算数值结果.
  • FindMinimum 具有属性 HoldAll,且实际上用 Block 局部化变量.
  • FindMinimum[f,{x,x0,x1}]x0x1 作为 x 的前 2 个值搜索 f 的局部最小值,避免使用导数.
  • FindMinimum[f,{x,x0,xmin,xmax}] 搜索局部最小值,如果 x 超出了 xminxmax 的范围,停止搜索.
  • 除了当 fcons 都是线性的,由 FindMinimum 找到的结果可能是局部的,但不是全局的最小数.
  • 在默认情况下,所有变量都假定为实数.
  • 对于线性的 fconsxIntegers 可以用来指定变量仅采用整数值.
  • 可以给出下列选项:
  • AccuracyGoalAutomatic搜索的准确度
    EvaluationMonitor Nonef 计算时,计算的表达式
    Gradient Automaticf 梯度分量的列表
    MaxIterationsAutomatic使用最大迭代数
    Method Automatic使用的方法
    PrecisionGoalAutomatic搜索的精度
    StepMonitor None每个步骤计算的表达式
    WorkingPrecision MachinePrecision内部计算的精度
  • AccuracyGoalPrecisionGoal 的设置指定搜索最小值的坐标值和函数值的数字位数.
  • FindMinimum 持续计算直到由 AccuracyGoalPrecisionGoal 指定的目标中的任何一个被达到.
  • Method 的可能设置包括 "ConjugateGradient""PrincipalAxis""LevenbergMarquardt""Newton""QuasiNewton""InteriorPoint""LinearProgramming",默认是 Automatic.

范例

打开所有单元关闭所有单元

基本范例  (4)

搜索一个局部最小值,从 开始搜索:

提取在局部最小值处 x 的值:

求局部最小值,从 开始,在约束条件 下:

求一个线性函数的最小值,在线性和整数约束下:

在几何区域上求函数的最小值:

绘制图线:

范围  (12)

不同的初始值,您可以获得不同的局部最小值:

一个二元函数的局部最小值,从 x=2y=2 开始:

限制在一个圆盘内的局部最小值:

不一定要提供初始值:

对线性目标和约束条件,可以加上整数约束条件:

可以指定 Or 约束条件:

在区域上求最小值:

绘制图线:

求两个区域之间的最小距离:

绘制图线:

求最小的 使得三角形和椭圆形仍然交叠:

绘制图线:

求包括给定三个点的具有最小半径的圆盘:

绘制图线:

使用 Circumsphere 直接给出相同结果:

使用 指定 中的一个向量:

求两个区域之间的最小距离:

绘制图线:

选项  (7)

AccuracyGoal 和 PrecisionGoal  (2)

这指定了收敛规则

这强加了收敛规则

设置一个高 WorkingPrecision 使过程收敛:

EvaluationMonitor  (1)

绘制收敛于局部最小值:

Gradient  (1)

使用一个给定的梯度;自动地计算海森矩阵:

同时提供梯度和海森矩阵:

Method  (1)

在这个例子中,用默认的基于导数的方式会有困难:

在这些例子中,不需要导数的直接搜索方式会很有帮助:

NMinimize 也使用了一系列的直接搜索方法:

StepMonitor  (1)

在求一个函数最小值的过程中 FindMinimum 采用的步骤:

WorkingPrecision  (1)

设置工作精度为 ;默认情况下 AccuracyGoalPrecisionGoal 设置为

应用  (3)

从1973年到1994年,S&P 500 指数的长期债券的年回报(R):

计算回报的均值和协方差:

最小化波动,实现至少 10% 的回报:

找出能包含 个给定半径 的不重叠圆的最小正方形,其中 . 指定圆的数量和每个圆的半径:

为圆 的中心,则目标是最小化 . 目标可以转换为最小化

这些圆不能重叠:

收集变量:

最小化目标

这些圆包含在正方形 中:

计算圆所覆盖的面积占正方形面积的比例:

求一条穿过圆形障碍物的路径,使起点和终点之间的距离最小:

路径被离散成 个不同的点,点与点之间的距离为 ,其中 是最小化的轨迹长度:

这些点不能在圆形物体内:

起点和终点是已知的:

收集变量:

在约束条件下,使长度 最小化:

可视化结果:

属性和关系  (2)

FindMinimum 尽可能返回一个局部最小值,NMinimize 试图求一个全局最小值:

Minimize 求全局最小值,并可以在无穷精度下计算:

FindMinimum 同时给出最小值和产生最小值的点:

FindArgMin 给出最小值的位置:

FindMinValue 给出最小值:

可能存在的问题  (6)

用机器精度算术,即使具有平滑最小值的函数看起来也会崎岖不平的:

超出机器精度通常可以避免这类的问题:

如果限定区域为空,算法不会收敛:

如果最小值不是有限的,算法不会收敛:

整数线性规划算法仅对机器数问题有效:

某些时候提供一个适当的初始值可以帮助算法收敛:

符号计算函数可能很耗时:

限制函数定义可防止符号计算:

Wolfram Research (1988),FindMinimum,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FindMinimum.html (更新于 2014 年).

文本

Wolfram Research (1988),FindMinimum,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FindMinimum.html (更新于 2014 年).

CMS

Wolfram 语言. 1988. "FindMinimum." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/FindMinimum.html.

APA

Wolfram 语言. (1988). FindMinimum. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FindMinimum.html 年

BibTeX

@misc{reference.wolfram_2024_findminimum, author="Wolfram Research", title="{FindMinimum}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FindMinimum.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_findminimum, organization={Wolfram Research}, title={FindMinimum}, year={2014}, url={https://reference.wolfram.com/language/ref/FindMinimum.html}, note=[Accessed: 24-November-2024 ]}