Solve
Solve[expr,vars]
试图求解以 vars 为变量的方程组或不等式组 expr.
更多信息和选项
- expr 可以为下述形式的任意逻辑组合:
-
lhs==rhs 方程 lhs!=rhs 不等方程 lhs>rhs 或者 lhs>=rhs 不等式 expr∈dom 定义域说明 {x,y,…}∈reg 区域指定 ForAll[x,cond,expr] 全称量词 Exists[x,cond,expr] 存在量词 - Solve[{expr1,expr2,…},vars] 等价于 Solve[expr1&&expr2&&…,vars].
- 可以指定一个单变量或一个变量列表.
- Solve 以下列格式的规则给出解:
-
{} 无解 {{x->solx,y->soly,…},…} 几个解 {{}} 解集是全维度的 - 当指定了一个单变量且一个方程的一个特定根具有大于 1 的重数时,Solve 给出对应解的多个复件.
- Solve[expr,vars] 缺省假设以代数形式出现在不等式中的量为实数,而其他所有量为复数.
- Solve[expr,vars,dom] 将所有变量和参数限定在定义域 dom 内.
- 如果 dom 为 Reals,或是它的一个子集,例如 Integers 或 Rationals,则所有常数和函数值也被限定为实数.
- Solve[expr&&vars∈Reals,vars,Complexes] 求解得到的是变量的实数值,但函数值可以为复数.
- Solve[expr,vars,Integers] 在整数域上求解丢番图方程.
- Solve[…,x∈reg,Reals] 把 x 限制在区域 reg 中. x 的不同坐标可以使用 Indexed[x,i] 指代.
- expr 中既不含 vars、也不含其他代数变量的代数变量被视为独立参数.
- Solve 处理的主要是线性和多项式方程.
- 当 expr 仅涉及实数或复数域上的多项式方程和不等式时,Solve 原则上可以直接求解 vars.
- 当 expr 涉及到超越条件或整数定义域时,Solve 往往将在结果中引入额外参数.
- Solve 可以对整数域上所有线性方程和不等式的解进行显式表示,并且可以求解文献中列出的大部分丢番图方程.
- 当 expr 仅涉及实数或复数域上的多项式条件时,Solve[expr,vars] 将恒能进行量词消去.
- Solve 仅给出通解. 仅当连续参数满足方程时才有效的解被去除. 在一定条件下才有效的其他解作为ConditionalExpression 对象表示.
- ConditionalExpression 解所包含的条件可以涉及不等式、Element 陈述、非连续参数的等式与不等式,以及具有全维解的方程. 关于连续参数及变量的不等式与 NotElement 条件被舍掉.
- Solve 可能使用非等价变换来求超越方程的解,因此它可能找不到某些解,并且可能无法针对求出的解的有效性给出确切的条件. 如果发生这种情况,将发出错误消息.
- Solve 使用特殊的有效技术来处理具有近似数值系数的线性方程组.
- 可以给出以下选项:
-
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 时,Solve 仅采用等价变换,并且得到所有解.
- Solve[eqns,…,Modulusm] 在以 m 为模的整数域上求解方程. 当 Modulus->Automatic 时,Solve 将力图找到使方程具有解的最大模数.
范例
打开所有单元关闭所有单元范围 (85)
基本用途 (6)
单变量复数方程 (15)
多变量复数方程组 (12)
单变量实数方程 (13)
多变量实数方程组和不等式组 (10)
丢番图方程 (11)
选项 (28)
Assumptions (4)
Cubics (4)
GeneratedParameters (1)
Solve 可能引入新的参数以表示解:
使用 GeneratedParameters 来控制参数的生成方式:
InverseFunctions (3)
在缺省情况下,Solve 用反函数但输出警告信息:
对于具有 NumericFunction 属性的符号,不使用符号式反函数:
设置 InverseFunctions->True,Solve 不输出反函数的警告信息:
设置 InverseFunctions->False,Solve 不使用反函数:
此处使用一种基于 Reduce 的方法,不需要使用反函数:
MaxExtraConditions (4)
缺省设置 MaxExtraConditions->0 不给出需要条件的解:
MaxExtraConditions->1 给出的解需要至多一个方程来确定参数:
MaxExtraConditions->2 给出的解需要至多二个方程来确定参数:
缺省时,Solve 舍掉关于连续参数的不等式条件:
当设置为 MaxExtraConditions->All 时,Solve 包括所有条件:
Quartics (3)
VerifySolutions (1)
Solve 用非等价转换来验证获得的解:
设置为 VerifySolutions->False 时,Solve 不验证解:
在 VerifySolutions->False 下返回的某些解可能不正确:
WorkingPrecision (1)
应用 (7)
属性和关系 (15)
Solve 用 {} 表示空解或无解:
Solve 用 {{}} 表示所有解或满足方程的所有点:
对于单变量方程,Solve 根据解的重数重复解:
代数方程的解通常以 Root 对象的形式给出:
Root 对象可以涉及参数:
Solve 按替换规则表示解:
Reduce 用方程和不等式的 Boolean 组合来表示解:
Solve 使用快速试探法求解超越方程,但可能给出不完全的解:
Reduce 使用的方法往往较慢,但能得到所有解,并且给出所有必要的条件:
用 FindInstance 求出一个特解:
与 Reduce 类似,可以为 FindInstance 给出不等式和定义域说明:
用 DSolve 求解微分方程:
用 RSolve 求解递归方程:
SolveAlways 给出使得复数方程恒为真的参数值:
同样的问题可以用 ForAll 表述,并用 Solve 或 Reduce 求解:
Resolve 消去量词,可能不需求解生成的无量词方程组:
Eliminate 从复数方程组中消去量词:
用 Resolve 求解相同的问题:
用 FunctionBijective 测试函数是否是双射的:
用 FunctionAnalytic 测试函数是否是解析的:
可能存在的问题 (9)
Solve 给出通解;涉及参数方程的解没有给出:
Reduce 给出所有解,包含需要参数方程的解:
设置为 MaxExtraConditions->All 时,Solve 也给出非通解:
Solve 的结果不依赖于部分输入方程是否只含有参数. 下面的两个方程组等价,都不存在通解:
使用 MaxExtraConditions 指定所允许的参数条件数:
使用 Exists 量词求对于某些参数值 有效的解:
Solve 不去除既不是一般正确的,也不是一般不正确的解:
对于超越方程,Solve 可能不给出所有的解:
使用 Reduce 得到所有解:
Solve 在设置 Method->"Reduce" 时,使用 Reduce 求解,但返回置换规则:
用反函数,这允许 Solve 快速求出某些解:
对假设条件的解释取决于它们的句法性质. 此处,解在受假设条件限制的参数空间中是通解:
下面在数学上等价的假设条件含有要求解的变量,因此被视为要求解的方程组的一部分:
当参数被限制于一个离散集合时,通解的概念定义不明确,则返回所有的解:
此处, 处的可移除奇点被对方程进行预处理的 Together 取消:
MaxRoots 的值仅用于具有数值系数的系统:
文本
Wolfram Research (1988),Solve,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Solve.html (更新于 2024 年).
CMS
Wolfram 语言. 1988. "Solve." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/Solve.html.
APA
Wolfram 语言. (1988). Solve. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Solve.html 年