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

StackOverflow https://stackoverflow.com/questions/22949917

  •  30-06-2023
  •  | 
  •  

Question

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"

Was it helpful?

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top