gpt4 book ai didi

python - Sympy Lambdify 在 mayavi 中获取 2d 方程的 3d 图

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:01 25 4
gpt4 key购买 nike

  str_exp="x+y"
expr = sympify((str_expr))
X,Y,Z=np.ogrid[x_start:x_end:no_x_points , y_start:y_end:no_y_points , z_start:z_end:no_z_points]
f = lambdify((x,y,z), expr)
foo=f(X,Y,Z)

尽管 exprxy 的函数,但我希望 foo 生成 3D 数据为z 也在变化。当我尝试使用 mayavi 绘制 foo 时,绘制的是一条线而不是一个平面。

我确信这是 sympy 的 lamdify 的结果,因为 foo 的维度是 (100,100,1) exprx+y

最佳答案

我猜问题是 expr 只有 2 个变量,因此您无法获得所需的 3d 数组。因此,sympy 的 sympify 函数不会简化表达式(或给定的字符串)。因此,您可以将 "(z+1)**2 - z*z - 2*z - 1" (或一些简单的表达式,以便 z 项不会抵消)添加到 str_exp 如果其中没有 'z' 术语。

这样 sympify 就会返回一个带有 z 的表达式。

>>str_expr="x+y+(z+1)**2 - z*z - 2*z - 1"
>>sympify((str_expr))
x + y - z**2 - 2*z + (z + 1)**2 - 1

关于python - Sympy Lambdify 在 mayavi 中获取 2d 方程的 3d 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com