Python Numpy,RuntimeWarning:在sqrt中遇到无效值
我想画一个笛卡尔坐标系下的球体。 然而,我得到了一个半球,好像np.sqrt只给了我正值。 如何完成球体?有np.sqrt的替代方案吗 我知道如何用极坐标或正弦和余弦函数绘制球体,所以我只对使用x、y、z值绘制它感兴趣,例如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
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当作一个数学平方根函数是错误的。这能回答你的问题吗?