Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中三个变量的绘图和函数_Python_Matplotlib_Sympy - Fatal编程技术网

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

python中三个变量的绘图和函数,python,matplotlib,sympy,Python,Matplotlib,Sympy,如下所示的方程式 sin(x)*sin(y)*sin(z)+cos(x)*sin(y)*cos(z)=0 我知道使用matplotlib绘制z=fx,y函数的代码,但要绘制上述函数,我不知道代码,但我尝试了MATLAB MuPad代码,如下所示 Plot(sin(x)*sin(y)*sin(z)+cos(x)*sin(y)*cos(z),#3d) 如果可以隔离z,这将更容易。你的方程与sinz/cosz=-cosx*siny/sinx*siny so z=atan cosx*siny/sin

如下所示的方程式

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

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

如果可以隔离z,这将更容易。你的方程与sinz/cosz=-cosx*siny/sinx*siny so z=atan cosx*siny/sinx*siny相同。

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

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+1pi/2切割x轴,两条平行线之间的距离为π。假设你保持n不变

假设y不能为零,可以将绘图简化为仅包含x和z的二维绘图

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

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()

这回答了你的问题吗?你可以试试mplot3d。以上所有参考资料1采用不同的z值来绘制不同的图,但我的目标是模拟mupad中的函数来绘制等于0的表达式。资源2有所有的函数,其中z是其他两个变量的函数,但在我的代码中z也是一个自变量,所以库中的函数失败了。你有x,y,z的值的域吗?如果你进一步简化,你可以在分子和分母中取消siny,但我认为这不合适。啊,我没有注意到。因此,对于整数n,方程实际上是z=atan-1/tanx或y=n*pi。使用大多数标准的3d绘图工具包,可以将这两个图形分别绘制在彼此的顶部。y=0或x-z=pi/2只是其中的一些解决方案。真正的答案应该是周期性的,比如对于整数n,y=n*pi或x-z=n*pi-pi/2。