主要内容

性能考虑

管理内存

在解决SDE引擎支持的大多数问题时,有两种管理内存的通用方法:金宝app

使用输出管理内存

执行传统的模拟来模拟感兴趣的底层变量,特别是请求并操作输出数组。

这种方法很简单,是小型或中型问题的最佳选择。由于它的输出是数组,在MATLAB中对模拟结果进行操作非常方便®依赖于语言。然而,随着问题规模的增加,这种方法的好处就会减少,因为输出数组必须存储大量可能无关的信息。

例如,考虑为一种欧洲期权定价,其中标的资产的终端价格是唯一的利益价值。为了减轻传统方法的内存负担,可以减少所需输入指定的模拟周期的数量NPeriods并指定可选输入NSteps.这使您能够在不牺牲准确性的情况下管理内存(请参阅优化精度:关于解的精度和误差).

此外,模拟方法可以确定输出参数的数量并相应地分配内存。具体来说,所有模拟方法都支持相同的输出参数列表:金宝app

(Z路径、时间)

在哪里路径而且Z可以是大型的三维时间序列阵列。但是,底层噪声数组通常是不必要的,只有在请求作为输出时才存储。换句话说,Z仅在您要求时存储;如果你不需要,就不要要求它。

如果你需要输出噪声数组Z,但不需要路径时间序列数组,则可以避免存储路径两种方式:

  • 的方法是最佳实践输出参数占位符。例如,使用以下输出参数列表来存储Z而且,但不是路径

    (~,, Z)

  • 使用可选输入标志路径,所有仿真方法都支持。金宝app默认情况下,路径存储(路径真正的).然而,设置路径返回路径作为一个空矩阵。

使用周期结束处理函数管理内存

指定一个或多个期末处理函数,只管理和存储感兴趣的信息,完全避免模拟输出。

这种方法需要指定一个或多个期末处理函数,通常是解决大规模问题的首选方法。这种方法允许您完全避免模拟输出。由于没有输出请求,三维时间序列数组路径而且Z不存储。

这种方法通常需要更多的工作,但是更加优雅,并且允许您自定义任务并极大地减少内存使用。看到股权期权定价

提高性能

在解决SDE问题时,以下方法可以提高性能:

  • 以各种组合方式将模型参数指定为传统的MATLAB数组和函数。这提供了一个灵活的接口,几乎可以支持任何一般的非线性关系。金宝app然而,虽然函数为许多问题提供了方便和优雅的解决方案,但当您将参数指定为双精度向量或矩阵时,模拟通常运行得更快。因此,尽可能将模型参数指定为数组是一个很好的实践。

  • 尽可能使用重载欧拉模拟方法的模型。利用布朗运动(BM)和几何布朗运动(“绿带运动”)提供重载欧拉模拟方法的模型利用了可分离的常量参数模型。这些专门的方法非常快,但只适用于具有常数参数的模型,这些模型在模拟时没有指定周期结束处理和噪声产生函数。

  • 仿真取代了常参数,由单变量模型推导而来SDEDDO用对角线多元模型的值初始化.将多变量模型视为单变量模型的组合。这增加了模型的维度,并通过减少模拟试验的有效数量来提高性能。

    请注意

    该技术仅适用于常参数单变量模型,而不指定周期结束处理和噪声产生函数。

  • 利用仿真方法被设计来检测存在的事实(不是数字)周期结束处理函数返回的条件。一个类的未定义数值计算的结果以及任何后续计算的结果产生另一个.这有助于提高某些情况下的表现。例如,考虑模拟一个淘汰障碍期权(即,当基础资产的价格超过某个规定的障碍时,一种期权变得毫无价值)的标的投资者的路径。周期结束函数可以检测到跨越障碍并返回以示提前终止目前的试验。

优化精度:关于解的精度和误差

一般来说,模拟体系结构不进行模拟确切的金宝搏官方网站任何SDE的解决方案。相反,模拟体系结构提供了底层连续时间过程的离散时间近似,这种模拟技术通常被称为欧拉近似

在最一般的情况下,给定的模拟直接来自SDE。因此,所模拟的离散时间过程只有在时间增量的限制下才会接近底层的连续时间过程dt接近零。换句话说,仿真体系结构更重视确保离散时间和连续时间过程的概率分布接近,而不是过程的路径接近。

在说明改进解的近似值的技术之前,了解误差的来源是有帮助的。金宝搏官方网站在这个体系结构中,所有的仿真方法都假设模型参数在任何时间间隔上都是分段常数dt.事实上,这些方法甚至在每个时间间隔的开始评估动态参数,并在间隔的持续时间内保持它们固定。这种抽样方法介绍了离散化误差

然而,对于某些模型,分段常数方法提供了精确解:金宝搏官方网站

更一般地,您可以模拟这些模型的精确解,即使参数随时间变化,如果它们以分段常数的方式变化金宝搏官方网站,使得参数变化与指定的采样时间一致。然而,这种精确的巧合是不可能的;因此,前面讨论的常参数条件在实践中是常用的。

提高准确度的一个明显方法是更频繁地对离散时间过程进行采样。这会减少时间增量(dt),使采样过程更接近底层连续时间过程。尽管减少时间增量是普遍适用的,但是,在准确性、运行时性能和内存使用之间存在权衡。

要管理这种权衡,请指定一个可选的输入参数,NSteps,适用于所有模拟方法。NSteps表示每个时间增量中的中间时间步数dt,在该节点上对流程进行采样,但不报告。

在这一点上,强调输入之间的关系很重要,也很方便NStepsNPeriods,DeltaTime到输出向量,表示报告模拟路径时的实际观测时间。

  • NPeriods,为必需输入,表示长度的模拟周期数DeltaTime,并确定模拟三维中的行数路径时间序列数组(如果请求输出)。

  • DeltaTime是可选的,并指示对应的NPeriods-length连续样本之间正时间增量的向量。它代表了熟悉的事物dt可以在随机微分方程中找到。如果DeltaTime未指定,则使用默认值1。

  • NSteps也是可选的,并且只与NPeriods而且DeltaTimeNSteps指定每个时间增量中的中间时间步数DeltaTime

    具体来说,每个时间增量DeltaTime被划分为NSteps长度的子区间DeltaTime/NSteps,并通过计算所模拟的状态向量来改进模拟(NSteps - 1)中间时期。尽管在这些中间时间没有报告输出状态向量(如果需要的话),但是这种改进使模拟更接近底层连续时间过程,从而提高了精度。如果NSteps未指定,默认为1(表示没有中间评估)。

  • 输出是一个NPeriods + 1-length与模拟路径相关的观测次数列向量。的每个元素的对应行相关联路径

下面的例子通过比较一个封闭形式的解和一系列欧拉近似值之间的差异来说明这种中间抽样NSteps

例如:提高求解精度

考虑一个单变量几何布朗运动(“绿带运动”)模型使用“绿带运动”常量参数:

d X t 0.1 X t d t + 0.4 X t d W t

假设预期收益率和波动率参数是年化的,并且一个日历年包括250个交易日。

  1. 的各种值的精确解和欧拉近似,模拟大约四年的单变量价格NSteps

    nPeriods = 1000;Dt = 1/250;Obj = gbm(0.1,0.4,“StartState”, 100);rng (575“旋风”) [X1,T1] = simBySolution(obj,nPeriods,“DeltaTime”, dt);rng (575“旋风”) [Y1,T1] = simByEuler(obj,nPeriods,“DeltaTime”, dt);rng (575“旋风”) [X2,T2] = simBySolution(obj,nPeriods,“DeltaTime”...dt,“nSteps”2);rng (575“旋风”) [Y2,T2] = simByEuler(obj,nPeriods,“DeltaTime”...dt,“nSteps”2);rng (575“旋风”) [X3,T3] = simBySolution(obj,nPeriods,“DeltaTime”...dt,“nSteps”10);rng (575“旋风”) [Y3,T3] = simByEuler(obj,nPeriods,“DeltaTime”...dt,“nSteps”10);rng (575“旋风”) [X4,T4] = simBySolution(obj,nPeriods,“DeltaTime”...dt,“nSteps”, 100);rng (575“旋风”) [Y4,T4] = simByEuler(obj,nPeriods,“DeltaTime”...dt,“nSteps”, 100);
  2. 比较误差(精确解和欧拉近似之间的差值)的图形:

    clf;plot(T1,X1 - Y1,“红色”)举行;(T2,X2 - Y2,“蓝”)图(T3,X3 - Y3,“绿色”)曲线(T4,X4 - Y4,“黑”)举行包含(的时间(年)) ylabel (“差价”)标题(“精确解减去欧拉近似”)({传奇# of Steps = 1# of Steps = 2...# of Steps = 10# of Steps = 100},...“位置”“最佳”)举行

    图中包含一个轴对象。标题为“精确解-欧拉近似”的坐标轴对象包含4个类型为直线的对象。这些对象表示# of Steps = 1, # of Steps = 2, # of Steps = 10, # of Steps = 100。

正如预期的那样,随着中间时间步长的增加,模拟误差减小。由于没有报告中间状态,所有模拟时间序列具有相同数量的观测值,而不管的实际值是多少NSteps

此外,由于先前模拟的精确解对于任意数量的中间时间步都是正确的,因此本例不需要额外的计算。金宝搏官方网站事实上,这种评价是正确的。在中间时间对精确解进金宝搏官方网站行采样,以确保模拟使用相同顺序的相同高斯随机变量序列。如果没有这种保证,就无法在路径基础上比较模拟价格。然而,可能有合理的理由在紧密间隔的时间间隔内采样精确的解决方案,例如定价路径依赖期权。金宝搏官方网站

另请参阅

||||||||||||||||||||

相关的例子

更多关于