基本操作
Solve[expr,vars]
试图求解以 vars 为变量的方程组或不等式组 expr.
Solve[expr,vars,dom]
在定义域 dom 上求解. dom 的常用选择为 Reals、Integers 和 Complexes.

这里需要指出的是是否需要指出待求变量。
如果只有一个变量要求的话,其实是可以不指定变量的,比如

但如果有多个变量,则会默认将其中一个作为变量

指定解范围
如果想求某个范围的解,此时加一个不等式即可,MMA将之认为是一个方程组。
用花括号{}括起来或者用&&链接均可。

求解包含特殊函数的方程
遇到这个问题最初是要求方程 其中
为第一类合流超几何函数(Confluent Hypergeometric Function of the First Kind),相关介绍可参考特殊函数相关教材或者Wolfram MathWorld网页。这个函数在matlab中用
hypergeom(a,b,z)表示(注意不是kummerU(a,b,z)函数)。
但在用MMA对其进行求解的时候却遇到了一系列问题。
1、存在反函数、系数不精确

对于系数不精确的问题,是要把1.5换成3/2,这点之前确实没注意过。2、存在反函数、无法求解
把1.5换成3/2

3、正解
需要指定解的范围。用Solve或Nsolve均可。

Solve函数可能出现的问题
关于Solve函数可能存在的问题,帮助文档中也给出了说明。
这里列出部分,完整的还请参看帮助文档。


2、Reduce函数
还是优先参考帮助文档。
下面内容参考丁大正《Mathematica基础与应用》2.1.4节。
- Solve[eqns,vars]对系数按常规约定求出方程(组)的全部解。
- Reduce[eqns,vars]讨论系数出现的各种可能情况,分别求解。
书中还有更多详细内容。
3、Root、FindRoot、Nsolve、Reduce等函数
之后更新
一般来讲FindRoot应该是适用于更复杂的函数。
Nsolve是求数值解。
4、DSolve、RSolve等函数
用 DSolve 求解微分方程

用 RSolve 求解递归方程

















