材料派生或提取/获取矢量分量(对称矢量模块)

时间:2019-04-25 07:44:43

标签: python vector sympy

我正在做一个项目,我必须做一些重要的衍生。我在模块中找不到可以为我执行此类操作的功能。即使这个功能不存在,我也可以自己做,但是还有另一个问题。我不知道如何从向量中提取向量分量。如果我有一个向量(5,10),则无法单独提取y分量(10),而不会将x分量放在旁边。

我在该论坛上阅读了许多有关类似问题的信息,并且还阅读了sympy向量模块的文档。我似乎找不到答案。

import sympy.physics.vector
A = ReferenceFrame('A')
v = 5*A.x + 10*A.y

我想做矢量“ v”的物质导数。如果这不可能,我想自己创建一个函数(def fun ...),但我也不知道如何从向量中获取一个组件。

我以为组件提取看起来像v [0]或类似的东西,但是不起作用。

1 个答案:

答案 0 :(得分:0)

1)就材料派生而言,最好编写自己的函数,这应该不太困难。否则,您可能可以使用sympy.physics中的其他模块,例如mechanics模块。我不确定是否会有所帮助,但是绝对值得一看。

2)第二个问题(如何提取sympy向量对象的成分):

这有点骇人听闻,因为一旦转换为矩阵形式,基础参考框架信息就会丢失,但是您可以执行以下操作:

from sympy.physics import vector

A = vector.ReferenceFrame('A')
v = 5*A.x + 10*A.y

x_component = v.to_matrix(A)[0]
y_component = v.to_matrix(A)[1]

如果您仍然希望它是矢量形式,而不是标量系数,则可以立即将其与基本矢量重新乘以类似这样的结果:

x_vec = (v.to_matrix(A)[0])*A.x
y_vec = (v.to_matrix(A)[0])*A.y