python中三个变量的绘图和函数

2024-09-30 18:34:02 发布

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

如下所示的方程式

sin(x)*sin(y)*sin(z)+cos(x)*sin(y)*cos(z)=0

我知道使用matplotlib绘制z=f(x,y)函数的代码,但要绘制上述函数,我不知道代码,但我尝试了MATLAB MuPad代码,如下所示

Plot(sin(x)*sin(y)*sin(z)+cos(x)*sin(y)*cos(z),#3d)

Tags: 函数代码plotmatplotlib绘制sincosmatlab
2条回答

如果您可以隔离z,这将更加容易。你的方程式与sin(z)/cos(z) = -cos(x)*sin(y)/(sin(x)*sin(y))相同,所以z = atan(-cos(x)*sin(y)/(sin(x)*sin(y)))

请不要误解我的意思,但我认为你给出的方程可以简化为一个简单的二维图

sin(x)*sin(y)*sin(z)+cos(x)*sin(y)*cos(z) = 0
sin(y)[sin(x)*sin(z)+cos(x)*cos(z)] = 0
sin(y)*cos(x-z) = 0
Hence sin(y) = 0 or cos(x-z)=0
Hence y = n*pi (1) or x-z=(2*n + 1)pi/2
Implies, x = z + (2*n + 1)pi/2 (2)

对于(1),它将是一条直线(y对n的图),在第二种情况下,你将得到平行线,它在(2*n+1)π/2处切割x轴,两条平行线之间的距离为π。(假设n保持不变)

假设y不能为零,则可以将绘图简化为仅使用xz的二维绘图

回答您最初的问题,您需要使用mplot3d来绘制3D绘图。但与任何图形工具一样,您需要xyz的值或点。(您可以通过编程计算可能的点)。然后将这些点输入到绘图中,如下所示

from mpl_toolkits import mplot3d

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = plt.axes(projection="3d")
xs = [] # X values
ys = [] # Y values
zs = [] # Z values
ax.plot3D(xs, ys, zs)
plt.show()

相关问题 更多 >