FindArgMax

FindArgMax[f,x]

给出 f 的一个局部最大值的坐标 xmax.

FindArgMax[f,{x,x0}]

给出 f 的一个局部最大值的坐标 xmax,通过从点 x=x0 开始搜索求出.

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

给出多元函数的一个局部最大值的坐标 {xmax,ymax,}.

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

给出约束 cons 下的一个局部最大值的坐标.

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

在约束定义的区域内的一个点开始.

更多信息和选项

  • FindArgMax[,{x,y,}] 实际上等价于 {x,y,}/.Last[FindMaximum[,{x,y,},].
  • 如果一个变量的起点以列表形式给出,则变量值采用有相同维数的列表.
  • 约束条件 cons 可以包含方程、等式或这些表达式的逻辑组合.
  • 约束条件 cons 可以是下列任意的逻辑组合:
  • lhs==rhs方程
    lhs>rhs 或者 lhs>=rhs 不等式
    {x,y,}reg范围指定
  • FindArgMax 首先局部化所有变量值,然后计算符号变量 f,然后重复进行计算数值结果.
  • FindArgMax 有属性 HoldAll,并实际上用 Block 局部化变量.
  • FindArgMax[f,{x,x0,x1}]x0x1 作为 x 的前 2 个值搜索 f 的局部最大值,避免使用导数.
  • FindArgMax[f,{x,x0,xmin,xmax}] 搜索局部最大值,如果 x 超出了 xminxmax 的范围,停止搜索.
  • 除了当 fcons 都是线性的, FindArgMax 求得的结果可能是局部的,但不是全局的最大数.
  • 在默认情况下,所有变量都假定为实数.
  • 对于线性 fconsxIntegers 可以用来指定一个变量仅采用整数值.
  • FindArgMax 具有和 FindMaximum 相同的选项.
  • 所有选项的列表

范例

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

基本范例  (4)

求出点 {x},在该点一元函数 -2x^2-3x+5 有一个最大值:

求出点 {x,y},在该点函数 Sin[x]Sin[2y] 有一个最大值:

求出约束下函数在一个点有一个最大值:

在一个几何区域上,求函数的最大值所在的点:

绘制图线:

范围  (12)

在不同起点下,得到不同局部最大值的坐标:

x=2y=2 点开始,二元变量函数的一个局部最大值的坐标:

约束在一个圆内的一个局部最大值的坐标:

不提供起点:

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

可以指定 Or 约束:

求一个范围内的最大值:

绘制图线:

求实现两个区域直接最大距离的点:

绘制图线:

的最大值,以使得矩形和椭圆仍然相交:

绘制图线:

的最大值,以使得 包含给定的三个点:

绘制图线:

使用 指定 中的一个向量:

求实现两个区域直接最大距离的点:

绘制图线:

选项  (7)

AccuracyGoal 和 PrecisionGoal  (2)

下面指定收敛规则 TemplateBox[{{{x, _, k}, -, {x, ^, *}}}, Norm]<=max(10^(-9),10^(-8)TemplateBox[{{x, _, k}}, Norm])TemplateBox[{{del , {f, (, {x, _, k}, )}}}, Norm]<=10^(-9):

下面指定收敛规则 TemplateBox[{{{x, _, k}, -, {x, ^, *}}}, Norm]<=max(10^(-20),10^(-18)TemplateBox[{{x, _, k}}, Norm])TemplateBox[{{del , {f, (, {x, _, k}, )}}}, Norm]<=10^(-20):

提高 WorkingPrecision,将使得过程收敛:

EvaluationMonitor  (1)

绘制收敛于局部最大值:

Gradient  (1)

下面用给定梯度,自动计算 Hessian:

下面用提供的梯度和 Hessian:

Method  (1)

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

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

NMaximize 也可以使用直接搜索方式的范围:

StepMonitor  (1)

在求函数的最大值过程中,FindArgMax 采用的步长:

WorkingPrecision  (1)

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

属性和关系  (1)

FindMaximum 给出最大点和最小点的值:

FindArgMax 给出最大值的坐标:

FindMaxValue 给出最大点的值:

可能存在的问题  (4)

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

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

整数的线性程序算法仅对机器数问题有效:

某些时候提供一个适当的初始值,对收敛算法会有帮助:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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