Skip to main content

Section 4.6 方程的近似解

科学技术和工程实际中, 常遇到求解方程 \(f(x)=0\) 的问题, 但一般情况下要求出方程实根的准确值比较困难, 这就提出了求方程实根近似值的问题. 为了求方程 \(f(x)=0\) 的近似解,首先要确定根的大致范围, 也就是说要确定一个区间 \([a, b]\text{,}\)使所求的实根是位于这个区间的唯一实根, 称 \([a, b]\) 为所求实根的一个隔离区间. 然后尽量缩小隔离区间, 逐步改善近似根的精确度, 直至求得满足精度要求的近似解.本节介绍两种求方程近似解的常用方法.

Subsection 4.6.1 二分法

设函数 \(f(x)\)\([a, b]\) 上连续, \(f(a) \cdot f(b)<0\text{,}\) 且方程 \(f(x)=0\)\((a, b)\) 内仅有一个实根 \(\xi\text{,}\)则区间 \([a, b]\) 为实根 \(\xi\) 的一个隔离区间.
二分法的基本思想是: 取区间 \([a, b]\) 的中点 \(\xi_{1}=\frac{a+b}{2}\text{,}\) 计算 \(f\left(\xi_{1}\right)\text{.}\) 这时有两种可能: (1) 若 \(f\left(\xi_{1}\right)=0\text{,}\)\(\xi=\xi_{1}\text{.}\) (2) 若 \(f\left(\xi_{1}\right) \neq 0\text{,}\)\(f\left(\xi_{1}\right)\)\(f(a), f(b)\) 中的一个同号. 若 \(f\left(\xi_{1}\right)\)\(f(a)\) 同号, 则 \(f\left(\xi_{1}\right)\)\(f(b)\) 异号, 于是有 \(\xi_{1}<\xi<b\)\(b-\xi_{1}=\) \(\frac{1}{2}(b-a)\text{;}\)\(f\left(\xi_{1}\right)\)\(f(b)\) 同号, 则 \(f\left(\xi_{1}\right)\)\(f(a)\) 异号, 有 \(a<\xi<\xi_{1}\)\(\xi_{1}-a=\) \(\frac{1}{2}(b-a)\text{.}\)\(\xi_{1}\) 作为方程根的近似解, 其误差不超过 \(\frac{1}{2}(b-a)\text{.}\)
如果误差尚不能达到要求,那么可以对新的隔离区间 \(\left[\xi_{1}, b\right]\) (或 \(\left[a, \xi_{1}\right]\) ) 重复上面的做法求得 \(\xi_{2}\) (显见 \(\xi_{2}=\frac{\xi_{1}+b}{2}\)\(\left.\xi_{2}=\frac{a+\xi_{1}}{2}\right)\text{,}\)\(\xi_{2} \neq \xi\) 时, 再重复上面做法,直至达到所需的精确度为止.

Example 4.6.1.

例 1 求方程 \(x^{3}-2 x^{2}-4 x-7=0\)\([3,4]\) 上的一个近似根, 要求误差不超过 0.1 .
Solution.
解 设 \(f(x)=x^{3}-2 x^{2}-4 x-7\text{,}\)\(f(x)\)\([3,4]\) 上连续. 因为 \(f(3)=-10<0\text{,}\) \(f(4)=9>0\text{,}\) 所以方程 \(f(x)=0\)\((3,4)\) 内至少有一实根. 又 \(f^{\prime}(x)=3 x^{2}-4 x-4\text{,}\)\(f^{\prime}(x)=0\text{,}\) 解得 \(x_{1}=-\frac{2}{3}, x_{2}=2\text{.}\)\(x>2\)\(f^{\prime}(x)>0\text{,}\) 函数 \(f(x)\)\([3,4]\) 上单调增加, 所以方程 \(f(x)=0\)\((3,4)\) 内有且仅有一个实根, \([3,4]\) 即为该实根的一个隔离区间.
\(\xi_{1}=3.5, f(3.5)=-2.625<0, f(4)=9>0\text{,}\) 新的隔离区间为 \([3.5,4]\text{.}\)
\(\xi_{2}=3.75, f(3.75)=2.609>0, f(3.5)=-2.625<0\text{,}\) 又得新的隔离区间 \([3.5,3.75]\text{.}\)
\(\xi_{3}=3.63, f(3.63)=-0.042<0, f(3.75)=2.609>0\text{.}\) 由于 \(\frac{1}{2}(3.75-3.63)=\) \(0.06<0.1\text{,}\) 所以 \(\xi=3.63\) 是方程的一个近似根, 其误差不超过 0.1 .

Subsection 4.6.2 切线法

设函数 \(f(x)\) 在闭区间 \([a, b]\) 上具有二阶导数, \(f(a) \cdot f(b)<0, f^{\prime}(x)\)\(f^{\prime \prime}(x)\)\([a, b]\) 上保持定号,则方程 \(f(x)=0\) 在区间 \((a, b)\) 内有且仅有一个实根 \(\xi\text{,}\) 区间 \([a, b]\) 是实根 \(\xi\) 的一个隔离区间. 此时, 函数 \(y=f(x)\)\([a, b]\) 上的图形 \(\overparen{A B}\) 只有下列四种不同情形 (见图 4-21) : a. 凹且单调增加; b. 凹且单调减少; c. 凸且单调增加; d. 凸且单调减少.
切线法的基本思想是: 用 \([a, b]\) 上曲线弧 \(\overparen{A B}\) 一端处的切线近似代替曲线弧 \(\overparen{A B}\text{,}\) 从而用这一切线与 \(x\) 轴的交点的横坐标作为方程根的近似值. 由图 4-21a 可以看出, 由纵坐标 \(f(x)\)\(f^{\prime \prime}(x)\) 同号的端点 \(B(b, f(b))\) 作曲线的切线, 这一切线的方程为
\begin{equation*} y-f(b)=f^{\prime}(b)(x-b) . \end{equation*}
\(y=0\) 得切线与 \(x\) 轴交点的横坐标为
\begin{equation*} x_{1}=b-\frac{f(b)}{f^{\prime}(b)} \end{equation*}
它比 \(b\) 更接近于方程的根 \(\xi\text{.}\)
然后以区间 \(\left[a, x_{1}\right]\) 代替 \([a, b]\text{,}\) 过点 \(\left(x_{1}, f\left(x_{1}\right)\right)\) 作曲线的切线, 得 \(\xi\) 的第二个近似值
\begin{equation*} x_{2}=x_{1}-\frac{f\left(x_{1}\right)}{f^{\prime}\left(x_{1}\right)} \end{equation*}
\(x_{2}\)\(x_{1}\) 更接近于根 \(\xi\text{.}\) 如此继续, 可得到 \(\xi\) 的一系列近似值
\begin{equation*} b>x_{1}>x_{2}>\cdots>x_{n}>\cdots>\xi . \end{equation*}
由于数列 \(x_{n}\) 是单调减少数列, 且有下界 \(\xi\text{,}\) 所以此数列必有极限 \(\xi\text{.}\)\(\left|x_{n-1}-x_{n-2}\right|<\delta\)\(\left|x_{n}-x_{n-1}\right|<\delta\) 时,便可取 \(x_{n}\) 作为 \(\xi\) 的近似值, 其误差不超过 \(\delta\text{.}\)
其他三种情形亦可同样考虑, 要注意的是曲线的切线总是作在 \(f(x)\)\(f^{\prime \prime}(x)\)同号的那个端点.

Example 4.6.2.

例 2 用切线法求方程 \(x^{3}-2 x^{2}-4 x-7=0\) 在区间 \((3,4)\) 内实数根的近似值,使误差不超过 0.01 .
Solution.
解 由Example 4.6.1 可知 \([3,4]\) 为所求实根的隔离区间. 在 \([3,4]\) 上, 令 \(f(x)=x^{3}-2 x^{2}-\) \(4 x-7\text{,}\)
\begin{equation*} f^{\prime}(x)=3 x^{2}-4 x-4>0, f^{\prime \prime}(x)=6 x-4>0 . \end{equation*}
\(f(3)=-10<0, f(4)=9>0\text{,}\) 故从区间的右端点 \(b=4\) 出发, 得
\begin{equation*} \begin{gathered} x_{1}=4-\frac{f(4)}{f^{\prime}(4)}=4-\frac{9}{28} \approx 4-0.321=3.679, \\ x_{2}=3.679-\frac{f(3.679)}{f^{\prime}(3.679)} \approx 3.679-0.046=3.633, \\ x_{3}=3.633-\frac{f(3.633)}{f^{\prime}(3.633)} \approx 3.633-0.001=3.632 . \end{gathered} \end{equation*}
注意到 \(x_{3}\)\(x_{2}\) 的小数点后两位数字相同, 而且有 \(f(3.632)>0, f(3.631)<0\text{,}\)\(3.631<\xi<3.632\text{,}\) 取 3.631 作为 \(\xi\) 的近似值, 其误差小于 0.01 .
  1. 证明方程 \(x^{3}-3 x^{2}+6 x-1=0\) 在区间 \((0,1)\) 内有唯一的实根, 并用二分法求这个根的近似值,使误差不超过 0.01 .
  2. 用切线法求方程 \(x^{5}+x+1=0\) 的实根, 使误差不超过 0.001 .
  3. 求方程 \(x=0.538 \sin x+1\) 的近似根.