NMaxValue
NMaxValue[f,x]
给出关于 x 的 f 的全局最大值.
NMaxValue[f,{x,y,…}]
给出关于 x、y、 … 的 f 的全局最大值.
NMaxValue[{f,cons},{x,y,…}]
给出约束条件 cons 限制下 f 的全局最大值.
NMaxValue[…,x∈reg]
将 x 限制在区域 reg 内.
更多信息和选项
- NMaxValue 亦称为全局优化 (GO).
- NMaxValue 总是尝试求给定约束条件限制下 f 的全局最大值.
- NMaxValue 通常用于求给定约束条件下可能的最大值. 在不同的领域,这可能被称为最佳策略、最佳方案、最佳配置等.
- 如果 f 是线性的或凹的,cons 是线性的或凸的,NMaxValue 给出的结果将是实数和整数值上的全局最大值;否则,有时结果可能只是局部最大值.
- 如果 NMaxValue 发现无法满足约束条件,则会返回 -Infinity.
- NMaxValue 支持一种建模语言,其中目标函数 f 和约束条件 cons 是用依赖于标量或向量变量的表达式给出的. f 和 cons 通常被解析为非常有效的形式,但只要 f 和 cons 中的项给出变量的数值结果,NMaxValue 通常可以找到解.
- 约束条件 cons 可以是以下表达式的任意逻辑组合:
-
lhs==rhs 等式 lhs>rhs, lhs≥rhs, lhs<rhs, lhs≤rhs 不等式 (LessEqual、…) lhsrhs, lhsrhs, lhsrhs, lhsrhs 向量不等式 (VectorLessEqual、…) {x,y,…}∈rdom 区域或域的指定 - NMaxValue[{f,cons},x∈rdom] 实际上等价于 NMaxValue[{f,cons&&x∈rdom},x].
- 对于 x∈rdom,可用 Indexed[x,i] 来指代不同的坐标.
- 可能的域 rdom 包括:
-
Reals 实标量变量 Integers 整数标量变量 Vectors[n,dom] 中的向量变量 Matrices[{m,n},dom] 中的矩阵变量 ℛ 限制在几何区域 中的向量变量 - 在缺省情况下,假定所有变量为实数.
- 可给出以下选项:
-
AccuracyGoal Automatic 追求多少位的准确度 EvaluationMonitor None 计算 f 时要计算的表达式 MaxIterations Automatic 使用的最大迭代次数 Method Automatic 使用的方法 PrecisionGoal Automatic 追求多少位的精度 StepMonitor None 每次迭代时要计算的表达式 WorkingPrecision MachinePrecision 内部计算使用的精度 - AccuracyGoal 和 PrecisionGoal 的设置指定了搜索最大值所在位置(最大化点)和函数的最大值时应使用的位数.
- NMaxValue 持续运行,直到 AccuracyGoal 或 PrecisionGoal 指定的目标实现为止.
- NMaxValue 的方法分为两类. 第一类方法利用问题的属性,因此当方法收敛时,找到的最大值保证是全局的. 第二类启发式方法使用的方法可能包括多个局部搜索,通常通过一些随机性进行调整以锁定全局最大值. 这些方法通常能找到全局最大值,但无法保证.
- 在收敛到解时确保可以给出全局最大值的方法包括:
-
"Convex" 只使用凸方法 "MOSEK" 对于凸问题,使用商用 MOSEK 库 "Gurobi" 对于凸问题,使用商用 Gurobi 库 "Xpress" 对于凸问题,使用商用 Xpress 库 - 启发式方法包括:
-
"NelderMead" Nelder 和 Mead 的单纯形法 "DifferentialEvolution" 使用差分进化 "SimulatedAnnealing" 使用模拟退火 "RandomSearch" 使用从多个随机起始点中找到的最佳局部最大值 "Couenne" 使用 Couenne 库处理非凸混合整数非线性问题
范例
打开所有单元关闭所有单元范围 (34)
基本用法 (12)
可用 VectorGreaterEqual 表示几个线性不等式约束条件:
用 v>= 或 \[VectorGreaterEqual] 输入向量不等式符号 :
如果想要避免 中不想要的逐项运算,可使用 Inactive[Plus]:
VectorGreaterEqual 表示关于 "NonNegativeCone" 的锥不等式:
如果想明确指定锥体的尺寸,可使用 {"NonNegativeCone",n}:
用 Indexed 访问向量变量的分量,如 :
当向量变量不明确时,用 Vectors[n,dom] 指定维度和域:
用 NonNegativeReals () 指定非负约束条件:
用 NonPositiveReals () 指定非正约束条件:
可以指定 Or 约束条件:
域约束条件 (4)
用 Integers 指定整数域约束条件:
用 Vectors[n,Integers] 指定向量变量的整数域约束条件:
用 NonNegativeIntegers () 指定非负整数域约束条件:
用 NonPositiveIntegers () 指定非正整数域约束条件:
线性问题 (5)
凸问题 (4)
可转化为凸问题的问题 (3)
选项 (7)
AccuracyGoal & PrecisionGoal (2)
Method (2)
StepMonitor (1)
NMaxValue 在求函数最大值的过程中采取的步骤:
WorkingPrecision (1)
工作精度设为 时,AccuracyGoal 和 PrecisionGoal 默认值为 :
应用 (4)
几何问题 (2)
投资问题 (1)
属性和关系 (7)
NMaximize 给出最大值,并以规则形式给出使结果最大化的变量值:
NArgMax 给出使结果最大化的值的列表:
NMaxValue 只给出最大值:
对于凸问题,可用 ConvexOptimization 获取解的其他属性:
对于含有参数的凸问题,用 ParametricConvexOptimization 给出 ParametricFunction:
可通过计算 ParametricFunction 求得参数的值:
用 NMaxValue 定义参数化问题的函数:
也可以计算 ParametricFunction 的导数:
对于含有参数化约束条件的凸问题,RobustConvexOptimization 将找到适用于所有可能参数值的最优值:
对于特定参数值,NMaxValue 可能会找到更大的最大值:
NMaxValue 可以求解线性规划问题:
LinearProgramming 可以求解用矩阵表示的相同问题:
用 RegionBounds 计算边界框:
文本
Wolfram Research (2008),NMaxValue,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NMaxValue.html (更新于 2024 年).
CMS
Wolfram 语言. 2008. "NMaxValue." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/NMaxValue.html.
APA
Wolfram 语言. (2008). NMaxValue. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NMaxValue.html 年