开发者

Lambert W function implementation in Java

I'm working on a pr开发者_高级运维oject and have found myself in a situation where I need a function to be able to get at least an approximation of the value of W(x), the Lambert W function, where x can be any real number. I'm working in Java. I couldn't find any implementations of W in java when I searched. I am willing to code up the implementation myself if need be, but I am unsure of how that would be done right now. Any pushes in the right direction would be much appreciated.


Take a look at this page: http://mathworld.wolfram.com/LambertW-Function.html

It lists an approximation for z>3 as well as a series expansion for the function.

You can also use Newton's method and Halley's method to approximate the function: http://en.wikipedia.org/wiki/Lambert_W_function#Numerical_evaluation


The lambert function is the reciprocal function of g(w) = w*exp(w) it verifies:

W(z)eW(z) = z.

A good way to evaluate W(z) on a given z would be to use newton raphson method :

to solve : f(Y)= Yexp(Y) - z = 0.

you will find Y = W(z) with the method

You would have to find and implementation in java of the method yourself.

Hope it helps

below an illustration from wikipedia of the method:

Lambert W function implementation in Java

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜