# potential


矢量场的势能

函数库: TySymbolicMath

# 语法

potential(V, X)

potential(V, X, Y))

# 说明

potential(V, X) 计算矢量场 V 相对于笛卡尔坐标系中矢量 X 的势能。矢量场 V 必须是梯度场。示例


potential(V, X, Y) 以 Y 作为积分基点,计算矢量场 V 相对于 X 的势能。示例

# 示例

计算矢量场的势

计算该矢量场相对于矢量 [x, y, z] 的势:

using TySymbolicMath
@variables x y z
P = potential([x, y, z * exp(z)], [x, y, z])
P = (1//2)*(x^2 + y^2) + (-1 + z)*exp(z)

使用函数 gradient 验证结果:

simplify.(TySymbolicMath.gradient(P, [x, y, z]), expand=true)
ans = 3-element Vector{Num}:
  x
  y
 z*exp(z)
指定积分基点

计算该矢量场的势,指定积分基点为 [0 0 0]:

using TySymbolicMath
@variables x y z
P = potential([x, y, z * exp(z)], [x, y, z], [0, 0, 0])
P = 1 + (1//2)*(x^2) + (1//2)*(y^2) + (-1 + z)*exp(z)

验证 P([0, 0, 0]) = 0:

substitute(P, Dict([x => 0, y=>0, z=>0]))
ans = 0.0
无梯度场的测试电位

如果矢量场不是梯度的,则势能返回 NaN:

using TySymbolicMath
@variables x y
potential([x*y, y], [x y])
ans = NaN

# 输入参数

V - 矢量场
由符号表达式或符号函数构成的向量

矢量场,指定为由符号表达式或符号函数构成的向量。

数据类型: Num

X - 输入
由符号变量构成的向量

输入,指定为由符号变量构成的向量,据此计算势能。

数据类型: Num

Y - 输入
符号向量

输入,指定为要用作积分基点的变量、表达式或数字的符号向量。如果使用此参数,势能将返回 P(X),使得 P(Y) = 0。否则,势能仅定义到某个加法常数。

数据类型: Num

# 详细信息

梯度向量场的标量势

梯度矢量场的势能 是标量 P(X),使得

矢量场是梯度的当且仅当对应的雅可比矩阵是对称的:

potential 函数以积分形式表示势:

# 提示

  • 如果 potential 函数不能验证 V 是一个梯度场,则返回 NaN;
  • 返回 NaN 并不能证明 V 不是梯度场,potential 函数有时不能充分简化偏导数,因此无法验证该场是否为梯度场;
  • 如果 Y 是标量,则 potential 函数将其扩展为与 X 长度相同的矢量,且所有元素均等于 Y

# 另请参阅

divergence | gradient | jacobian | hessian | laplacian | vectorPotential