Функция ЛамбертаPython

Программы на Python
Anonymous
Функция Ламберта

Сообщение Anonymous »

Я использовал функцию Ламберта в Python, но не получил правильных результатов.

Мой реальный код:

Код: Выделить всё

E = np.linspace(0,1,100)
y = []
for f in E:
W = scipy.special.lambertw((f-1)/np.exp(1), k=0, tol=1e-10)
y.append(W)

В приведенном выше коде теоретически значения должны лежать в диапазоне от -1 до 0. Но здесь, похоже, это не так.
Я заметил, что в случае с основной ветвью наблюдается небольшое расхождение в результатах. Wo(-1/e) = -1, но когда я использовал следующий код в Python, ответ был неправильным.

Код: Выделить всё

scipy.special.lambertw(-1/np.exp(1), k=0, tol=1e-8)
>>> (nan+nanj)
Может ли кто-нибудь мне помочь?

Спасибо!

Вернуться в «Python»