问题
def ellipse(numPoints, genX=np.linspace, HALF_WIDTH=10, HALF_HEIGHT=6.5):
xs = 10.*genX(-1,1,numPoints)
ys = 6.5*np.sqrt(1-(xs**2))
return(xs, ys, "-")
I am getting an error that states that an invalid value was encountered in a squareroot. I can't see what it is.
sqrt(0) = 0
6.5*sqrt(1- (-1**2)) = 0
They should work, but the y values are having problems, they are returning "nan"
回答1:
probably xs**2
returns a number > 1
sqrt with negative number will return nan (not a number)
>>> import numpy as np
>>> np.sqrt(-1)
nan
If i am right numpy provides complex numbers functionality which i think is the only way to represent sqrt(x) where x<0
来源:https://stackoverflow.com/questions/22949917/im-getting-an-error-string149-runtimewarning-invalid-value-encountered-in