SolveValues
SolveValues[expr,vars]
给出由系统 expr 的解确定的 vars 的值.
SolveValues[expr,vars,dom]
更多信息和选项
- 系统 expr 可以是以下内容的任何逻辑组合:
-
lhs==rhs 等式 lhs!=rhs 不等式 lhs>rhs 或 lhs>=rhs 不等式 expr∈dom 定义域规范 {x,y,…}∈reg 区域规范 ForAll[x,cond,expr] 通用量词 Exists[x,cond,expr] 存在量词 - SolveValues[{expr1,expr2,…},vars] 等价于 SolveValues[expr1&&expr2&&…,vars].
- 如果指定了单个变量,则结果是使 expr 为 True 的变量值列表.
- 如果指定了变量列表,则结果是使 expr 为 True 的变量值列表的列表.
- 当指定单个变量且方程特根的多重性大于 1 时,SolveValues 会提供相应解的多个副本.
- SolveValues[expr,vars] 默认假设不等式中以代数形式出现的数量是实数,而所有其他量都是复数.
- SolveValues[expr,vars,dom] 限定所有变量和参数均属于定义域 dom.
- 如果 dom 为 Reals 或诸如 Integers 或 Rationals 等子集, 则所有常量和函数值也都被限定为实数.
- SolveValues[expr&&vars∈Reals,vars,Complexes] 求解变量的实数值,但函数值可以是复数.
- SolveValues[expr,vars,Integers] 在整数上求解丢番图方程.
- SolveValues[…,x∈reg,Reals] 将 x 约束在区域 reg 中. 可以使用 Indexed[x,i] 引用 x 的不同坐标.
- 在 expr 中无 vars 的代数变量被视为独立参数.
- SolveValues 主要处理线性和多项式方程.
- 当 expr 仅涉及实数或复数域上的多项式方程式和不等式时,SolveValues 原则上始终可以直接求解 vars.
- 当 expr 涉及超越条件或整数域时,SolveValues 通常会在其结果中引入其他参数.
- SolveValues 可以给出所有线性方程和不等式的整数解的显式表示形式,并且可以求解文献中描述的大部分丢番图方程.
- 当 expr 仅涉及实数域或复数域上的多项式条件时,SolveValues[expr,vars] 将始终能够消除量词.
- SolveValues 仅提供通解. 仅在连续参数满足方程式时有效的解将被删除. 其他仅在一定条件上有效的解则表示为 ConditionalExpression 对象.
- 在 ConditionalExpression 解中包括的条件可能涉及不等式、Element 语句、非连续参数上的方程和不等式及具有全维解的方程. 连续参数和变量上的不等式和 NotElement 条件将被舍弃.
- SolveValues 可能使用非等价变换来求超越方程的解,因此可能找不到某些解,并且可能无法为所得到的解的有效性建立确切条件. 如果发生这种情况,将发出错误消息.
- SolveValues 使用特殊的有效技术来处理具有近似数值系数的稀疏线性方程组.
- 可以给出以下选项:
-
Assumptions $Assumptions 对参数的假设 Cubics Automatic 是否使用显式根式来求解所有三次方程 GeneratedParameters C 如何命名生成的参数 InverseFunctions Automatic 是否使用符号式反函数 MaxExtraConditions 0 在连续参数上所允许的额外等式条件数 MaxRoots Infinity 返回的根的最大数目 Method Automatic 应该使用什么方法 Modulus 0 整数假设的模数 Quartics Automatic 是否使用显式根式来解决所有四次方程 VerifySolutions Automatic 是否验证使用非等价变换获得的解 WorkingPrecision Infinity 计算中使用的精度 - 使用 MaxExtraConditions->Automatic,仅包含需要在连续参数上具有最少数量等式条件的解.
- 使用 MaxExtraConditions->All,将给出在参数上需要任意条件的解,并且包括所有条件.
- 使用 MaxExtraConditions->k,仅包括在连续参数上最多需要 k 个等式条件的解.
- 使用 Method->Reduce,SolveValues 仅使用等效转换并找到所有解.
- SolveValues[eqns,…,Modulus->m] 在整数模 m 上求解方程. 使用 Modulus->Automatic,SolveValues 将尝试找到使方程有解的最大模数.
范例
打开所有单元关闭所有单元范围 (87)
基本用法 (7)
单变量复数方程 (16)
要使用通用公式求解三次方程式,需设置 CubicsTrue:
默认情况下,SolveValues 使用 Root 对象表示一般三次方程的解:
SolveValues 无法在这里找到所有解:
这里 SolveValues 找到了一些解,但无法证明没有其他解:
多变量复方程组 (12)
单变量实数方程 (13)
多变量实数方程组和不等式组 (10)
丢番图方程 (11)
选项 (26)
Assumptions (4)
Cubics (3)
默认情况下,仅当存在符号参数时,SolveValues 才使用带根式的三次方程的通用求根公式求解:
对于具有数字系数的多项式,SolveValues 不使用求根公式:
使用 Cubics->False,SolveValues 从不使用求根公式:
使用 Cubics->True,SolveValues 始终使用求根公式:
GeneratedParameters (1)
SolveValues 可能会引入新的参数来表示解:
使用 GeneratedParameters 控制参数如何生成:
InverseFunctions (3)
默认情况下,SolveValues 使用反函数,但显示警告消息:
对于具有 NumericFunction 属性的符号,不使用符号反函数:
使用 InverseFunctions->True,SolveValues 不显示反函数警告消息:
使用 InverseFunctions->False,SolveValues 不使用反函数:
在这里,使用了基于 Reduce 的方法,因为它不需要使用反函数:
MaxExtraConditions (4)
默认设置 MaxExtraConditions->0 不给出需要条件的解:
MaxExtraConditions->1 给出需要最多一个参数方程的解:
MaxExtraConditions->2 给出最多需要两个参数方程的解:
默认情况下,SolveValues 删除连续参数上的不等式条件:
使用 MaxExtraConditions->All,SolveValues 包括所有条件:
Method (1)
Quartics (3)
默认情况下,仅当存在符号参数时,SolveValues 才使用带根式的四次方程的通用求根公式求解:
对于具有数字系数的多项式,SolveValues 不使用求根公式:
使用 Quartics->False,SolveValues 从不使用求根公式:
使用 Quartics->True,SolveValues 始终使用求根公式:
VerifySolutions (1)
SolveValues 验证使用非等效转换获得的解:
使用 VerifySolutions->False,SolveValues 不验证解:
使用 VerifySolutions->False 返回的某些解不正确:
WorkingPrecision (1)
应用 (7)
属性和关系 (15)
对于一元方程,SolveValues 根据其多重性重复求解:
代数方程的解通常以 Root 对象的形式给出:
Root 对象可能涉及参数:
SolveValues 给出解的值:
Solve 根据替换规则表示解:
Reduce 用方程和不等式的布尔组合表示解:
SolveValues 使用快速试探法求解超越方程,但可能给出不完整的解:
Reduce 使用的方法通常较慢,但会找到全部解并给出所有必要条件:
使用 FindInstance 求解的实例:
像 Reduce 一样,可以给 FindInstance 提供不等式和定义域规范:
使用 DSolve 求解微分方程:
使用 RSolve 求解递归方程:
SolveAlways 给出复方程始终为真的参数的值:
相同的问题可以使用 ForAll 来表示,并使用 SolveValues、Solve 或 Reduce 来求解:
Resolve 消除量词,可能并不会求解得到的无量词系统:
Eliminate 消除复方程组中的变量:
这里使用 Resolve 求解相同的问题:
Reduce、Solve 和 SolveValues 还可求解所得出的方程:
使用 FunctionBijective 检验函数是否是双射的:
使用 FunctionAnalytic 检验一个函数是否是解析的:
SolveValues 找到满足方程 的 的显式函数:
使用 ImplicitD 求隐式定义函数的导数:
可能存在的问题 (9)
SolveValues 提供通解;没有给出涉及参数方程的解:
Reduce 提供所有解,包括对参数需要方程的解:
使用 MaxExtraConditions->All,SolveValues 同时给出非通用解:
SolveValues 结果不取决于某些输入方程是否仅包含参数. 以下两个系统是等效的,没有通解:
使用 MaxExtraConditions 指定允许的参数条件数量:
使用 Exists 量词以找到对参数 的某些值有效的解:
SolveValues 不排除既非一般正确也非一般不正确的解:
对于超越方程,SolveValues 可能不会给出所有解:
使用 Reduce 得到所有解:
SolveValues 通过设置 Method->"Reduce" 使用 Reduce 求解,但返回解的值:
使用反函数允许 SolveValues 快速得到某些解:
对假设的解释取决于它们的句法属性. 在此,该解在受假设限制的参数空间中是通用的:
这个数学上等价的假设包含求解变量,因此被当作要求解的系统的一部分:
当参数被限定为离散集时,通用性的概念定义不明确,并返回所有解:
此处, 处的可移除奇点被对方程进行预处理的 Together 取消:
MaxRoots 的值仅用于具有数值系数的系统:
文本
Wolfram Research (2021),SolveValues,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SolveValues.html (更新于 2024 年).
CMS
Wolfram 语言. 2021. "SolveValues." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/SolveValues.html.
APA
Wolfram 语言. (2021). SolveValues. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/SolveValues.html 年