漂移和扩散模型
概览
因为基础 sde 对象接受漂移和扩散对象,而非通过 (t, Xt) 访问的函数,所以您可使用自定义漂移或扩散函数和对象的组合来创建 sde 对象。drift 漂移率和 diffusion 扩散率对象封装了输入参数的详细信息,以优化输入参数的任何给定组合的运行时效率。
虽然 drift 和 diffusion 对象在其表示的细节上有所区别,但它们在基本实现和接口上相同。它们看起来像函数、行为像函数,也像函数一样进行计算:
通过
drift对象可以创建以下形式的漂移率对象:,其中:
A是一个NVars×1向量值函数,可使用 (t, Xt) 接口访问。B是一个NVars×NVars矩阵值函数,可使用 (t, Xt) 接口访问。
类似地,使用
diffusion对象可以创建扩散率对象:其中:
D是一个NVars×NVars对角矩阵值函数。D的每个对角元素是状态向量对应元素的Alpha指数次幂,该指数是一个NVars×1向量值函数。V是一个NVars×NBrowns矩阵值波动率函数Sigma。Alpha和Sigma也可以使用 (t, Xt) 接口访问。
注意
您可以采用最一般的形式来表达
drift和diffusion对象,以突出 (t, Xt) 函数式接口。不过,在指定分量A和B时,可以将其指定为支持通用 (t, Xt) 接口,也可以指定为具有适当维度的 MATLAB® 数组。
指定漂移率和扩散率函数
在此示例中,您创建 drift 漂移率对象和 diffusion 扩散率对象来创建与 指定基础随机微分方程 (SDE) 模型 中相同的模型。
创建一个漂移率函数 F 和一个扩散率函数 G。
F = drift(0, 0.1) % Drift rate function F(t,X)F =
Class DRIFT: Drift Rate Specification
-------------------------------------
Rate: drift rate function F(t,X(t))
A: 0
B: 0.1
G = diffusion(1, 0.3) % Diffusion rate function G(t,X)G =
Class DIFFUSION: Diffusion Rate Specification
---------------------------------------------
Rate: diffusion rate function G(t,X(t))
Alpha: 1
Sigma: 0.3
每个对象看起来都像一个 MATLAB® 结构体,并包含补充信息(即,对象的类和简要描述)。但是,与 SDE 表示相反,没有出现模型维度摘要,因为 drift 和 diffusion 对象创建了模型分量而不是模型。F 和 G 都没有包含足够的信息来表征问题的维度。
drift 对象显示的参数为:
Rate:漂移率函数A: 的截断项B: 的一阶项
A 和 B 让您可以查询原始输入。存储在 Rate 中的函数完全封装了 A 和 B 的组合效果。
diffusion 对象显示的参数为:
Rate:扩散率函数
Alpha:状态向量指数,决定了 的 的格式Sigma: 的波动率
同样,您可以使用 Alpha 和 Sigma 来查询原始输入。(单个 Alpha 和 Sigma 参数的组合效果由存储在 Rate 中的函数完全封装。)Rate 函数是 drift 和 diffusion 对象的计算引擎,而这一函数是模拟所需的唯一参数。
使用 Drift 和 Diffusion 函数指定 SDEDDO
sdeddo 对象派生自基础 sde 对象。若要使用此对象,您必须将 drift 和 diffusion 对象传递给 sdeddo。
创建 drift 漂移率对象和 diffusion 扩散率对象。
F = drift(0, 0.1); % Drift rate function F(t,X) G = diffusion(1, 0.3); % Diffusion rate function G(t,X)
将这些 drift 和 diffusion 对象传递给 sdeddo 对象。
obj = sdeddo(F, G) % dX = F(t,X)dt + G(t,X)dWobj =
Class SDEDDO: SDE from Drift and Diffusion Objects
--------------------------------------------------
Dimensions: State = 1, Brownian = 1
--------------------------------------------------
StartTime: 0
StartState: 1
Correlation: 1
Drift: drift rate function F(t,X(t))
Diffusion: diffusion rate function G(t,X(t))
Simulation: simulation method/function simByEuler
A: 0
B: 0.1
Alpha: 1
Sigma: 0.3
另请参阅
sde | bm | gbm | merton | bates | drift | diffusion | sdeddo | sdeld | cev | cir | heston | hwv | sdemrd | rvm | roughbergomi | roughheston | ts2func | simulate | simByEuler | simBySolution | simBySolution | interpolate | simByQuadExp