Search code examples
pythonnumpysqrt

I'm getting an error <string>:149: RuntimeWarning: invalid value encountered in sqrt while generating a list


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"


Solution

  • 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