Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

漂移和扩散模型

概览

因为基础 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 来查询原始输入。(单个 AlphaSigma 参数由存储在 Rate 中的函数完全封装。)Rate 函数是 driftdiffusion 对象的计算引擎,而这一函数是模拟所需的唯一参数。

示例:SDEDDO 模型

sdeddo 对象派生自基础 sde 对象。若要使用此对象,您必须将漂移率和扩散率对象传递给 sdeddo

  1. 创建 driftdiffusion 比率对象:

    F = drift(0, 0.1);      % Drift rate function F(t,X)
    G = diffusion(1, 0.3);  % Diffusion rate function G(t,X)
  2. 将这些对象传递给 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
    

    在此示例中,对象显示了与输入漂移和扩散对象相关联的额外参数。

另请参阅

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

相关示例

详细信息