pdeCoeff1D

首发版本:3.00.6.1

语法

pdeCoeff1D(diff, [conv=0], [react=0], [source=0], [mass=1])

详情

该函数为偏微分方程求解器 pdeSolver 的辅助函数,用于构造一维偏微分方程(PDE)的算子形式(Operator-form)的方程系数字典。

它定义了求解器所求解的各项系数(扩散、对流、反应、源项、质量项)。支持常系数(标量)和变系数(函数)。求解的方程形式如下:

M ( x , t ) ∂ u ∂ t = A ( x , t ) ∂ 2 u ∂ x 2 + B ( x , t ) ∂ u ∂ x + C ( x , t ) u + D ( x , t ) M(x,t)\frac{\partial u}{\partial t}=A(x,t)\frac{\partial^2u}{\partial x^2}+B(x,t)\frac{\partial u}{\partial x}+C(x,t)u+D(x,t)
数学量 coeff 中的字段 含义

M

mass

时间导数项系数

A

diff

二阶扩散项系数

B

conv

一阶对流项系数

C

react

反应项系数

D

source

源项

参数

diff 数值标量或函数,指定扩散项系数(Diffusion coefficient)。

conv 可选参数,数值标量或函数,指定对流项系数(Convection coefficient)。默认值为 0。

react 可选参数,数值标量或函数,指定反应项系数(Reaction coefficient)。默认值为 0。

source 可选参数,数值标量或函数,指定源项系数(Source term)。默认值为 0。

mass 可选参数,数值标量或函数,指定质量项系数(Mass coefficient)。默认值为 1。

注意:

  • 若系数为标量,必须为有限的有效值(即非 NULL、NaN 或 Inf)。

  • 若系数为函数,该函数必须接收 2 个参数(通常代表空间位置和时间),且返回值必须是有限的数值标量,不得为非标量形式(如向量、矩阵)或非数值类型(如布尔、时间、DECIMAL)。

  • 在求解阶段,mass 系数必须始终为正数且有限。

返回值

返回一个包含以下字段的字典(DICTIONARY):

  • type: STRING 标量,固定为 "operator1D"。

  • dim: INT 标量,固定为 1。

  • form: STRING 标量,固定为 "operator"。

  • diff: DOUBLE 标量或函数,扩散项系数。

  • conv: DOUBLE 标量或函数,对流项系数。

  • react: DOUBLE 标量或函数,反应项系数。

  • source: DOUBLE 标量或函数,源项系数。

  • mass: DOUBLE 标量或函数,质量项系数。

例子

例 1. 构造对应如下一维纯扩散方程的系数字典:

∂ u ∂ t = 0.2 ∂ 2 u ∂ x 2

coeff = pdeCoeff1D(diff=0.2)

例 2. 构造对应如下含质量项、扩散项、对流项、反应项和源项的完整方程系数字典:

1.5 ∂ u ∂ t = 0.01 ∂ 2 u ∂ x 2 − 0.3 ∂ u ∂ x − 0.05 u + 2.0

coeff = pdeCoeff1D(diff=0.01, conv=-0.3, react=-0.05, source=2.0, mass=1.5)

例 3. 构造 Black-Scholes 欧式期权定价模型对应的 PDE 系数字典(以资产价格 S、剩余期限 tau 为自变量,其中波动率 sigma = 0.2,无风险利率 r = 0.05):

∂ u ∂ τ = 1 2 ( 0.2 ) 2 S 2 ∂ 2 u ∂ S 2 + 0.05 S ∂ u ∂ S − 0.05 u

coeff = pdeCoeff1D(
    diff=def(S, tau) { return 0.5 * 0.2 * 0.2 * S * S },
    conv=def(S, tau) { return 0.05 * S },
    react=-0.05
)

相关函数: pdeInfo、pdeSolver