繁体   English   中英

通过 Sympy 中的 sympify 方法定义向量

[英]Vector definition through sympify method in Sympy

我在我的 Python 项目中使用 Sympy,将表达式的字符串定义通过 sympify 方法转换为 Sympy。 例如:

import sympy as sp
exp1 = sp.sympify('Add(Rational(1, 5), pi)')

虽然我能够描述几乎所有的功能,但我遇到了向量描述的问题,需要通过 sympify 方法来理解。 正常方式的向量定义:

from sympy.vector import CoordSys3D
R = CoordSys3D('R')
v = 3*R.i + 4*R.j + 5*R.k

下一个示例(多种示例之一)失败:

exp2 = sp.sympify('Vector(Coord3D().i*3, Coord3D().j*4, Coord3D().k*5')

我想保留 Vector 格式以支持 curl、发散和渐变功能。 1 行矩阵的定义不适合我。 文献研究没有给出结果。

对于 sympify 方法的 sympy.vector 定义的正确方法的示例或建议,我将不胜感激。

如果你传入一个本地字典,那会做你想要的:

>>> from sympy.vector import *
>>> sympify('Vector(R.i*3, R.j*4, R.k*5)',
... locals=dict(R=CoordSys3D('R'), Vector=Vector))
Vector(3*R.i, 4*R.j, 5*R.k)
>>> type(_)
<class 'sympy.vector.vector.Vector'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM