try ai
科普
编辑
分享
反馈
  • 有限差分近似

有限差分近似

SciencePedia玻尔百科
核心要点
  • 有限差分法是将微分方程的连续语言转化为计算机可以处理的离散算术的基本工具。
  • 有限差分格式的精度由其截断误差决定,截断误差可以通过泰勒级数展开进行系统分析;对称格式通常能提供更高阶的精度。
  • Lax-Richtmyer 等价定理指出,对于一个适定问题,一个数值格式收敛到真实解的充分必要条件是它既是相容的(局部精确),又是稳定的(不放大误差)。
  • 尽管有限差分法广泛应用于从工程到金融的各个领域,但其成功实施需要仔细考虑其背后的物理原理,从而发展出如迎风格式和良态平衡格式等专门技术。

引言

自然法则以微积分的语言书写,描述了一个连续变化的世界。然而,计算机在一个由数字和算术构成的离散世界中运行。为了使用数字工具模拟物理现象,我们必须通过将微分方程转换为计算机能够理解的格式来弥合这一差距。这种转换行为是数值方法的领域,而其中最基础、最通用的技术之一就是有限差分近似。

本文旨在解决用离散值表示连续导数这一根本性挑战,这个过程本身会引入误差,而这些误差必须得到控制。本文将指导读者理解这些近似是如何构建的,它们的精度如何衡量,以及如何应用它们来解决现实世界的问题。

您将首先在“原理与机制”一章中探索核心概念,其中我们将推导基本的有限差分公式,使用泰勒级数分析其精度,并揭示对称性、稳定性和相容性的关键作用。随后,“应用与跨学科联系”一章将展示这些方法的非凡力量和广度,说明它们如何被用于模拟从梁的弯曲、热的流动到金融期权定价的各种现象,同时还将它们与其他主要的计算技术进行比较。

原理与机制

物理定律通常是用优美而简洁的微积分语言——一种关于连续变化、导数和积分的语言——写成的。但计算机不会说这种语言。计算机说的是算术语言,是存储在内存中的离散数字。因此,要模拟世界,我们必须成为翻译者。我们必须找到一种方法,将描述连续运动、流动和振动的优美方程,转换成计算机可以遵循的一系列指令。这种从连续到离散的转换,正是数值近似的艺术与科学,而其最基本的工具就是有限差分。

数字显微镜:从曲线到数字

想象一下,你正在看一张纸上画的一条平滑曲线。任何一点的导数就是该点切线的斜率。这是一个纯粹的局部属性。现在,想象一下将这条曲线数字化。你无法存储整条无限的曲线;相反,你在一些列离散点上对其值进行采样,就像串在线上的珠子。假设这些点分布在一个均匀的网格上,相隔一小段距离 hhh。

我们如何找到其中一个点的“斜率”?我们不再拥有曲线本身,只有这些珠子。我们画不出切线。最直接的想法是选取两个相邻的珠子,计算连接它们的直线的斜率。如果我们选择当前点 xxx 和它正前方的点 x+hx+hx+h,我们就得到了​​前向差分​​近似:

f(x+h)−f(x)h\frac{f(x+h) - f(x)}{h}hf(x+h)−f(x)​

如果我们选择当前点和它正后方的点 x−hx-hx−h,我们就得到了​​后向差分​​:

f(x)−f(x−h)h\frac{f(x) - f(x-h)}{h}hf(x)−f(x−h)​

这些简单的公式是有限差分法的精髓。我们用有限的、可计算的“块” Δf\Delta fΔf 和 Δx=h\Delta x = hΔx=h 替换了微积分中的无穷小量 dfdfdf 和 dxdxdx。我们已经构建了第一台用于观察离散世界变化率的数字显微镜。但它提供的图像质量如何呢?

机器中的幽灵:截断误差

一个近似只有在我们知道它有多大误差时才有用。我们用有限差分公式代替真实导数所引入的误差称为​​局部截断误差​​。它是我们计算机器中的幽灵,是连续现实与我们的离散模型之间的微妙差异。要看到这个幽灵,我们需要一个特殊的工具:泰勒级数。

泰勒级数是数学中最强大的思想之一。它告诉我们,任何足够光滑的函数,在某点 xxx 的邻域内,都可以表示为一个由该点各阶导数构建的无穷多项式。对于一个步长 hhh,它看起来是这样的:

f(x+h)=f(x)+f′(x)h+f′′(x)2!h2+f′′′(x)3!h3+…f(x+h) = f(x) + f'(x)h + \frac{f''(x)}{2!}h^2 + \frac{f'''(x)}{3!}h^3 + \dotsf(x+h)=f(x)+f′(x)h+2!f′′(x)​h2+3!f′′′(x)​h3+…

这是一个根据我们在 xxx 点所知的一切来计算其邻近点函数值的“配方”。让我们把它代入我们的前向差分公式。我们将 f(x+h)f(x+h)f(x+h) 的级数代入,减去 f(x)f(x)f(x),然后除以 hhh:

f(x+h)−f(x)h=(f(x)+f′(x)h+f′′(x)2h2+… )−f(x)h=f′(x)+f′′(x)2h+…\frac{f(x+h) - f(x)}{h} = \frac{\left( f(x) + f'(x)h + \frac{f''(x)}{2}h^2 + \dots \right) - f(x)}{h} = f'(x) + \frac{f''(x)}{2}h + \dotshf(x+h)−f(x)​=h(f(x)+f′(x)h+2f′′(x)​h2+…)−f(x)​=f′(x)+2f′′(x)​h+…

看我们发现了什么!我们的近似不仅仅是 f′(x)f'(x)f′(x)。它是真实导数加上一串剩余项。这些误差项中最大的一项 f′′(x)2h\frac{f''(x)}{2}h2f′′(x)​h,是我们的幽灵的主要部分,即截断误差的主项。这告诉我们两件至关重要的事。首先,随着网格间距 hhh 变小,误差也会变小。具有此性质的近似称为​​相容的​​。其次,误差与 hhh 的一次方成正比。我们说这个格式是​​一阶精度​​的。如果你将网格间距减半,误差也会减半。对后向差分的同样分析揭示了一个类似的误差,但符号相反:−f′′(x)2h-\frac{f''(x)}{2}h−2f′′(x)​h。

对称的魔力

我们得到了两个有偏差的近似,一个向前看,一个向后看,它们的误差符号相反,这可能暗示着我们发现了一些规律。如果我们不从 xxx 点单向看,而是在那里同时向两个方向平等地看,会怎么样?让我们使用点 f(x+h)f(x+h)f(x+h) 和 f(x−h)f(x-h)f(x−h) 来构造一个新的近似。这是连接我们两个邻点的直线的斜率,它被称为​​中心差分​​:

f(x+h)−f(x−h)2h\frac{f(x+h) - f(x-h)}{2h}2hf(x+h)−f(x−h)​

现在是见证魔力的时刻。让我们再次召唤泰勒级数。我们需要 f(x+h)f(x+h)f(x+h) 和 f(x−h)f(x-h)f(x−h) 的级数:

f(x+h)=f(x)+f′(x)h+f′′(x)2h2+f′′′(x)6h3+…f(x+h) = f(x) + f'(x)h + \frac{f''(x)}{2}h^2 + \frac{f'''(x)}{6}h^3 + \dotsf(x+h)=f(x)+f′(x)h+2f′′(x)​h2+6f′′′(x)​h3+…
f(x−h)=f(x)−f′(x)h+f′′(x)2h2−f′′′(x)6h3+…f(x-h) = f(x) - f'(x)h + \frac{f''(x)}{2}h^2 - \frac{f'''(x)}{6}h^3 + \dotsf(x−h)=f(x)−f′(x)h+2f′′(x)​h2−6f′′′(x)​h3+…

当我们用第一个级数减去第二个级数时,一个美妙的抵消发生了。f(x)f(x)f(x) 项消失了, f′′(x)h2f''(x)h^2f′′(x)h2 项以及所有其他偶次幂项也消失了。我们剩下:

f(x+h)−f(x−h)=2f′(x)h+f′′′(x)3h3+…f(x+h) - f(x-h) = 2f'(x)h + \frac{f'''(x)}{3}h^3 + \dotsf(x+h)−f(x−h)=2f′(x)h+3f′′′(x)​h3+…

两边除以 2h2h2h,我们得到了我们的近似:

f(x+h)−f(x−h)2h=f′(x)+f′′′(x)6h2+…\frac{f(x+h) - f(x-h)}{2h} = f'(x) + \frac{f'''(x)}{6}h^2 + \dots2hf(x+h)−f(x−h)​=f′(x)+6f′′′(x)​h2+…

一阶误差项,即与 hhh 成正比的那一项,完全消失了!这是我们选择的点的对称性的直接结果。主误差项现在与 h2h^2h2 成正比。这是一个​​二阶精度​​的格式。如果我们把网格间距减半,误差现在会减少为原来的四分之一。这以极小额外工作量换来了精度的巨大提升,并教会了我们设计数值方法时一个深刻的教训:对称性是你的朋友。主误差项 ChpC h^pChp 中的幂 ppp 被称为​​精度阶​​,它是我们衡量格式质量的主要标准。

超越第一步:高阶导数与多维空间

物理世界充满了二阶导数(如 F=maF=maF=ma 中的加速度或扩散中的曲率)、三阶导数等等。我们的泰勒级数工具完全有能力处理它们。策略保持不变:在多个网格点上形成函数值的线性组合,并巧妙地选择系数以消除不需要的项,从而分离出你想要的导数。

例如,通过组合 x−hx-hx−h、xxx 和 x+hx+hx+h 处的值,可以推导出著名的用于二阶导数的二阶中心差分,这是计算物理学中的主力,出现在从热传导 到量子力学的各种模拟中:

f′′(x)≈f(x+h)−2f(x)+f(x−h)h2f''(x) \approx \frac{f(x+h) - 2f(x) + f(x-h)}{h^2}f′′(x)≈h2f(x+h)−2f(x)+f(x−h)​

我们甚至可以通过使用更宽的点集来构建更高阶导数(如三阶导数 f′′′(x)f'''(x)f′′′(x))的模板。这种方法是系统而强大的。

如果世界不止一个维度呢?我们的宇宙至少有三个维度。在力学和工程学中,我们经常遇到混合偏导数,如 ∂2u∂x∂y\frac{\partial^2 u}{\partial x \partial y}∂x∂y∂2u​,它描述了在 xxx 方向的变化本身如何随着我们在 yyy 方向移动而变化。再一次,多维泰勒级数来拯救我们。通过取点 (x,y)(x,y)(x,y) 四个对角邻居处的值,我们可以构造一个极其简单且对称的近似:

uxy(xi,yj)≈ui+1,j+1−ui+1,j−1−ui−1,j+1+ui−1,j−14ΔxΔyu_{xy}(x_i, y_j) \approx \frac{u_{i+1, j+1} - u_{i+1, j-1} - u_{i-1, j+1} + u_{i-1, j-1}}{4 \Delta x \Delta y}uxy​(xi​,yj​)≈4ΔxΔyui+1,j+1​−ui+1,j−1​−ui−1,j+1​+ui−1,j−1​​

这个公式证明了核心思想的普适性。然而,扩展到多维揭示了一个微妙但深刻的真理:我们的离散网格有优选方向(沿着网格线),而连续空间则没有。例如,这个公式不具有“旋转不变性”;它内在地位与其所在的笛卡尔网格的方向绑定。

边缘求生:边界与崎岖网格

到目前为止,我们一直在一个无限、均匀的沙盒中玩耍。但现实世界的问题有边界——管道的壁、飞机机翼的表面。在边界上的一个点使用中心差分格式将需要一个来自“域外”点的值,而这个点在我们的物理问题中并不存在。

我们被迫使用单边格式。但我们了解到简单的前向差分只是一阶精度的。我们必须在边缘牺牲我们来之不易的精度吗?不。通过使用更宽的模板——从可用的单侧取更多的点——我们可以构造更高阶的单边近似。例如,使用边界点 (T0T_0T0​) 和前两个内部点 (T1T_1T1​, T2T_2T2​) 的值,我们可以推导出一个​​二阶精度的单边公式​​。这是在模拟中实现高精度边界条件的一项关键实用技术。

我们做出的另一个理想化是网格是均匀的。通常,我们需要将我们的数字显微镜放大到变化剧烈的区域,这需要更精细的网格,同时在其他地方使用较粗的网格以节省计算量。我们的方法足够稳健以处理这种情况。在点两侧间距分别为 h1h_1h1​ 和 h2h_2h2​ 的​​非均匀网格​​上使用相同的泰勒级数方法,我们可以推导出二阶导数的一个更通用的公式。这个公式更复杂,提醒我们打破对称性是有代价的,但它源于完全相同的第一性原理。

当规则失效:非光滑的世界

我们建立的整个理论大厦都建立在泰勒级数的基础上,而泰勒级数又假设我们正在研究的函数是光滑的——即它拥有我们所需要的任意多阶导数。如果这个假设被打破了会发生什么?如果我们的函数有一个尖角,比如在 x=0x=0x=0 处的 u(x)=∣x∣u(x) = |x|u(x)=∣x∣?

在这一点,导数在形式上是未定义的。我们的有限差分公式会告诉我们什么?让我们应用它们看看:

  • 对于任何 h>0h > 0h>0,前向差分给出的结果是 111。
  • 对于任何 h>0h > 0h>0,后向差分给出的结果是 −1-1−1。
  • 对于任何 h>0h > 0h>0,中心差分给出的结果是 000。

这些格式不再收敛到一个单一、公认的值。这不是失败,而是一个发现!我们的数值探针正在揭示奇点的复杂性质。前向差分找到了右侧的斜率(u+′=1u'_+ = 1u+′​=1),后向差分找到了左侧的斜率(u−′=−1u'_- = -1u−′​=−1),而对称的中心差分找到了它们的平均值。

现代数学中一个称为凸分析的领域为我们提供了一种思考这个问题的方式。它告诉我们,对于像 ∣x∣|x|∣x∣ 在原点这样的函数,其“导数”不是一个单一的数字,而是一组称为​​次梯度​​的数字集合。对于 ∣x∣|x|∣x∣ 在 x=0x=0x=0 处,次梯度是区间 [−1,1][-1, 1][−1,1]。这个区间内的任何斜率都对应于一条在该点从下方“支撑”该函数的直线。我们不同的有限差分格式只是收敛到这个次梯度集合中不同但同样有效的成员!。这是一个美丽的例子,说明了我们的计算工具如何能引导我们获得更深的数学见解。

宏观视角:从局部误差到全局真理

我们花了大量时间细致地分析​​局部截断误差​​——在单一点近似导数时产生的误差。但这种对局部的执着,对于一个大规模模拟(比如超新星或湍流)的最终全局答案重要吗?

答案是响亮而深刻的是,这要归功于数值分析的基石成果之一:​​Lax-Richtmyer 等价定理​​。用 Feynman 的精神来说,该定理可以表述为:对于一个适定问题,一个相容的数值格式收敛到真实解,当且仅当它是稳定的。。

让我们来解读一下。

  • ​​相容性​​:这正是我们一直在研究的。它意味着当网格间距趋于零时,局部截断误差也趋于零。我们设计的高阶格式不仅是相容的,而且是高效相容的。
  • ​​稳定性​​:这是第二个关键要素。一个稳定的格式是不会放大误差的。无论是来自截断还是计算机自身的有限精度算术,小误差总是存在的。一个不稳定的格式就像一个配置不当的音响系统,微小的反馈被放大成震耳欲聋的尖叫声,从而摧毁信号。一个稳定的格式能确保这些小误差在整个计算过程中保持微小。

因此,我们对更高阶精度的追求不仅仅是追逐 hhh 的幂次的学术游戏。它是这个宏大定理中相容性的部分。它确保我们的离散模型是对物理的忠实局部表示。当与稳定性相结合时,它保证我们的全局模拟将收敛到真理。

丰富的选择:显式、紧致及其他

故事结束了吗?我们是否找到了计算导数的唯一正确方法?远非如此。我们讨论的这些方法,即导数直接从函数值计算出来,被称为​​显式格式​​。但它们只是数值思想丰富生态系统中的一个家族。

另一个强大的家族是​​紧致格式​​(或隐式格式)。紧致格式不是为导数 uj′u'_juj′​ 提供一个直接的公式,而是定义了一个将相邻点的导数与函数值联系起来的方程。例如:

αuj−1′+uj′+αuj+1′=RHS involving uk\alpha u'_{j-1} + u'_j + \alpha u'_{j+1} = \text{RHS involving } u_kαuj−1′​+uj′​+αuj+1′​=RHS involving uk​

为了找到导数,现在必须求解一个遍布整个网格的线性方程组。这似乎需要大量额外的工作。为什么会有人这么做呢?回报在于结果的质量。对于给定的模板大小,紧致格式可以远比显式格式精确,特别是对于高度振荡或波动的函数。它们在我们的数字显微镜中提供了更清晰的图像,这一特性被称为高​​谱分辨率​​。这提出了一个经典的工程权衡:投入更多的计算精力来求解一个耦合系统,以获得一个显著更精确的结果。这类选择的存在表明,这个领域不是要找到一个单一的“最佳”方法,而是要理解一个充满强大思想的工具箱,并为手头的工作选择正确的工具。

应用与跨学科联系

我们花了一些时间来理解有限差分的机制,学习了如何用一系列离散、可计算的步骤来替代微积分中平滑、流动的曲线。这可能看起来仅仅是一种近似,一种对数字世界的妥协。但这正是真正冒险的开始。有了这个简单的想法——用差分代替导数——我们现在可以从抽象的数学世界走向几乎现代科学和工程的每一个角落。我们将看到,这项技术不仅仅是一种计算上的便利;它是一个强大的镜头,通过它我们可以建模、预测和理解我们周围的世界。

工程师的世界:梁的弯曲与热的流动

让我们从我们能看到和触摸到的事物开始。想象一位工程师正在设计一座桥或一个飞机机翼。她需要知道一根长而薄的梁在负载下会如何弯曲和变形。其物理过程由 Euler-Bernoulli 梁方程描述,这是一个涉及梁挠度四阶导数的关系。一个四阶导数!我们怎么可能直接测量它?我们不必。使用我们处理一阶和二阶导数时相同的逻辑,我们可以构建一个“模板”,将某一点的四阶导数与五个相邻点的挠度联系起来。通过在梁上处处应用这个模板,我们可以将复杂的微分方程转换成一个简单的代数方程组,计算机可以求解这个方程组,从而给我们一幅弯曲梁形状的精确图像。弯曲梁的连续、优美的曲线由一组离散的点重建,就像一张数码照片由像素构成一样。

同样的原理也让我们能够绘制出看不见的场。考虑一根简单的金属棒,其两端保持在不同的温度。我们知道热量从热端流向冷端,但棒上每一点的确切温度是多少?更重要的是,热量流动的速率有多快?其控制物理通常是一个二阶微分方程,或许还有一个内部热源增加了另一层复杂性。我们可以将棒切成离散的段,并为每个点的温度写下一个有限差分方程。求解这个系统,我们就得到了整个棒的温度分布。但我们还可以更进一步。一旦我们有了每个离散点的温度,我们可以应用另一个有限差分公式——这次是针对一阶导数的——来计算温度梯度。由于热流速率(热通量)与这个梯度成正比,我们不仅找到了温度场,还找到了材料内部能量输运的动力学。

当然,世界并不总是由直线构成。物理学中的许多问题具有天然的对称性——池塘上的圆形涟漪、鼓面的振动,或水流过圆形管道。有限差分可以优雅地处理这些情况。只需在一个更合适的坐标系(如极坐标 r,θr, \thetar,θ)中写下我们的导数,我们就可以推导出新的模板。这些模板不再连接方形网格上的点,而是连接圆形网格上的点,将一个点的值与其在径向和角向上的邻居联系起来。基本思想保持不变;改变的只是“邻域”的几何形状。

当简单近似变得棘手

认为应用有限差分总是一个直接、机械的过程是错误的。有时,一种幼稚的方法可能导致结果不仅不准确,而且是惊人地错误和不符合物理现实。这正是计算科学真正艺术性的体现,它要求我们深入思考我们试图模拟的物理现象。

考虑流体流过边界的问题。通常会形成一个称为“边界层”的非常薄的区域,在那里像速度这样的属性变化得极其迅速。如果我们试图用一个标准的中心差分格式在一个过于粗糙以至于无法看清该层内部的网格上进行模拟,我们的数值解可能会出现剧烈的、虚假的振荡。数字来回摆动,与平滑的物理现实毫无相似之处。为什么会发生这种情况?一阶导数的中心差分格式 f(x+h)−f(x−h)2h\frac{f(x+h) - f(x-h)}{2h}2hf(x+h)−f(x−h)​,“对称地”看待流动,同时从上游和下游获取信息。但在快速流动的流体中(一个“对流占主导”的问题),信息主要沿一个方向传播。物理过程有一个优选的方向,我们的数值格式应该尊重这一点。这就引出了“迎风”差分的思想,即我们使用来自流动来源方向的点来近似导数。这个看似微小的改变,可能就是稳定、有物理意义的解与数值混乱之间的区别。

当处理带有源项的守恒律(称为平衡律)时,会出现一个更深刻的挑战。想象一下模拟一场海啸穿越海洋。控制其运动的方程,即浅水方程,平衡了动量的变化与来自压力梯度和海床坡度的力。现在考虑最简单的状态:一个静止的湖泊。水面是完全平的,各处速度为零。底部的压力随深度变化,但这个力被来自倾斜湖床的力完美地平衡了。没有净力,没有任何东西移动。这是一个完美、微妙的平衡。如果我们独立地离散化压力项和海床坡度项,我们的数值格式可能无法保持这种完美的平衡。每个近似中的微小误差可能会产生一个小的、人为的净力。在我们的模拟中,这个“幽灵力”可以产生虚假的波浪和水流,导致“静止的湖泊”翻腾搅动,完全违反了物理学。为了解决这个问题,我们需要“良态平衡”格式,其中通量和源项的离散化巧妙地交织在一起,以便它们在平衡状态下能够精确地平衡。必须教会数值方法尊重物理规律。

方法的万象:将有限差分置于宏观背景中

有限差分是一个强大的工具,但它不是唯一的工具。了解它与其他方法相比的优缺点,能让我们对计算科学的宏观图景有更丰富的认识。

物理学中最重要的概念之一是​​守恒​​。质量、动量和能量不能被创造或毁灭。当我们模拟一个物理系统时,我们的数值方法必须尊重这些基本定律。​​有限体积(FV)法​​从一开始就建立在守恒原理之上,。它的工作原理是追踪进出离散体积的量的通量。通过确保离开一个体积的通量恰好是进入其邻居的通量,守恒性通过构造得到保证。另一方面,​​有限差分(FD)法​​从方程的微分形式出发。它不是自动守恒的。虽然可以设计出守恒的 FD 格式,但这需要特别小心。对于许多问题,比如模拟空气动力学中的流体流动或地下水在含水层中的运动,这种区别至关重要,。

像 FD 这样的基于网格的方法面临的另一个主要挑战是​​“维度灾难”​​。为了离散化一条线,我们需要大约 N=1/hN = 1/hN=1/h 个点,其中 hhh 是网格间距。对于一个正方形,我们需要 N2N^2N2 个点。对于一个立方体,是 N3N^3N3。对于一个 ddd 维的问题,我们需要 NdN^dNd 个点。计算成本随维度呈指数增长!对于金融建模或统计力学中可能涉及成百上千个维度的问题,这完全是行不通的。在这里,一种完全不同的方法——​​蒙特卡洛方法​​——大放异彩。它不是建立一个网格,而是通过模拟随机路径来解决问题。蒙特卡洛方法的误差随着样本路径数量的增加而减小,而与问题的维度无关。这使其成为高维问题的首选工具,而在这些问题中,FD 会慢得无可救药。然而,对于我们需要在任何地方都得到解的 1、2 或 3 维问题,FD 通常效率要高得多。

即使在大气科学这样的领域内,FD 也与其他方法竞争。全球气候模型必须在球面上求解方程。FD 格式是局部的——一个点的值只依赖于它的直接邻居。这使得它们很容易在超级计算机上并行化。相比之下,​​谱方法​​将解表示为全局基函数(如球谐函数)的和。它们对于平滑场可以非常精确,但需要全局通信,即更新解需要来自全球所有点的信息,这为可扩展性带来了潜在的瓶颈。

一次意外的旅程:从物理到金融

有限差分的力量远远超出了物理和工程的传统领域。在计算金融的世界里,“derivative”(导数/衍生品)不仅仅是数学算子;它们是价值数十亿美元的金融工具。一个期权——在未来某个日期以特定价格买卖资产的权利——的价格取决于诸如资产当前价格、时间和波动率等变量。

期权价格对这些变量的敏感度对于风险管理至关重要。这些敏感度只是偏导数,被交易员们称为“希腊字母”。最重要的“希腊字母”是 ​​Delta​​ (Δ\DeltaΔ),即期权价格相对于标的资产价格的导数,Δ=∂C∂S\Delta = \frac{\partial C}{\partial S}Δ=∂S∂C​。如何计算它?你可以使用复杂的解析公式,但通常使用有限差分更快、更灵活。

这个应用完美地说明了一个基本的数值权衡。为了计算导数,我们需要选择一个小的步长 hhh。如果我们选择的 hhh 太大,我们的近似会因为*截断误差——即截断泰勒级数产生的误差——而很差。如果我们选择的 hhh 太小,我们相减的两个函数值 C(S+h)C(S+h)C(S+h) 和 C(S)C(S)C(S) 会变得几乎相同。当计算机对两个几乎相等的浮点数进行相减时,会发生灾难性的精度损失,这种效应称为舍入误差*。总误差是这两种效应的组合,存在一个最优的、非零的 hhh 使其最小化。在为非常接近到期日的期权定价时,这种困境变得尤为尖锐。在那一刻,期权的价值变成了一个尖锐的、阶跃状的函数。试图对这样一个陡峭的函数进行数值微分是一项艰巨的挑战,它将有限差分方法推向了极限。

一个通用翻译器

我们的旅程从弯曲的梁到流动的水,从地球的大气层到抽象的金融世界。我们已经看到,用差分代替导数这个简单的想法,是解开大量问题的钥匙。

从某种意义上说,有限差分是一个通用翻译器。它们将用优美而连续的微分方程语言表达的自然法则,翻译成计算机能够理解的简单、离散的算术语言。但就像任何翻译一样,它不是一个不动脑筋的机械过程。好的翻译需要艺术性、细微的差别,以及对原文——即其背后的物理学——的深刻理解。我们必须明智地选择我们的模板,尊重守恒定律,并意识到方法的局限性。当我们这样做时,我们会发现自己掌握了在探索和预测我们世界的征程中最通用、最强大的工具之一。