Я получаю сообщение об ошибке <string>:149: RuntimeWarning: недопустимое значение, встречающееся в sqrt при создании списка
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, "-")
Я получаю сообщение об ошибке, в котором говорится о недопустимом значении в квадратном корне. Я не вижу, что это.
sqrt(0) = 0
6.5*sqrt(1- (-1**2)) = 0
Они должны работать, но у значений y есть проблемы, они возвращают "nan"
1 ответ
Решение
Наверное xs**2
возвращает число > 1
sqrt с отрицательным числом вернет nan (не число)
>>> import numpy as np
>>> np.sqrt(-1)
nan
Если я прав, numpy предоставляет функциональность комплексных чисел, которая, я думаю, является единственным способом представить sqrt(x), где x<0