主要内容

漂移和扩散模型

概览

因为基础 sde 对象接受漂移和扩散对象,而非通过 (t, Xt) 访问的函数,所以您可使用自定义漂移或扩散函数和对象的组合来创建 sde 对象。drift 漂移率和 diffusion 扩散率对象封装了输入参数的详细信息,以优化输入参数的任何给定组合的运行时效率。

虽然 driftdiffusion 对象在其表示的细节上有所区别,但它们在基本实现和接口上相同。它们看起来像函数、行为像函数,也像函数一样进行计算:

  • 通过 drift 对象可以创建以下形式的漂移率对象:

    F(t,Xt)=A(t)+B(t)Xt

    ,其中:

    • A 是一个 NVars×1 向量值函数,可使用 (t, Xt) 接口访问。

    • B 是一个 NVars×NVars 矩阵值函数,可使用 (t, Xt) 接口访问。

  • 类似地,使用 diffusion 对象可以创建扩散率对象:

    G(t,Xt)=D(t,Xtα(t))V(t)

    其中:

    • D 是一个 NVars×NVars 对角矩阵值函数。

    • D 的每个对角元素是状态向量对应元素的 Alpha 指数次幂,该指数是一个 NVars×1 向量值函数。

    • V 是一个 NVars×NBrowns 矩阵值波动率函数 Sigma

    • AlphaSigma 也可以使用 (t, Xt) 接口访问。

    注意

    您可以采用最一般的形式来表达 driftdiffusion 对象,以突出 (t, Xt) 函数式接口。不过,在指定分量 AB 时,可以将其指定为支持通用 (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 表示相反,没有出现模型维度摘要,因为 driftdiffusion 对象创建了模型分量而不是模型。FG 都没有包含足够的信息来表征问题的维度。

drift 对象显示的参数为:

  • Rate:漂移率函数 F(t,Xt)

  • A:F(t,Xt) 的截断项 A(t,Xt)

  • B:F(t,Xt) 的一阶项 B(t,Xt)

AB 让您可以查询原始输入。存储在 Rate 中的函数完全封装了 AB 的组合效果。

diffusion 对象显示的参数为:

  • Rate:扩散率函数 G(t,Xt)

  • Alpha:状态向量指数,决定了 G(t,Xt)D(t,Xt) 的格式

  • Sigma:G(t,Xt) 的波动率 V(t,Xt)

同样,您可以使用 AlphaSigma 来查询原始输入。(单个 Alpha 和 Sigma 参数的组合效果由存储在 Rate 中的函数完全封装。)Rate 函数是 driftdiffusion 对象的计算引擎,而这一函数是模拟所需的唯一参数。

使用 DriftDiffusion 函数指定 SDEDDO

sdeddo 对象派生自基础 sde 对象。若要使用此对象,您必须将 driftdiffusion 对象传递给 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)

将这些 driftdiffusion 对象传递给 sdeddo 对象。

obj = sdeddo(F, G)      % dX = F(t,X)dt + G(t,X)dW
obj = 
   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

另请参阅

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

主题