Я тестирую некоторые функции для соответствия с данными, и одна из них (в 2-D) -
f(x) = (1/(1-x)) / (1 + 1/(1-x))
Что, согласно Wolfram и Google плоттерам, дает результат
f(1) = 1
Я пытался заставить это работать без жесткого кодирования случая
if x == 1:
return 1
но я получаю nan
и RunTimeWarning
, информирующие меня, что я действительно разделил на ноль.
import numpy as np
def f(x):
return 1/(1-x) / (1 + 1/(1-x))
x_range = np.linspace(0, 1, 50)
y = f(x_range)
print(y)
Есть ли более элегантное решение, чем просто ввести жестко закодированный if
?