SolveValues

SolveValues[expr,vars]

给出由系统 expr 的解确定的 vars 的值.

SolveValues[expr,vars,dom]

在定义域 dom 上使用解. dom 的常见选择是 RealsIntegersComplexes.

更多信息和选项

  • 系统 expr 可以是以下内容的任何逻辑组合:
  • lhs==rhs等式
    lhs!=rhs不等式
    lhs>rhslhs>=rhs 不等式
    exprdom定义域规范
    {x,y,}reg区域规范
    ForAll[x,cond,expr]通用量词
    Exists[x,cond,expr]存在量词
  • SolveValues[{expr1,expr2,},vars] 等价于 SolveValues[expr1&&expr2&&,vars].
  • 如果指定了单个变量,则结果是使 exprTrue 的变量值列表.
  • 如果指定了变量列表,则结果是使 exprTrue 的变量值列表的列表.
  • 当指定单个变量且方程特根的多重性大于 1 时,SolveValues 会提供相应解的多个副本.
  • SolveValues[expr,vars] 默认假设不等式中以代数形式出现的数量是实数,而所有其他量都是复数.
  • SolveValues[expr,vars,dom] 限定所有变量和参数均属于定义域 dom.
  • 如果 domReals 或诸如 IntegersRationals 等子集, 则所有常量和函数值也都被限定为实数.
  • SolveValues[expr&&varsReals,vars,Complexes] 求解变量的实数值,但函数值可以是复数.
  • SolveValues[expr,vars,Integers] 在整数上求解丢番图方程.
  • SolveValues[,xreg,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->ReduceSolveValues 仅使用等效转换并找到所有解.
  • SolveValues[eqns,,Modulus->m] 在整数模 m 上求解方程. 使用 Modulus->AutomaticSolveValues 将尝试找到使方程有解的最大模数.

范例

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

基本范例  (5)

求解二次方程:

求解 的联立方程:

在实数上求解方程:

在正整数上求解方程:

在几何区域上求解方程:

范围  (87)

基本用法  (7)

解以指定变量的值列表形式给出:

检查解是否满足以下方程:

如果无解,SolveValues 将返回空列表:

一些变量可能以自由参数的形式出现在解中:

在指定定义域上求解:

求解系数涉及符号参数的方程:

绘制作为参数 a 的函数的 y 的解的实部:

该方程在实数上的求解需要以下参数条件:

使用 Normal 删除条件:

在正整数上求解此方程需要引入一个新参数:

列出前10个解:

单变量复数方程  (16)

可以以根式求解的多项式方程:

要使用通用公式求解三次方程式,需设置 CubicsTrue

默认情况下,SolveValues 使用 Root 对象表示一般三次方程的解:

一般多项式方程:

具有多个根的多项式方程:

求出高次多项式的五个根:

具有符号系数的多项式方程:

代数方程:

超越方程的完整解:

超越方程的部分解:

SolveValues 无法在这里找到所有解:

找到三个解:

有界区域上的单变量初等函数方程:

有界区域上的单变量全纯函数方程:

这里 SolveValues 找到了一些解,但无法证明没有其他解:

在复平面上的垂直条带上具有纯虚周期的方程:

找到无限制复数方程的指定数量的根:

符号函数:

非解析复数方程:

多变量复方程组  (12)

线性方程组:

具有符号系数的线性方程:

欠定线性方程组:

无解的线性方程:

多项式方程组:

找出多项式方程组的一万亿个根中的五个:

具有符号系数的多项式方程:

代数方程:

超越方程:

找到超越方程的指定数量的解:

有界框上的平方解析方程组:

非解析方程:

单变量实数方程  (13)

多项式方程:

具有多个根的多项式方程:

具有符号系数的多项式方程:

代数方程:

分段方程:

超越方程,可使用反函数求解:

超越方程,可使用特殊函数零点求解:

超越不等式,可使用特殊函数零点求解:

Exp-Log方程:

高次稀疏多项式方程:

涉及高次根的代数方程:

涉及非有理实数幂的方程:

具有双根的方程:

驯服初等函数方程:

有界区间上的初等函数方程:

有界区间上的全纯函数方程:

在实数上的周期初等函数方程:

多变量实数方程组和不等式组  (10)

线性系统:

多项式系统:

量化多项式系统:

代数系统:

分段系统:

超越系统,可使用反函数求解:

在第一个变量中为指数-对数,在其他变量中为多项式的系统:

量化系统:

在第一个变量中为初等和有界,在其他变量中为多项式的系统:

量化系统:

在第一个变量中为全纯和有界,在其他变量中为多项式的系统:

量化系统:

有界区域上解析方程的平方系统:

丢番图方程  (11)

线性方程组:

线性方程和不等式组:

单变量多项式方程:

二元二次方程:

Thue 方程:

平方和方程:

毕达哥拉斯方程:

方程和不等式的有界系统:

无解的高次系统:

超越丢番图系统:

同余多项式系统:

模方程  (4)

线性系统:

单变量多项式方程:

多项式方程和不等式的系统:

量化多项式系统:

有限域上的方程  (3)

一元方程:

线性方程组:

多项式方程组:

具有混合变量域的系统  (2)

实变量和复变量混合:

实变量和整数变量混合:

具有几何区域约束的系统  (9)

在二维特殊区域上求解:

绘图:

在三维特殊区域上求解:

绘图:

量化系统:

隐式定义的区域:

参数式定义的区域:

派生区域:

绘图:

消除区域笛卡尔积的量词:

取决于参数的区域:

答案取决于参数值

使用 指定 是在 上的向量:

在这种情况下, 是在 上的向量:

选项  (26)

Assumptions  (4)

使用 Assumptions 指定关于参数的条件:

默认情况下,需要参数满足方程的解不会产生:

将关于参数的方程作为假设给出,将返回一个解:

包含求解变量的假设被当作系统的一部分来求解:

不使用 Assumptions 的等效语句:

假定参数属于离散集合,则返回涉及任意条件的解:

Cubics  (3)

默认情况下,仅当存在符号参数时,SolveValues 才使用带根式的三次方程的通用求根公式求解:

对于具有数字系数的多项式,SolveValues 不使用求根公式:

使用 Cubics->FalseSolveValues 从不使用求根公式:

使用 Cubics->TrueSolveValues 始终使用求根公式:

GeneratedParameters  (1)

SolveValues 可能会引入新的参数来表示解:

使用 GeneratedParameters 控制参数如何生成:

InverseFunctions  (3)

默认情况下,SolveValues 使用反函数,但显示警告消息:

对于具有 NumericFunction 属性的符号,不使用符号反函数:

使用 InverseFunctions->TrueSolveValues 不显示反函数警告消息:

符号反函数适用于所有符号:

使用 InverseFunctions->FalseSolveValues 不使用反函数:

求解代数方程不需要使用反函数:

在这里,使用了基于 Reduce 的方法,因为它不需要使用反函数:

MaxExtraConditions  (4)

默认情况下,不会产生需要额外条件的解:

除非参数是离散的:

默认设置 MaxExtraConditions->0 不给出需要条件的解:

MaxExtraConditions->1 给出需要最多一个参数方程的解:

MaxExtraConditions->2 给出最多需要两个参数方程的解:

给出需要最少数量的参数方程的解:

给出所有解:

默认情况下,SolveValues 删除连续参数上的不等式条件:

使用 MaxExtraConditions->AllSolveValues 包括所有条件:

MaxRoots  (4)

求多项式的 个根中的 个根:

求多项式方程组的 个根中的 个根:

求超越方程组的 个解:

当系统包含符号参数时,选项值将被忽略:

Method  (1)

默认情况下,SolveValues 使用反函数来求解非多项式复数方程:

设置 Method->ReduceSolveValues 将使用 Reduce 找到完整的解集:

Modulus  (1)

在整数范围内求解模数为 9 的方程:

Quartics  (3)

默认情况下,仅当存在符号参数时,SolveValues 才使用带根式的四次方程的通用求根公式求解:

对于具有数字系数的多项式,SolveValues 不使用求根公式:

使用 Quartics->FalseSolveValues 从不使用求根公式:

使用 Quartics->TrueSolveValues 始终使用求根公式:

VerifySolutions  (1)

SolveValues 验证使用非等效转换获得的解:

使用 VerifySolutions->FalseSolveValues 不验证解:

使用 VerifySolutions->False 返回的某些解不正确:

这里使用快速数值检验来尝试选择正确的解:

在这种情况下,数值检验可提供正确的解集:

WorkingPrecision  (1)

默认情况下,SolveValues 得到方程的精确解:

使用 100 位的数值精度计算解速度更快:

结果与精确解的前100位数值一致:

使用机器精度求解要快得多:

结果仍然非常接近精确解:

应用  (7)

求解二次方程:

求圆和抛物线的交点:

求四次方程所有根均相等的条件:

一种方法是使用 Subresultants

量词消除法:

绘制由隐式描述给出的空间曲线:

绘制空间曲线在 {x,y} 平面上的投影:

求勾股数:

求勾股数序列:

求如何使用 10 美分、23 美分和 37 美分的邮票支付 2.27 美元的邮资:

使用 IntegerPartitions 可以完成相同的任务:

求一个复解析函数的 200 个根:

在复数图上显示函数的根:

属性和关系  (15)

以列表形式给出解,并满足以下方程:

对于一元方程,SolveValues 根据其多重性重复求解:

代数方程的解通常以 Root 对象的形式给出:

使用 N 计算 Root 对象的数值近似:

Root 对象可能涉及参数:

使用 Series 计算 Root 对象的级数展开:

级数在 11 阶内满足方程:

SolveValues 给出解的值:

Solve 根据替换规则表示解:

Reduce 用方程和不等式的布尔组合表示解:

SolveValues 使用快速试探法求解超越方程,但可能给出不完整的解:

Reduce 使用的方法通常较慢,但会找到全部解并给出所有必要条件:

使用 FindInstance 求解的实例:

Reduce 一样,可以给 FindInstance 提供不等式和定义域规范:

使用 DSolve 求解微分方程:

使用 RSolve 求解递归方程:

SolveAlways 给出复方程始终为真的参数的值:

相同的问题可以使用 ForAll 来表示,并使用 SolveValuesSolveReduce 来求解:

Resolve 消除量词,可能并不会求解得到的无量词系统:

Eliminate 消除复方程组中的变量:

这里使用 Resolve 求解相同的问题:

ReduceSolveSolveValues 还可求解所得出的方程:

当且仅当方程 对每个 都恰好有一个解时, 是双射的:

使用 FunctionBijective 检验函数是否是双射的:

使用 FunctionAnalytic 检验一个函数是否是解析的:

解析函数在一个封闭且有界的区域中只能有有限个零点:

SolveValues 找到满足方程 的显式函数:

使用 ImplicitD 求隐式定义函数的导数:

可能存在的问题  (9)

SolveValues 提供通解;没有给出涉及参数方程的解:

Reduce 提供所有解,包括对参数需要方程的解:

使用 MaxExtraConditions->AllSolveValues 同时给出非通用解:

SolveValues 结果不取决于某些输入方程是否仅包含参数. 以下两个系统是等效的,没有通解:

使用 MaxExtraConditions 指定允许的参数条件数量:

使用 Exists 量词以找到对参数 a 的某些值有效的解:

SolveValues 不排除既非一般正确也非一般不正确的解:

解对于 正确,对于 不正确:

对于超越方程,SolveValues 可能不会给出所有解:

使用 Reduce 得到所有解:

SolveValues 通过设置 Method->"Reduce" 使用 Reduce 求解,但返回解的值:

使用反函数允许 SolveValues 快速得到某些解:

求完整的解可能需要更长的时间,并且解可能很大:

这里求 n 值,使得 x==2 是一个解:

对假设的解释取决于它们的句法属性. 在此,该解在受假设限制的参数空间中是通用的:

这个数学上等价的假设包含求解变量,因此被当作要求解的系统的一部分:

没有通解,因为输入被解释为:

该解是非通用的,因为它要求参数满足方程:

当参数被限定为离散集时,通用性的概念定义不明确,并返回所有解:

输入方程的可移除奇点通常不被视为有效解:

然而,解可以包括可移除的奇点,这些奇点会被自动化简取消:

处的可移除奇点在运算时被取消:

此处, 处的可移除奇点被对方程进行预处理的 Together 取消:

MaxRoots 的值仅用于具有数值系数的系统:

当存在符号参数时,选项值将被忽略:

作为变量给出的表达式被视为原子对象,而不是其子表达式的函数:

实际上,在方程求解之前,变量被替换为新符号:

结果来自于:

Wolfram Research (2021),SolveValues,Wolfram 语言函数,https://reference.wolfram.com/language/ref/SolveValues.html (更新于 2024 年).

文本

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 年

BibTeX

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

BibLaTeX

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