主要内容

性能考虑

管理内存

有两种一般方法来管理内存时解决大多数问题的支持空间数据引擎:金宝app

管理内存与输出

执行传统的仿真模拟感兴趣的潜在变量,具体请求,然后操纵输出数组。

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

例如,考虑一个欧式期权定价的终端价格的基础资产是唯一的价值利益。减轻记忆负担的传统方法,减少模拟时间规定所需的输入NPeriods并指定可选的输入NSteps。这使您能够管理内存不牺牲精度(见优化精度:关于解决方案的精度和误差)。

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

(Z路径、时间)

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

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

  • 最佳实践是使用~输出参数占位符。例如,使用下面的输出参数列表来存储Z,但不路径:

    (~,,Z)

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

管理内存使用期末处理功能

指定一个或多个期末处理功能来管理和存储只有感兴趣的信息,避免模拟输出。

这种方法要求您指定一个或多个期末处理功能,和大规模的问题通常是首选的方法。这种方法允许您完全避免模拟输出。因为没有输出要求,三维时间序列数组路径Z不存储。

这种方法通常需要更多的努力,但是更优雅和允许您定制任务,极大地减少内存的使用。看到股票期权定价

提高性能

下面的方法解决钻问题时提高性能:

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

  • 重载的欧拉模拟方法使用模型,如果可能的话。使用布朗运动(BM)和几何布朗运动(“绿带运动”)模型提供过载欧拉模拟方法利用分离变量,常量参数模型。这些专门的方法非常快,但只与常数参数模型模拟不指定期末处理和噪声生成功能。

  • 取代常量参数的仿真,源自于单变量模型SDEDDO类与一个对角线多元模型。治疗单变量的多变量模型作为投资组合模型。这增加了模型的维数和提高性能通过减少有效的模拟试验。

    请注意

    这种技术只适用于常量参数单变量模型没有指定期末处理和噪声生成功能。

  • 利用模拟方法是用来检测这一事实的存在(不是一个数字)条件回来期末处理功能。一个代表了一个未定义的数值计算的结果,和任何后续计算基于产生另一个。在特定情况下,这有助于提高性能。例如,考虑模拟路径的下盘斜井淘汰赛障碍期权(即一个选项变得一文不值当标的资产的价格穿越一些规定的障碍)。你的期末能够探测障碍跨越并返回一个函数信号提前终止当前的审判。

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

一般来说,模拟仿真体系结构并不确切的金宝搏官方网站解决任何钻。相反,仿真体系结构提供了一个潜在的连续时间过程的离散近似,模拟技术通常被称为欧拉近似

在最一般的情况下,一个给定的模拟直接来自一个钻。因此,模拟离散时间过程方法潜在的连续时间过程只有在时间增量的极限dt接近零。换句话说,仿真架构更重视确保离散和连续时间过程的概率分布,而不是pathwise接近的过程。

说明技术来提高近似的解决方案之前,它有助于理解错误的来源。金宝搏官方网站在此体系结构中,所有的模拟方法假设模型参数分段常数在任何时间间隔的长度dt。事实上,即使评估动态参数的方法在每个时间间隔和持有固定的时间间隔。这种抽样方法介绍离散化误差

然而,有一些模型分段常数的方法提供了确切的解决方案:金宝搏官方网站

更普遍的是,你甚至可以模拟这些模型的精确解如果参数随时间,如果他们等分段常数的方式不同金宝搏官方网站,参数变化与指定的采样时间。然而,这样的巧合的是不可能的;因此,前面讨论的常数参数条件在实践中常用的。

一个明显的改善精度的方法包括采样离散时间过程更频繁。这降低了时间增量(dt),导致采样过程更适合底层连续时间过程。虽然减少了时间增量是普遍适用的,然而,有一个权衡在准确性、运行时性能和内存使用。

管理这个权衡,指定一个可选的输入参数,NSteps所有的模拟方法。NSteps表示数量的中间步骤在每个时间增量dt采样的过程,但没有报告。

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

  • NPeriods,需要输入,表示数量的模拟时间长度DeltaTime,决定了在模拟三维的行数路径时间序列数组(如果请求一个输出)。

  • DeltaTime是可选的,并显示相应的NPeriods连续长度之间的积极的时间增量向量样本。它代表了熟悉的dt随机微分方程。如果DeltaTime没有指定,默认值为1。

  • NSteps也是可选的,只有松散的联系NPeriodsDeltaTimeNSteps指定数量的中间步骤在每个时间增量DeltaTime

    具体地说,每次增量DeltaTime被划分到NSteps小区间的长度DeltaTime/NSteps,改进的仿真评估模拟状态向量(NSteps - 1)中间时期。尽管输出状态向量(如果要求)不报道这些中间时候,这种改进能提高准确性,导致仿真更紧密地接近底层连续时间过程。如果NSteps没有指定,默认的是什么1(表示没有中间评价)。

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

下面的例子说明了这个中间采样通过比较封闭的解之间的差异和欧拉近似序列来自不同的值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 =“绿带运动”(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;情节(T1, X1 - Y1,“红色”)举行;情节(T2, X2, Y2,“蓝”)情节(T3、X3 - Y3,“绿色”日元)情节(T4, X4 -,“黑”)举行包含(的时间(年))ylabel (“差价”)标题(精确解-欧拉近似的)({传奇“步骤= 1 #”“步骤= 2 #”“步骤= 10 #”“步骤= 100 #”},“位置”,“最佳”)举行

    图包含一个坐标轴对象。坐标轴对象与标题精确解-欧拉近似,包含时间(年),ylabel差价包含4线类型的对象。这些对象代表#步骤= 1,# = 2的步骤,步骤= 10 #,# = 100的步骤。

正如所料,模拟误差减少中间时间步的数量增加。因为中间状态都没有报告,模拟的时间序列具有相同数量的观察实际值无关NSteps

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

另请参阅

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

相关的例子

更多关于