Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 数学和算法 > 方程求解 > Solve >

Solve

Solve
试图求解以 vars 为变量的方程组或不等式组 expr.
Solve
在定义域 dom 上求解. dom 的常用选择为 RealsIntegersComplexes.
  • expr 可以为下述形式的任意逻辑组合:
lhs==rhs方程
lhs!=rhs不等方程
不等式
exprdom定义域说明
ForAll[x,cond,expr]全称量词
Exists[x,cond,expr]存在量词
  • 可以指定一个单变量或一个变量列表.
  • Solve 以形如 的规则形式给出解.
  • 当存在多个变量时,解以规则列表的形式给出:.
  • 当存在多个解时,Solve 给出解的列表.
  • 当指定了一个单变量且一个方程的一个特定根具有大于1的重数时,Solve 给出对应解的多个复件.
  • Solve 缺省假设以代数形式出现在不等式中的量为实数,而其它所有量为复数.
  • Solve 将所有变量和参数限定在定义域 dom 内.
  • 如果 domReals,或是它的一个子集,例如 IntegersRationals,则所有常数和函数值也被限定为实数.
  • Solve[expr&&varsReals, vars, Complexes] 求解得到的是变量的实数值,但函数值可以为复数.
  • Solve[expr, vars, Integers] 在整数域上求解丢番图方程.
  • expr 中既不含 、也不含其它代数变量的代数变量被视为独立参数.
  • Solve 处理的主要是线性和多项式方程.
  • expr 仅涉及实数或复数域上的多项式方程和不等式时,Solve 原则上可以直接求解所有的 .
  • expr 涉及到超越条件或整数定义域时,Solve 往往将在结果中引入额外参数.
  • Solve 可以对整数域上所有线性方程和不等式的解进行显式表示,并且可以求解文献中列出的大部分丢番图方程.
  • expr 仅涉及实数或复数域上的多项式条件时,Solve 将恒能进行量词消去.
  • 可以给出以下选项:
CubicsFalse是否使用显式根式求解所有三次曲线
GeneratedParametersC如何对生成的参数进行命名
InverseFunctionsAutomatic是否使用符号式反函数
MaxExtraConditions0在连续参数上所允许的额外等式条件数
MethodAutomatic应该使用何种方法
Modulus0为整数假定的模数
QuarticsFalse是否使用显式根式求解所有四次曲线
VerifySolutionsAutomatic是否验证由非等价变换获得的解
WorkingPrecisionInfinity计算中所用精度
  • Solve 仅给出通解. 仅当连续参数满足方程时才有效的解被去除. 在一定条件下才有效的其它解作为ConditionalExpression 对象表示.
  • ConditionalExpression 解所包含的条件可以涉及不等式、Element 陈述、非连续参数的等式与不等式,以及具有全维解的方程. 关于连续参数及变量的不等式与 NotElement 条件被舍掉.
  • MaxExtraConditions->All 时,将给出需要参数的任意条件的解,并且所有条件被包括.
  • MaxExtraConditions->k 时,仅包含使连续参数的等式条件数至多为 k 的解.
  • Solve 使用非等价变换求解超越方程,因此有些解可能得不到,并且可能无法对得到的解的有效性建立确切的条件.
  • 如果方程无解,Solve 返回 .
  • 如果解集为全维,Solve 返回 .
  • Solve 在以 m 为模的整数域上求解方程. 当 Modulus->Automatic 时,Solve 将力图找到使方程具有解的最大模数.
  • Solve 使用特殊的高效技术来处理具有近似数值系数的离散化线性方程组.
求解一个二次方程:
求解关于 的联立方程组:
以置换列表形式给出解:
用解置换
用解置换 的组合,并化简结果:
绘制 的解的实部,作为参数 的一个函数:
选择第3个解:
在实数域上求解方程:
用解置换 ,并化简结果:
在正整数域上求解方程:
列出前10个解:
求解一个二次方程:
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]=
用解置换 的组合,并化简结果:
In[3]:=
Click for copyable input
Out[3]=
绘制 的解的实部,作为参数 的一个函数:
In[4]:=
Click for copyable input
Out[4]=
 
选择第3个解:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
 
在实数域上求解方程:
In[1]:=
Click for copyable input
Out[1]=
用解置换 ,并化简结果:
In[2]:=
Click for copyable input
Out[2]=
 
在正整数域上求解方程:
In[1]:=
Click for copyable input
Out[1]=
列出前10个解:
In[2]:=
Click for copyable input
Out[2]=
多项式方程用根式可解:
一般的多项式方程:
有重根的多项式方程:
有符号系数的多项式方程:
代数方程:
超越方程:
有界区域上的单变量初等函数方程:
有界区域上的单变量正则函数方程:
这里,Solve 找到了一些解,但不能证实再无其它解:
复平面上一个垂直条纹的纯虚周期的方程:
符号函数:
线性方程组:
有符号系数的线性方程:
线性方程的欠定组:
无解的线性方程:
多项式方程组:
有符号系数的多项式组:
代数方程:
超越方程:
多项式方程:
具有重根的多项式方程:
具有符号系数的多项式方程:
代数方程:
分段方程:
超越方程,可以反函数求解:
超越方程,可用特殊零函数求解:
超越不等式,可用特殊零函数求解:
指对数方程:
高次离散多项式方程:
涉及高次根式的代数方程:
涉及非有理实数幂的方程:
具有双根的方程:
Tame 初等函数方程:
有界区间上的初等函数方程:
有界区间上的正则函数方程:
实数域上的周期型初等函数:
线性方程组:
多项式方程组:
量化的多项式方程组:
代数方程及不等式组:
分段方程组:
超越方程及不等式组,可用反函数求解:
第一个变量为指数对数形式、其它变量为多项式形式的方程及不等式组:
量化的方程组:
第一个变量为初等有界形式、其它变量为多项式形式的方程及不等式组:
量化的方程组:
第一个变量为正则有界形式、其它变量为多项式形式的方程及不等式组:
量化的方程及不等式组:
线性方程组:
线性方程及不等式组:
单变量多项式方程:
二元二次方程:
Thue 方程:
平方和方程:
勾股方程:
有界方程及不等式组:
无解高次方程组:
超越丢番图系统:
同余多项式方程组:
线性方程组:
单变量多项式方程:
多项式方程及不等式组:
量化多项式方程及不等式组:
混合的实数和复数变量:
混合的实数和整数变量:
求解所有变量:
缺省时,Solve 使用一般公式以根式形式求解三次曲线:
Cubics->False 时,Solve 不使用公式:
Solve 可能引入新的参数以表示解:
使用 GeneratedParameters 来控制参数的生成方式:
在缺省情况下,Solve 用反函数但输出警告信息:
设置 InverseFunctions->TrueSolve 不输出反函数的警告信息:
设置 InverseFunctions->FalseSolve 不使用反函数:
求解代数方程不需要使用反函数:
此处使用一种基于 Reduce 的方法,不需要使用反函数:
缺省时,不生成需要附加条件的解:
参数离散时除外:
缺省设置 MaxExtraConditions 不给出需要条件的解:
MaxExtraConditions 给出的解需要至多一个方程来确定参数:
MaxExtraConditions 给出的解需要至多二个方程来确定参数:
给出的解需要的参数方程数最少:
给出全部解:
缺省时,Solve 舍掉关于连续参数的不等式条件:
当设置为 MaxExtraConditions->All 时,Solve 包括所有条件:
缺省时,Solve 舍掉关于连续参数的不等式条件:
当设置为 Method->Reduce 时,Solve 使用 Reduce 求完整的解集:
在以9为模的整数上求解方程:
求使方程组有一个解的模数:
缺省时,Solve 使用一般公式以根式形式求解四次曲线:
当设置为 Quartics->False 时,Solve 不使用公式:
Solve 用非等价转换来验证获得的解:
设置为 False 时,Solve 不验证解:
False 下返回的某些解可能不正确:
这里用快速数值测试来尽可能选择正确的解:
在这个例子中,数值验证给出正确的解集:
在缺省情况下,Solve 不能验证有不确定系数的方程的解:
在某些返回的解中,polys 离零值差距很大:
设置为 True 时,Solve 在必要时增加计算精度:
现在 polys 的解非常接近零:
在缺省情况下,Solve 求出方程确切的解:
使用100位精度计算解,速度较快:
结果中的前100位数字与确切解一致:
用机器精度计算解会更快:
结果仍很接近确切解:
求解一个二次方程:
求出圆和抛物线的交点:
找到使四次方程所有根相等的条件:
一种使用 Subresultants 的方法:
一种使用量词消去的方法:
绘制一条由隐式描述确定的空间曲线:
绘制空间曲线在 平面上的投影:
求勾股数(毕氏三元组):
求勾股数序列:
求如何使用面值分别为10分、23分和37分的邮票付$2.27的邮费:
通过 IntegerPartitions 可以完成同样的任务:
满足方程的解:
给出的解作为置换规则,可以直接用于置换:
Solve 表示空解或无解:
Solve 表示所有解或满足方程的所有点:
对于单变量方程,Solve 根据解的重数重复解:
代数方程的解通常以 Root 对象的形式给出:
N 计算 Root 对象的数值近似值:
Root 对象可以涉及参数:
Series 计算 Root 对象的级数展开:
满足方程的级数最高阶数为11:
在指定的定义域上求解:
解可能涉及关于参数的条件:
如果条件得以满足,条件解满足方程:
Solve 按替换规则表示解:
Reduce 用方程和不等式的 组合来表示解:
Solve 使用快速试探法求解超越方程,但可能给出不完全的解:
Reduce 使用的方法往往较慢,但能得到所有解,并且给出所有必要的条件:
FindInstance 求出一个特解:
Reduce 类似,可以为 FindInstance 给出不等式和定义域说明:
DSolve 求解微分方程:
RSolve 求解递归方程:
SolveAlways 给出使得复数方程恒为真的参数值:
同样的问题可以用 ForAll 表述,并用 SolveReduce 求解:
Resolve 消去量词,可能不需求解生成的无量词方程组:
Eliminate 从复数方程组中消去量词:
Resolve 求解相同的问题:
ReduceSolve 求解生成的方程:
Solve 给出通解;涉及参数方程的解没有给出:
Reduce 给出所有解,包含需要参数方程的解:
设置为 MaxExtraConditions->All 时,Solve 也给出非通解:
Solve 的结果不依赖于部分输入方程是否只含有参数. 下面的两个方程组等价,都不存在通解:
使用 MaxExtraConditions 指定所允许的参数条件数:
使用 Exists 量词求对于某些参数值 有效的解:
Solve 不去除既不是一般正确的,也不是一般不正确的解:
解在 时是正确的,在 时是不正确的:
对于超越方程,Solve 可能不给出所有的解:
使用 Reduce 得到所有解:
Solve 在设置 Method 时,使用 Reduce 求解,但返回置换规则:
用反函数,这允许 Solve 快速求出某些解:
求出完全解可能花费更长的时间并且解可能会很大:
这里求出解为 x==2n 值:
版本 8 的新功能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
格式:   HTML  |  CDF