Реализация функции Ламберта 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 метода самостоятельно.

Надеюсь, поможет

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

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