3.4.2 一元方程Solve 和相关的 Mathematica 函数处理的方程主要是多项式方程. 求解 x 的线性方程是容易的
Out[1]= |  |
通过使用简单的公式也可以求解二次方程
Out[2]= |  |
Mathematica 也能求三次方程的精确解. 这里是方程的第一个解
Out[3]= |  |
对三次或二次方程,结果常常是复杂的. 但对次数不超过四次的方程. Mathematica 总能给出解的显式公式. 这些公式的一个重要特点是它们仅包含 根式: 二次根、三次根和较高次根的算术组合. 然而,作为基本的数学事实,五次及五次以上的方程,一般不再可能给出 仅含根式的解的显式公式. 虽然在一些特殊情形可以做到这一点, 但绝大多数情形是不行的. 这里构造一个 6 次多项式
Out[4]= |  |
对于这种能分解因式的多 项式,Solve 直接求出根
Out[5]= |  |
这里构造一个 8 次多项式
Out[6]= |  |
这个多项式不能分解因 式, 但它能分解成嵌套多 项式,所以 Solve 也能求出根的显式公式
Out[7]= |  |
根的隐式表示 对这个方程不能给出仅含根式的解的显式公式,所以 Mathematica 使用一个隐式符号表示
Out[8]= |  |
这里求每个根的数值解
Out[9]= |  |
如果用户最终想要数值 解,那么使用 NSolve 将 快得多
Out[10]= |  |
根对象提供一个精确的,尽管是隐式的,多项式的根的表示. 用户可以像使用 Sqrt[2] 或其它代表精确数值量的表达式一 样使用根对象. 这里是上面讨论的多项式的第一个根的根对象
Out[11]= |  |
这是它的近似值
Out[12]= |  |
函数 Round 求出最接近这个根的整数
Out[13]= |  |
如果将根式代入原多项式并化简结果,将得到 0
Out[14]= |  |
这里求出原多项式所有根的连乘
Out[15]= |  |
第三个根的复共轭是第二个根
Out[16]= |  |
如果求解的方程中仅有的符号参数是待求变量,那么,方程的所有根都是数. 但方程中如果有其它符号参数,那么解将是这些参数的函数. 这个方程的解还是用根对象表示,但现在每个根对象包含参数 a
Out[17]= |  |
当取 a=1 时,根对象被化简,其中一些由显示根式给出
Out[18]= |  |
这里显示第一个根作为 a 的函数的变化情况
Out[19]= |  |
这里求第一个根关于 a 的导数
Out[20]= |  |
给 Solve 任何 个解,尽管其中一些可能 用根对象代表. 如果有退化解,那么每个解出现的次数将等于它的重数. Solve 给出此方程的两个相等的解
Out[21]= |  |
这里是一个 10 次方程的前 4 个解,这些解成对出现
Out[22]= |  |
Mathematica 还能求解不明显是多项式形式的方程. 这是包含平方根的方程
Out[23]= |  |
这里是一个包含对数的方程
Out[24]= |  |
只要一个方程能化为某种多项式形式,Mathematica 总能用根对象代表它的解, 并总能准确地求出数值近似值. 但是,对更一般的方程,比如包含超 越函数的方程,没有使用根对象,甚至没有求数值近似值的系统方法. 3.9.6 节将讨论 Mathematica 中解决这一问题的方法. 这里求方程 靠近 的一个数值解
Out[25]= |  |
画出 的图形,清楚地看到该方程有无限多个解
Out[26]= |  |
|