在Symphy中有没有一种在球坐标系下工作的方法?

2024-05-12 19:16:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个用Python进行分析计算的脚本。为此,我需要参数的向量表示,以及一些基本的向量运算,如梯度和散度,因此我开始在Symphy中工作。然而,我注意到在球坐标系中没有一种简单的工作方式

阅读文档后,我发现Cartessian环境可以简单地定义为

from sympy.vector import CoordSys3D

N = CoordSys3D('N')

直接开始使用酉cartessian酉向量i,j,k

v = 2*N.i + 3*N.j - N.k

是否有任何方法可以初始化球坐标的环境,在这里我可以访问径向、θ和φ幺正向量,因此基本向量操作也会相应地完成? 提前非常感谢


Tags: from文档脚本参数定义环境方式向量
2条回答

经过一些阅读,我发现可以用 variable_names() 新基的酉向量为 vector_names()

所以球面坐标系的完整定义是

P = CoordSys3D('P', transformation='spherical',
                    vector_names=list('rtp'), 
                    variable_names=list('RTP'))

现在幺正向量确实尊重正确的关系,例如

P.r & P.t = 0
P.r ^ P.t = P.p

其中&表示点积^表示叉积

如果表示变换为“球面”,则可以访问球面坐标幺正向量作为“r”、“t”、“p”(或者可以使用全名,如“radius”、“theta”、“phi”)而不是“i”、“j”、“k”:

>>> from sympy.vector import CoordSys3D
>>> P = CoordSys3D('P', transformation='spherical', variable_names=list('rtp'))
>>> P.r
P.r

相关问题 更多 >