Я получаю сообщение об ошибке <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

Другие вопросы по тегам