Реализация функции Lambert W в Java

Я работаю над проектом и оказался в ситуации, когда мне нужна функция, чтобы иметь возможность получить хотя бы приближение значения W(x),функция Ламберта W, где x может быть любым вещественным числом. Я работаю на Яве. Я не мог найти никаких реализаций W в java, когда я искал. Я готов код внедрения сам, если потребуется, но я не уверен, как это будет сделано прямо сейчас. Любые толчки в правильном направлении были бы много оцененный.

2 ответов


взгляните на эту страницу:http://mathworld.wolfram.com/LambertW-Function.html

он перечисляет приближение для z>3 а также расширение серии для функции.

вы также можете использовать метод Ньютона и метод Галлея для аппроксимации функции:http://en.wikipedia.org/wiki/Lambert_W_function#Numerical_evaluation


функция Ламберта является обратной функцией g(w) = w*exp(w) он проверяет:

W(z)eW(z) = z.

хорошим способом оценить W (z) на данном z было бы использовать Ньютона рафсона способ :

решение : f(Y)= Yexp(Y) - z = 0.

вы найдете Y = W(z) методом

вам придется найти и реализовать на java метод самостоятельно.

надеюсь, что это помогает

ниже иллюстрация из Википедии метод:

enter image description here