pdeCoeff2D

首发版本:3.00.6.1

语法

pdeCoeff2D(xx, yy, [xy=0], [x=0], [y=0], [u=0], [source=0], [mass=1])

详情

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

它定义了求解器所求解的各项系数(二阶偏导项、一阶偏导项、零阶项、源项、质量项)。返回结果可直接作为 pdeSolver 二维求解路径的 coeff 参数。支持常系数(标量)和变系数(函数)。求解的方程形式如下:

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

M

mass

时间导数项系数

A

xx

x 方向二阶扩散项系数

B

yy

y 方向二阶扩散项系数

C

xy

xy 交叉二阶导数项系数

D

x

x 方向一阶对流项系数

E

y

y 方向一阶对流项系数

F

u

反应项系数

G

source

源项

参数

xx 数值标量或函数,指定 x 方向二阶偏导项系数。

yy 数值标量或函数,指定 y 方向二阶偏导项系数。

xy 可选参数,数值标量或函数,指定交叉偏导项系数。默认值为 0。

x 可选参数,数值标量或函数,指定 x 方向一阶偏导项系数。默认值为 0。

y 可选参数,数值标量或函数,指定 y 方向一阶偏导项系数。默认值为 0。

u 可选参数,数值标量或函数,指定零阶项系数。默认值为 0。

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

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

注意:

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

  • 若系数为函数,该函数必须接收 3 个参数(通常代表空间位置 x、y 和时间 t)。

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

返回值

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

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

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

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

  • mass: DOUBLE 标量或函数,为规范化后的 mass、默认值或原函数对象。

  • xx: DOUBLE 标量或函数,为规范化后的 xx 或原函数对象。

  • yy: DOUBLE 标量或函数,为规范化后的 yy 或原函数对象。

  • xy: DOUBLE 标量或函数,为规范化后的 xy、默认值或原函数对象。

  • x: DOUBLE 标量或函数,为规范化后的 x、默认值或原函数对象。

  • y: DOUBLE 标量或函数,为规范化后的 y、默认值或原函数对象。

  • u: DOUBLE 标量或函数,为规范化后的 u、默认值或原函数对象。

  • source: DOUBLE 标量或函数,为规范化后的 source、默认值或原函数对象。

注意:系数名称、系数输入类型、交叉项和依赖性等诊断信息可通过 pdeInfo(coeff) 查询。

例子

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

∂ u ∂ t = 0.01 ∂² u ∂ x² + 0.02 ∂² u ∂ y²

coeff = pdeCoeff2D(xx=0.01, yy=0.02)

例 2. 构造对应如下二维对流扩散方程(含扩散项、对流项和常数源项)的系数字典:

∂ u ∂ t = 0.01 ∂ 2 u ∂ x 2 + 0.01 ∂ 2 u ∂ y 2 − 0.3 ∂ u ∂ x + 0.1 ∂ u ∂ y + 2.5

coeff = pdeCoeff2D(
    xx=0.01,
    yy=0.01,
    x=-0.3,
    y=0.1,
    source=2.5
)

例 3. 构造对应如下含混合二阶导数交叉项 ∂² u ∂ x ∂ y 方程的系数字典:

∂ u ∂ t = 0.1 ∂² u ∂ x² + 0.2 ∂² u ∂ y² − 0.05 ∂² u ∂ x ∂ y

coeff = pdeCoeff2D(
    xx=0.1,
    yy=0.2,
    xy=-0.05
)

例 4. 构造 Heston 随机波动率模型下欧式期权定价的 PDE 系数字典(以资产价格 S、方差 v、剩余期限 tau 为自变量):

∂ u ∂ τ = 1 2 v S 2 ∂² u ∂ S² + 0.045 v ∂² u ∂ v² − 0.21 v S ∂² u ∂ S ∂ v + 0.05 S ∂ u ∂ S + 2.0 ( 0.04 − v ) ∂ u ∂ v − 0.05 u

coeff = pdeCoeff2D(
    xx=def(S, v, tau) {
        return 0.5 * v * S * S
    },
    yy=def(S, v, tau) {
        return 0.5 * 0.3 * 0.3 * v
    },
    xy=def(S, v, tau) {
        return -0.7 * 0.3 * v * S
    },
    x=def(S, v, tau) {
        return 0.05 * S
    },
    y=def(S, v, tau) {
        return 2.0 * (0.04 - v)
    },
    u=-0.05
)

例 5. 通过自定义函数指定质量项(mass)与源项(source),对应方程如下:

1.0 · ∂ u ∂ t = 1.0 ( 即 ∂ u ∂ t = 1 )

coeff = pdeCoeff2D(
    xx=def(x, y, t) { return 0.0 },
    yy=def(x, y, t) { return 0.0 },
    source=def(x, y, t) { return 1.0 },
    mass=def(x, y, t) { return 1.0 }
)

相关函数: pdeInfo、pdeSolver