Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 Numpy,RuntimeWarning:在sqrt中遇到无效值_Python_Numpy_Plotly - Fatal编程技术网

Python Numpy,RuntimeWarning:在sqrt中遇到无效值

Python Numpy,RuntimeWarning:在sqrt中遇到无效值,python,numpy,plotly,Python,Numpy,Plotly,我想画一个笛卡尔坐标系下的球体。 然而,我得到了一个半球,好像np.sqrt只给了我正值。 如何完成球体?有np.sqrt的替代方案吗 我知道如何用极坐标或正弦和余弦函数绘制球体,所以我只对使用x、y、z值绘制它感兴趣,例如 x**2+y**2+z**2=1 这里是代码给出的半球和警告 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure(figsize=(20, 10

我想画一个笛卡尔坐标系下的球体。 然而,我得到了一个半球,好像np.sqrt只给了我正值。 如何完成球体?有np.sqrt的替代方案吗

我知道如何用极坐标或正弦和余弦函数绘制球体,所以我只对使用x、y、z值绘制它感兴趣,例如

x**2+y**2+z**2=1
这里是代码给出的半球和警告

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(20, 10))
ax = fig.add_subplot(1,2,1, projection = '3d')

xs=np.linspace(-1,1, 100)
ys=np.linspace(-1,1, 100)
xs,ys=np.meshgrid(xs,ys)
zs= np.sqrt(1-xs*xs-ys*ys)

ax.plot_surface(xs, ys, zs, lw = 0, antialiased = True)

根据定义,平方根函数给出了它的平方根的正(也称为原理)根数

“负平方根”是方程a^n=b的一组更一般的解的一部分,其中n是根的阶数,b是求平方根的数,a是解(a和b可能很复杂)

关键是“一般平方根”是不明确的,因为它对于一个输入有一组解。这不是一个(数学)函数。numpy使用每个人都使用的标准,即积极/原则解决方案

如果你想要一个球体,你可以做两个半球体,然后把其中一个翻转过来。(我不知道如何填补他们之间的差距:)


就运行时警告而言,您正在网格角处取一个负数的平方根,那里没有圆的(真实)解。那里不应该有解,因为那里不存在圆。(如果打印zs,您应该看到NaNs。)

谢谢!我把np.sqrt当作一个数学平方根函数是错误的。这能回答你的问题吗?