首页 > 解决方案 > curl的组件如何获取?

问题描述

在 Python 中计算向量场的 curl 并用 matplotlib 绘制它

在第一个答案中,

from sympy.physics.vector import ReferenceFrame
from sympy.physics.vector import curl
R = ReferenceFrame('R')
F = R[1]**2 * R[2] * R.x - R[0]*R[1] * R.y + R[2]**2 * R.z
G = curl(F, R) 

现在他打印 G,获得 curl 字段的组件的表达式,手动并将它们分配为

u = 0
v = y**2
w = -2*y*z - y 

如何直接从 G 获得 u,v,w,而不是如何手动打印和分配?什么是G?我们可以将其转换为字符串吗?我不想绘图,我只想要 curl 组件的表达式。

标签: pythonmathsympy

解决方案


像这样?

>>> list(G.args[0][0])
[0, R_y**2, -2*R_y*R_z - R_y]

或者,使用varlistR 的属性,我们可以替换R_xx等...,如

>>> u,v,w = G.args[0][0].subs(dict(zip(R.varlist, var('x:z'))))
>>> u, v, w
(0, y**2, -2*y*z - y)

推荐阅读