欢迎来到数值解法(Numerical Solutions)的世界!
在你之前的数学学习中,你已经学过如何通过因式分解或二次公式(Quadratic formula)来解像 \(x^2 - 5x + 6 = 0\) 这类方程。但如果遇到像 \(x^3 + \cos(x) = 15\) 这种「顽固」的方程,我们该怎么办呢?这类方程可没有简单的代数技巧能直接解出 \(x\)!
在高等纯数学 1 (FP1) 的这一章中,我们将学习如何找出「足够好」的答案。我们不会去寻求精确值,而是运用数值方法 (numerical methods),不断缩小范围,直到精确度达到要求为止。你可以把这想象成「寻宝游戏」,我们就像在玩「冷热游戏」,一步步靠近隐藏的宝藏(即方程的根)。
1. 基础:根的位置 (Location of Roots)
在我们锁定根的位置之前,必须先找出它住在哪个「邻里」。我们使用的是变号法 (Change of Sign rule)。
如果一个函数 \(f(x)\) 是连续的 (continuous)(即图像没有断层或空洞),且我们能找到两个数 \(a\) 和 \(b\),使得:
- \(f(a)\) 是负数(在 x 轴下方)
- \(f(b)\) 是正数(在 x 轴上方)
...那么该图像在 \(a\) 与 \(b\) 之间一定至少穿越过一次 x 轴。那个交叉点就是我们的根 (root)。
常见错误提示:在高等数学中处理三角函数时,除非题目特别说明使用角度(degrees),否则请务必确保你的计算器设定在弧度(Radians)模式!
重点摘要:
若 \(f(a)\) 与 \(f(b)\) 出现变号,通常意味着在区间 \([a, b]\) 内至少存在一个根。
2. 二分法 (Interval Bisection)
二分法是寻找根最直观的方法。这就像查字典时,每次都直接翻开正中间一样简单。
运作步骤:
1. 先找出一个已知会发生变号的区间 \([a, b]\)。
2. 计算中点 (midpoint):\(c = \frac{a+b}{2}\)。
3. 计算 \(f(c)\) 的值。
4. 观察 \(f(c)\) 的符号:
- 如果 \(f(c)\) 与 \(f(a)\) 符号不同,表示根现在位于新的区间 \([a, c]\) 内。
- 如果 \(f(c)\) 与 \(f(b)\) 符号不同,表示根位于 \([c, b]\) 内。
5. 重复此过程,不断缩小区间,直到达到所需的精确度。
类比:想象你在猜一个 1 到 100 之间的数字。如果你猜 50,我说「大一点」,那么你接下来只需在 51 到 100 之间寻找。你直接把搜索范围缩减了一半!
重点摘要:
二分法非常可靠,但速度较慢,因为每一步只能将区间范围减半。
3. 线性插值法 (Linear Interpolation)
二分法只是单纯地把区间折半,而线性插值法则聪明一点。它假设函数在两点之间是一条直线,并计算这条直线与 x 轴的交点。
原理:
我们利用相似三角形来找出直线与轴线的交点 \(x\)。别被公式吓到,这其实只是比例问题!公式通常写作:
\(\frac{x - a}{b - x} = \frac{|f(a)|}{|f(b)|}\)
其中 \(x\) 即为我们对根的新估计值。
运作步骤:
1. 确认变号区间 \(a\) 和 \(b\)。
2. 计算 \(f(a)\) 和 \(f(b)\)。
3. 使用公式(或比例法)找出交叉点 \(x\)。
4. 检查 \(f(x)\) 的符号。
5. 用 \(x\) 取代 \(a\) 或 \(b\) 来建立一个更窄的新区间,并重复上述步骤。
你知道吗?这个方法也被称为「假位法 (False Position method)」,因为我们是「假装」曲线是一条直线,进而推算根的位置。
重点摘要:
线性插值法通常比二分法快,因为它利用了函数的数值来估算,而不仅仅是取中点。
4. 牛顿-拉弗森法 (The Newton-Raphson Process)
这是「专业级」的方法。它不再使用两点连线,而是通过单一点上的切线 (tangent line) 来「溜」向根的位置。
公式:
你需要用到(在 P1/P2 学过的)微分技巧:
\(x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\)
运作步骤:
1. 给定一个初始猜测值 \(x_0\)。
2. 将函数微分以求出 \(f'(x)\)。
3. 将猜测值代入公式,得出 \(x_1\)。
4. 利用 \(x_1\) 求出 \(x_2\),以此类推。
5. 当数字不再有显著变化时停止(代表你已经精确锁定到根了!)。
鼓励一下:如果你觉得微分很困难,请记住,在 FP1 中你只需要用到 P1 和 P2 的基础法则(如多项式的幂法则)。加油,你可以的!
牛顿-拉弗森法何时会失效?
由于我们需要除以 \(f'(x_n)\),如果 \(f'(x_n) = 0\),该方法就会失效。这发生在驻点 (stationary points)(即转折点)。从几何角度看,水平切线永远不会碰到 x 轴,所以该方法会迷失方向!
重点摘要:
牛顿-拉弗森法是最快的方法,但需要进行微分。若你的猜测值太接近转折点,它就会失效。
快速回顾表
方法比较:
- 二分法:一定有效(只要有变号),但非常慢。
- 线性插值法:比二分法快,使用相似三角形原理。
- 牛顿-拉弗森法:非常快,使用切线,但需要微分,且在转折点附近会失效。
总结检查清单
- 我能利用变号法证明根的存在吗?
- 我能执行 2 至 3 次二分法迭代吗?
- 我能正确运用线性插值公式吗?
- 我能对 \(f(x)\) 进行微分并应用牛顿-拉弗森公式吗?
- 我清楚知道牛顿-拉弗森法为何可能失效吗?