有限差分法的导数****逼近
这是关于使用有限差分方法(FDM)数值求解抛物型偏微分方程系列教程的第一篇。
具体来说,我们将求解热方程(Heat Equation)。考虑到Black-Scholes方程可以转化为热方程,我们可以应用它的方法求解该方程。
假设我们定义函数
,即为实数上的连续函数,并且具有两阶可微性。那么f的热方程可以用以下式子表示:
离散化****衍生品
有限差分法通过离散化导数来提供该方程的数值解。我们可以使用泰勒级数展开来近似导数。回想一下,当自变量x<<R移动Δx时,泰勒级数可以表示函数 f(x)在该点导数的近似值。即:
类似地,当自变量x以相反方向平移相同Δx的时,我们可以同样的方式表达:
通过重新排列这两个方程,我们可以得到一阶导数f’’(x)和二阶导数f’’(x)的近似表达式:
域****离散化
既然我们已经对一维连续情况下的导数进行了近似,现在是时候将热方程的域进行离散化了。函数f现在是关于空间变量x和时间变量t的函数。我们可以将函数f(x, t)视为沿着一维杆上任意点的热量。
一维连续杆可以被离散为I个独立的点1, 2, ..., i, ..., I。时间可以被离散为N个独立的点1, 2, ..., n, …N,每个时间间隔为Δt。在时间n和位置x=i*Δx处,f的近似表达fni由以下公式给出:
请注意,上标n不表示f的幂或其第n阶导数,而是表示其在时间nΔt时的值。因此,上述导数的泰勒近似可以写成:
这些分别是前向差分、后向差分、中心差分和中心后向差分的近似形式。
误差和结论
考虑到差分是一种近似值,我们自然会对整体解决方案中可能出现的错误感到疑惑。实际上,可能会出现两种类型的误差:截断误差和舍入误差。截断误差是与导数离散化相关的误差,它由于高阶导数项的丢失而产生。
舍入误差是由于计算机上存储解的精度而引起的误差。通常使用双精度浮点数,每个值存储16位数字。这些误差可能会累积,尤其是当使用单精度浮点数时,它只能存储8位数字。
在下一个教程中,我们将对热方程进行数值求解。可以看到,如果不强制执行某些条件,截断误差会迅速累积。
因此,在使用数值方法求解偏微分方程时,我们需要注意这些误差,并尽可能减小它们的影响。这可以通过选择合适的离散化方法、适当的步长和精确的数值计算技巧来实现。只有在考虑到这些误差并采取适当的措施时,我们才能获得准确和可靠的数值解。