Реализация функции Ламберта W в Java
Я работаю над проектом и попал в ситуацию, когда мне нужна функция, чтобы иметь возможность получить хотя бы приближение значения W(x), функции W Ламберта, где x может быть любым действительным числом. Я работаю на Java. Я не мог найти какие-либо реализации W в Java, когда я искал. Я готов сам при необходимости написать код для реализации, но я не уверен, как это будет сделано прямо сейчас. Любые толчки в правильном направлении будут высоко оценены.
2 ответа
Взгляните на эту страницу: http://mathworld.wolfram.com/LambertW-Function.html
Это перечисляет приближение для z>3
а также расширение серии для функции.
Вы также можете использовать метод Ньютона и метод Галлея для аппроксимации функции: http://en.wikipedia.org/wiki/Lambert_W_function
Функция Ламберта является обратной функцией g(w) = w*exp(w)
это проверяет:
W(z)eW(z) = z.
Хороший способ оценить W(z) на данном z будет использовать метод Ньютона Рафсона:
решать: f(Y)= Yexp(Y) - z = 0.
ты найдешь Y = W(z)
с методом
Вы должны были бы найти и реализовать в java метода самостоятельно.
Надеюсь, поможет
ниже иллюстрация из википедии метода: