FindMaximum

FindMaximum[f,x]
求出 f 的局部极大值,从一个自动选定的点开始.

FindMaximum[f,{x,x0}]
求出 f 的局部极大值,从点 x=x0 开始.

FindMaximum[f,{{x,x0},{y,y0},}]
求出多变量的函数中局部极大值.

FindMaximum[{f,cons},{{x,x0},{y,y0},}]
求出满足 cons 约束条件的局部极大值.

FindMaximum[{f,cons},{x,y,}]
从约束条件定义区域内的点开始.

更多信息和选项更多信息和选项

  • FindMaximum 返回形式为 {fmax,{x->xmax}} 的列表,当 fmaxf 里的最大值时,则 xmaxx 里的值.
  • 若起始点是给定列表里的变量,则变量的值与列表的维数相同.
  • cons 约束包括方程、不等式或这些逻辑组合.
  • 约束 cons 可以是下列的逻辑组合:
  • lhs==rhs方程
    lhs>rhs 或者 lhs>=rhs 不等式
    {x,y,}reg区域指定
  • FindMaximum 首先局部化所有变量值,然后求 f 里变量的符号值,最后求结果的数字值.
  • FindMaximum 具有 HoldAll 属性,并且使用 Block 局部化变量.
  • FindMaximum[f,{x,x0,x1}] 查寻 f 里的局部极大值,其中 f 使用 x0x1 作为 x 的前两个值,从而避免使用导数.
  • FindMaximum[f,{x,x0,xmin,xmax}] 查寻一个局部极大值,若 x 的范围在 xminxmax 之外,则停止查寻.
  • 除了 fcons 都线性化,否则 FindMaximum 的结果只能作为局部量,不能作为全局量或最大量.
  • 默认的情况下,所有变量假定是实数.
  • fcons 是线性的,xIntegers 只指定是整数型的变量.
  • 给出以下选项:
  • AccuracyGoalAutomatic精确查询
    EvaluationMonitorNone当计算 f 值时,运行的表达式
    GradientAutomatic梯度函数列表 {D[f,x],D[f,y],}
    MaxIterationsAutomatic使用迭代的最大数
    MethodAutomatic使用的方法
    PrecisionGoalAutomatic查询的精度
    StepMonitorNone对表达式求值时采取的步长
    WorkingPrecisionMachinePrecision内部计算中的精度
  • AccuracyGoalPrecisionGoal 的默认设置是 WorkingPrecision/2.
  • AccuracyGoalPrecisionGoal 的设置指定在最大坐标值和最大函数值处查询的位数.
  • FindMaximum 将继续运行,直到 AccuracyGoalPrecisionGoal 指定的目标达到.
  • 在默认 Automatic 的情况下,Method 的设置包括 "ConjugateGradient""Gradient""LevenbergMarquardt""Newton""QuasiNewton".

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

基本范例  (4)基本范例  (4)

开始,查找一个局部极大值:

In[1]:=
Click for copyable input
(对话) Out[1]=
In[2]:=
Click for copyable input
(对话) Out[2]=

提取的 x 的局部极大值:

In[3]:=
Click for copyable input
(对话) Out[3]=

的范围内,查找从 开始的局部极大值:

In[1]:=
Click for copyable input
(对话) Out[1]=

按照线性和整数的约束条件,找到一个线性函数的局部极大值:

In[1]:=
Click for copyable input
(对话) Out[1]=

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

In[1]:=
Click for copyable input
Out[1]=

绘制图线:

In[2]:=
Click for copyable input
Out[2]=
2003年引入
(5.0)
| 2014年更新
(10.0)