解方程
一个表达式如
表示 Mathematica 中一个方程. 求解这样的方程是人们常常要做的事情,就是要找出对于什么
值,表达式为真.
这里给出二次方程

的两个解. 它以

的代换形式给出.
| Out[1]= |  |
| Out[2]= |  |
通过使用
Solve 生成的

的替代算符规则,可以得到

的实际的解.
| Out[3]= |  |
可以把这个规则用于任何含有

的表达式.
| Out[4]= |  |
| Solve[lhs==rhs,x] | 解方程,给出 x 的替换规则列表 |
| x/.solution | 使用替换规则得到 x 的值 |
| expr/.solution | 使用规则得到表达式的值 |
求和使用方程的解.
解方程时,Solve 总试图给出精确的解析解. 然而,根据数学的基本结论,对很复杂的方程是求不出解析解的. 在解一元代数方程时,如果变量的最高次数不超过4,那么 Mathematica 总能给出解析解. 但如果最高次数是5或更高,给出精确解析解在数学上一般是不可能的.
Mathematica 总能求出次数小于5的一元代数方程的解析解.
| Out[5]= |  |
| Out[6]= |  |
对那些在数学上不可能求出精确解析解的方程,
Mathematica 使用
Root 对象表示方程的解.
| Out[7]= |  |
| Out[8]= |  |
除了能解纯代数方程,Mathematica 还能求解其它一些函数方程.
显示一个警告后,
Mathematica 给出方程的一个解.
| Out[9]= |  |
注意,方程如
实际上有无穷多个解,此处可通过
的倍数来区分各个解. 然而,这里 Solve 给出一个解,并显示一个信息告诉用户可能存在其它解. 可以使用 Reduce 来获得更多信息.
| Out[10]= |  |
| Out[11]= |  |
函数 Solve 也能处理具有符号函数的方程. 在此情况下,又显示一个警告,然后给出形式上的反函数的结果.
Mathematica 使用

的形式上的反函数给出计算结果.
| Out[12]= |  |
| Solve[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}] |
| 关于变量 x, y, ... 求解方程组 |
解方程组.
使用 Mathematica 也能解联立方程组. 只须给出方程组,并指明关于哪些变量求解即可.
这里是两个联立方程,关于变量

和

求解.
| Out[13]= |  |
这是更复杂的联立方程组. 两个解以

和

的替换形式的列表给出.
| Out[14]= |  |
这里使用上述解计算表达式

.
| Out[15]= |  |
Mathematica 能够解任何线性方程组. 也可以解多种类型的多项式方程组,即使对一些方程不能精确求解. 也能将方程化为比较简单的形式.
当求解含有多个变量的方程组时,通过消去一些变量来整理方程往往是很方便的.
在两个方程中消去

,得到关于

的单个方程.
| Out[16]= |  |
如果有几个方程,则不能保证一定有解.
这个方程组无解,故
Mathematica 给出返回值

,表明解集是空的.
| Out[17]= |  |
对

的几乎所有值,这个方程组都没有解.
| Out[18]= |  |
一个方程组是否有解是一个很不清楚的问题. 例如,对
的大多数值,方程组
是不相容的,所以关于
无解. 然而,如果
等于
,则方程有一个解. 函数 Solve 被设置为求方程的一般解. 它不考虑那些仅对参数的特殊值才存在的解.
如果使用 Reduce 而非 Solve,Mathematica 将求出方程组的所有可能的解,包括那些对参数有特殊要求的解.
这里显示了仅当

时,方程组有一个解.

表示要求

和

都为
True.
| Out[19]= |  |
这里给出了方程的所有可能解. 答案被表达为简单方程的组合.

表示必须同时成立,

表示二中择一.
| Out[20]= |  |
| Out[21]= |  |
| Out[22]= |  |
| Solve[lhs==rhs,x] | 关于 x 求解方程 |
| Solve[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}] |
| 关于 x, y, ... 求解联立方程组 |
| Eliminate[{lhs1==rhs1,lhs2==rhs2,...},{x,...}] |
| 在联立方程组中,消去 x, ... |
| Reduce[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}] |
| 给出一组简化方程,包括所有可能的解 |
求解和处理方程的函数.
Reduce 对专门在实数或整数范围内处理方程也具有强大的功能. "域内的方程和不等式" 节将更详细讨论这个问题.
这里假定

和

是复数,简化方程.
| Out[23]= |  |
这里包含了对

和

必须为实数的要求条件.
| Out[24]= |  |
| Out[25]= |  |