微积分/函数值近似
虽然许多情况下,一个值确实可以并且确实有一个精确的表示,可以用某个函数来描述,但在许多现实世界的环境中,特别是当需要对这些值进行近似时,这种方法是有用的。例如,建筑工人可能需要一个长为 英尺的房间。但是,这个值没有用,因为大多数尺子没有 的刻度。因此,工人们需要这个长度的近似值,才能建造一个长为 英尺的房间。
有些数字以前很难近似,现在仍然很难近似,但微积分使近似更容易。数值分析 子领域研究用于近似数字的算法,包括但不限于残差(值与真实值之间的偏差)、小数精度级别以及达到一定精度水平所需的程序执行次数。
虽然本节不会替代数值分析(甚至没有接近),但本节希望能介绍一些有效的算法,将值近似到令人惊讶的精度水平。
在深入本节之前,第 2.4 节已经介绍了一种使用微积分作为依据来近似函数解的方法,称为二分法。因此,使用微积分来近似值并不令人惊讶。
回顾导数的定义之一:它是函数 在点 处的切线的斜率。考虑函数 在 周围的局部行为,如果 很小 并且 很小,则切线可以很好地近似值 (参见图 1)。
证明:注意,在某个可微函数 上, 处的切线方程如下:
(2)
其中 是切线的方程。
如果我们尝试通过切线来获得 (真实值),并且对于所有小的 ,都有 ,那么 。因此,
请注意,为了使用此技术,需要满足以下条件:
如果这些条件中的任何一个不成立,那么此技术将不起作用或用处不大。
示例 3.17.1:近似 令 。 的精确值。 在 处的切线方程为 令 。 假设 。 那么,。 因此,。 |
线性逼近的好处是,我们不需要使用更难理解的函数,而是使用线性函数来估计函数的值,这可以说是我们所能使用的最简单的计算方法,假设导数的值很容易找到。
确定过高或过低估计
[edit | edit source]请注意,对于任何使用切线逼近(与线性逼近相同)获得的逼近,都存在一个余项,它将使逼近等于我们可以从函数中获得的真实值。 也就是说,
(3)
其中 是余项。 不幸的是,这并不能让我们对残差进行精确估计,尤其是在我们无法找到该项的确切值的情况下。 虽然有一种技术可以确定这种类型估计的残差的上限,但将在第 6.11 节中进行,时间还很早。
目前,我们最好的解决方案是确定我们给出的估计值低于还是高于真实值,这可以通过以下技术来完成。
- 如果 在 和 之间的区间内是凹向下的,则逼近将是一个过高估计。
- 如果 在 和 之间的区间内是凹向上的,则逼近将是一个过低估计。
理由:假设 是 中的二次可微函数,并且 。
- 情况 1(A): 假设 且 ,其中 。那么,在 的切线 斜率为正,且 (见图 1 中的底部函数)。
- 情况 1(B): 假设 且 ,其中 。那么,在 的切线 斜率为正,且 。
- 情况 2(A): 设 且 对 成立。那么,在 的切线, 的斜率为负,且 .
- 情况 2(B): 设 且 对 成立。那么,在 的切线, 的斜率为负,且 (参见 图 1 中的底部函数)。
由于向下凹函数无论切线斜率如何,都有 ,而向上凹函数无论切线斜率如何,都有 ,我们已经证明了我们想要证明的内容。
例 3.17.2: 是高估还是低估? 设 . 函数在所有处向下凹,因为
最后一个推论的合理性在于(作为一个练习,请自行证明这一点)。如果是单调递减且有界的(事实的确如此——你可以用多种方式证明这一点),那么我们可以确定所示的不等式是正确的。 因为在从到的整个范围内都是向下凹的,是对真实值的过高估计。 |
虽然线性(或切线)逼近是一种强大且易于使用的工具,可用于逼近函数,但它也存在问题。这些问题在介绍该技术时就已暗示过。每个问题都将强调为什么该工具可能并不总是非常有用。
示例3.17.3:使用切线逼近逼近 令 。由于我们正在逼近 ,我们可以使用在 处的切线逼近来获得在 的逼近。不幸的是, 不收敛到有限值。因此这意味着切线是垂直的或不存在。由于导数在 处不存在,因此无法使用线性方法获得准确的逼近。 |
例 3.17.4:使用切线逼近来逼近 令 。由于我们正在逼近 ,且 是 的一个小的差异,我们可以使用在 处的切线逼近来获得在 的逼近。 在 处的切线方程为: 令 。假设 . 那么,。因此,. 然而,这个近似值与实际值相差甚远。它在 处的函数实际值范围内存在 的误差。造成这种大误差的原因在于一个微妙的方面。 虽然导数在 处存在,但函数在 上不是单调的:函数既会下降也会上升。回顾你的阅读内容,一个函数是单调递减的,当且仅当对于任意 且 ,。然而,对于上述 存在反例,如果你将函数绘制出来就会很明显。 点击查看函数图像 因此,使用切线来近似 的值是不可取的。 |
因为这将在第 6.2 节中更全面地学习,假设所有习题都具有单调函数。这个例子只是为了说明这种方法常遇到的一个常见陷阱。
牛顿-拉夫森方法
[edit | edit source]虽然切线近似非常有用,但它们往往只在您知道附近的值时才有用。但是,如果不存在附近的值来帮助估计其值,那么获得所需精确值的精确估计将非常困难。
牛顿-拉夫森法(在第 3.13 节中介绍)是一种有用的方法来确定函数的零点,无论它是多项式、超越、无理数、指数等。但是,牛顿-拉夫森法也可以用来近似特定函数的值。
如果您阅读了第 3.13 节,那么您应该已经了解并证明了这个等式。
例 3.17.5:近似 。 令 。我们需要对这个等式进行操作,以便我们可以得到 。 由此,令 。由于 是该方程的根,我们可以使用牛顿-拉夫森法来近似 。首先,我们选择一个初始猜测。由于 ,并且 , 是一个很好的初始猜测。在开始之前,我们需要函数的导数,可以很容易地证明它是 。现在我们开始寻找根。 为了方便起见,我们将在此处停止。然而,我们获得的值已经是精确到四位小数。 |
例 3.17.6:近似 。 令 。我们需要操纵这个等式,以便我们可以获得 。请记住尽可能消除平方根,这样我们的工作就会更容易。 请注意,该方程有四个可能的根,但我们只关心其中一个。回顾 请注意 ,所以我们选择 。
请注意 意味着 对于 。 最后,请注意 无法简化。我们将不得不使用这些值进行运算。(请记住,即使没有计算器,过去许多人使用 计算尺 来处理这些复杂的值。与模拟计算尺相比,我们现在可以利用触手可及的电子计算机)。 现在我们开始找到根。 为了方便起见,我们将在此时停止计算。然而,我们已经获得的值在小数点后六位数已经准确了。 |
当然,正如我们从第 3.13 节所知,牛顿-拉夫森法并不完美,在某些情况下会失效。一个明显的情况是当某个点的导数为零时。由于该导数位于分母中,一旦发生这种情况,我们就无法找到下一个可能的根。然而,还有一些其他的情况。 参考
对于某些函数,一些起点可能会进入无限循环,阻止收敛。令
并以 为起点。第一次迭代产生 ,第二次迭代返回 ,因此该序列将在两者之间交替,而不会收敛到根(参见图 2)。此方程的真实解是 。在这种情况下,应该选择另一个起点。
牛顿法发散的一个简单例子是求零的立方根。立方根是连续的,无限可微的,除了,它的导数没有定义。
对于任何迭代点,下一个迭代点将是
该算法超过了解,落在轴的另一侧,比最初更远;应用牛顿法实际上使每次迭代的解距离翻倍。
事实上,对于每个,其中,迭代将发散到无穷大。在极限情况下,迭代将在点和之间无限地交替,因此它们在这种情况下也不收敛。
不连续导数
[edit | edit source]如果导数在根处不连续,则收敛可能无法在根的任何邻域内发生。考虑函数
在根的任何邻域内,该导数随着 从右侧(或左侧)逼近 时不断变化符号,而 对于 成立。
因此, 在根附近是无界的,即使函数在所有地方都是可微的(因此是连续的),牛顿法几乎在根的任何邻域内都会发散,即使
- 该函数在所有地方都是可微的(因此是连续的);
- 根处的导数不为零;
- 是无限可微的,除了在根处;并且
- 导数在根的邻域内是有界的(与 不同)。
正如以下示例所示,欧拉法不像牛顿法那样快速地趋近于近似值。造成这种现象的原因有很多,但欧拉法并没有因为这个问题而失去实用价值。这些示例将展示欧拉法在何处具有实用价值。
示例 3.17.7:近似 。 令 。我们需要找到一个微分方程 。请注意,我们将在最后一步做一些对于近似 很重要的操作。 这里展示的最后一步非常重要。我们需要近似 。但是,如果我们试图近似 ,如果我们需要使用平方根来进行近似,那么就无法做到这一点。相反,由于 并且欧拉法为我们提供了新的 值,我们可以得到一个近似值。 接下来,我们需要选择一个初始点,。这是我们唯一使用函数 的实际值的点。在这种情况下,由于我们想要 ,我们将选择 。从那里,我们可以选择步长,它可以是任意的。在这里,我们将选择 如这里所示,对 的近似值为 。它的绝对误差为 ,在大多数情况下,这已经相当不错了。例如,如果要设计一个盒子,那么这是一个可以接受的误差范围。 |
虽然误差范围看起来很大,与 的局部线性近似值(绝对误差为 )相比,但请记住,我们的步长远大于示例 3.17 中显示的步长。如果我们选择更小的步长,那么近似值会更准确(尽管可能有点麻烦)。例如,如果步长为 ,那么绝对误差将约为 。