Post Reply 
Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
01-16-2024, 12:06 PM (This post was last modified: 01-16-2024 12:08 PM by Gil.)
Post: #1
Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
For my HP50G LambertW program, I was making comparisons with Wolfram Alpha.

In Wolfram Alpha:
LambertW(-100)=3.2+2.5i
LambertW(-100)=3.2+2.7i
LambertW(-1E6)=11.4+2.9i
LambertW(-1E9)=17. 8+2.98i
LambertW(-1E15)=31.1+3.04i
LambertW(-1E30)=64.9+3.09i
LambertW(-1E30000)=69066.4+3.1415i
LambertW(-1E3000000000)=6.9E9 +3.141592653i
...

Two observations, as real x tends to go to very large negative values :
1) we see that the real part (of LambertW0) seems to —> +infinity;
2) we see that the imaginary part (of LambertW0) seems to —> pi.

My questions
If 2) is true, it means that lim IM(W0) =pi≠0, when x —> -infinity.
Then, can we say, considering the above, that lim W0(-infinity) = -infinity, as does write Wolfram Alpha, leaving out the imaginar part?

Or W0(-infinity) = -infinity+pi*i... = -infinity?
Or, more generally:
if lim "A" = C, when x-> B,
& C=±infinity +i×(constant K),
can we say that the limit C=±infinity,
leaving out the imaginary part (the constant K)
(the latter, K, being "peanuts" relatively to the ± infinity of the real part)?

I thank you in advance for your comments.

Gil
Find all posts by this user
Quote this message in a reply
01-16-2024, 02:01 PM (This post was last modified: 01-16-2024 02:13 PM by Gil.)
Post: #2
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
With Wolfram Alpha
LambertW (k=any value, z=(any real value ±i*infinity) = infinity.

Now it seems that lim LambertW, k free, for z=a+ib & with a=±infinity, b=±infinity, gives equally infinity.

Could anyone, if possible a "math guy", confirm it?

My questions are related of course to HP programs, as I want to implement an output in my Lambert HP50G function for any real or complex "numbers, including the ± infinity input cases, the outputs of which I wish to treat as follows :

Wk=0±1...(oo+ib): 'oo'
Wk=0±1...(a+ioo): 'oo'
Wk=0±1...(±oo±ioo): 'oo'

with oo being the infinity sign.

Thanks again for your insight.
Find all posts by this user
Quote this message in a reply
01-16-2024, 03:40 PM
Post: #3
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Wolfram Alpha

LambertW (-infinity) = (infinity)

But (infinity) * EXP (infinity) can't be equal to -infinity

Can Wolfram Alpha be wrong?
Find all posts by this user
Quote this message in a reply
01-16-2024, 05:16 PM (This post was last modified: 01-16-2024 05:26 PM by Nigel (UK).)
Post: #4
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
(01-16-2024 03:40 PM)Gil Wrote:  Wolfram Alpha

LambertW (-infinity) = (infinity)

But (infinity) * EXP (infinity) can't be equal to -infinity

Can Wolfram Alpha be wrong?

Not in this case (although in general I’m sure it can be!). \(\exp(+\infty+{\rm i}\pi)\) is indeed \(-\infty\) because \(\exp({\rm i}\pi)=-1\). So far as I can see you’ve already said something like this a couple of posts ago, so maybe I’m not understanding what you are asking?

Nigel (UK)
Find all posts by this user
Quote this message in a reply
01-16-2024, 06:11 PM
Post: #5
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
As I said,
LambertW (0,-infinity) = (infinity) with Wolfram Alpha.

I think it is impossible, as the (given answer -= infinity) * EXP (given answer =infinity) can't be equal to -infinity

Can Wolfram Alpha be wrong?

Instead, the answer seems rather to be (infinity+i*pi).
Then (infinity+i*pi) × exp(infinity) × cos (pi) =
Infinity × -1= -infinity.

But infinity + i*pi = infinity + number = infinity...

In a way, Wolfram may correct.

Question, what most "reasonable" output should I give for W0(-infinity), W0(±i×infinity), W0(±infinity±i×infinity)?
Find all posts by this user
Quote this message in a reply
01-16-2024, 07:36 PM
Post: #6
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
(01-16-2024 06:11 PM)Gil Wrote:  Instead, the answer seems rather to be (infinity+i*pi).
Then (infinity+i*pi) × exp(infinity) × cos (pi) =
Infinity × -1= -infinity.

(∞ + pi*I) * -∞ = -∞ - ∞*I

Still does not get back -∞, unless ... (∞ + pi*I) = ∞ ?

(∞ + pi*I) * -∞ = ∞ * -∞ = -∞

But then, we are just picking and choosing!

We start with saying W(-∞) = ∞ + pi*I ≠ ∞
But to make it roundtrip, we had to simplify (∞ + pi*I) = ∞

We may turn it around, and say ∞ = ∞ + (any finite number, real or complex)

∞ * e^∞ = ∞ * e^(∞+θ*i) = ∞ * e^∞ * cis(θ) = ∞ * cis(θ)

--> W(∞ * cis(θ)) = ∞      // infinity is weird!
Find all posts by this user
Quote this message in a reply
01-16-2024, 09:34 PM (This post was last modified: 01-16-2024 09:36 PM by Gil.)
Post: #7
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Nice summarised presentation, Albert.

For me, the answer given by Wolfram is misleading, as we requested W0(-1) and its "answer is infinity", but "answer is infinity" ×EXP("answer is infinity") clearly cannot give back -1, unless we assume that, in one step, infinity+iPI≠ infinity to assume at the end that infinity+iPI=infinity, which is contradictory.

What would you think if, for such cases, Wolfram Alpha would reply here "undefined", for x—> -oo,
but curiously also for x—>+oo?
Indeed, x—> +oo = +oo + "Somewhat", in particular, oo+ipI, and, as we saw, (x+ipI) × EXP(x+iPI) might give, with Euler and cos PI = - 1, a result of -oo (by special "picking up"), though clearly the graphs shows the "right" answer having rather to be +oo.
Find all posts by this user
Quote this message in a reply
01-16-2024, 09:53 PM
Post: #8
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
I read your last post again, Albert, and think that is a similar reasoning that might have incited the Wolfram team to give a possible math answer for W(-oo)=W(+oo) = +oo.
Find all posts by this user
Quote this message in a reply
01-16-2024, 11:45 PM (This post was last modified: 01-17-2024 12:13 AM by Albert Chan.)
Post: #9
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Not all math software follow Wolfram Alpha's logic.

p2> from mpmath import *
p2> mp.pretty = 1
p2> z = -inf
p2> lambertw(z), log(z)
((+inf + 3.14159265358979j), (+inf + 3.14159265358979j))
p2> z = mpc(0,inf)
p2> lambertw(z), log(z)
((+inf + 1.5707963267949j), (+inf + 1.5707963267949j))
p2> z = inf
p2> lambertw(z), log(z)
(+inf, +inf)

I am OK with ∞ + 1 = ∞, but not so much for ∞ + i = ∞
I like mpmath style better.

p2> inf + 1
+inf
p2> inf + j
(+inf + 1.0j)
Find all posts by this user
Quote this message in a reply
01-17-2024, 12:36 AM (This post was last modified: 01-17-2024 01:02 AM by Gil.)
Post: #10
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Yes, W0(-inf) = inf+i×pi is the limit that appears when x tends to very large negative real numbers.

But, again,
(inf+i×pi)*EXP(inf+i×pi) (1)
=(inf+i×pi)*EXP(inf) *EXP(i×pi)
=(inf+i×pi)*inf*(cos pi +i× sin pi)
=(inf+i×pi)*inf*(-1)
=(inf+i×inf)*(-1)
=-inf-i*inf ≠ -inf

if I am not mistaken, unless you force and say that first member in (1), inf+i×PI, = inf, with no more imaginary part (but that sounds strange : infinity of bananas [real part of number] + 1 orange×[imaginary part] =? infinity of bananas; on the other hand, infinity of bananas means that there are everywhere bananas in the universe, and consequently no place for a single orange).

And then annoying again, mixing up the definitions.

By the way, what does give your software for W0(infinity +10i). By what I understood, the output should be infinity + 10i, vs inf with Wolfram.
Find all posts by this user
Quote this message in a reply
01-17-2024, 12:57 AM
Post: #11
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Yes, W0(-inf) = inf+i×pi is the limit that appears when x tends to very large negative real numbers.

But, again,
(inf+i×pi)*EXP(inf+i×pi) (1)
=(inf+i×pi)*EXP(inf) *EXP(i×pi)
=(inf+i×pi)*inf*(cos pi +i× sin pi)
=(inf+i×pi)*inf*(-1)
=(inf+i×inf)*(-1)
=-inf-i*inf ≠ -inf

if I am not mistaken, unless you force and say that first member in (1), inf+i×PI, = inf, with no more imaginary part (but that sounds strange : infinity of bananas [real part of number] + 1 orange×[imaginary part] =? infinity of bananas; on the other hand, infinity of bananas means that there are everywhere bananas in the universe, and consequently no place for a single orange).

And then annoying again, mixing up the definitions.
Find all posts by this user
Quote this message in a reply
01-17-2024, 02:06 AM (This post was last modified: 01-17-2024 10:43 PM by Albert Chan.)
Post: #12
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Update with generalized W formula. Set θ=pi, we have W0(-∞) = ∞ + pi*I

Let z = ∞*cis(θ), r = ln(|z|)

We want to show w = W0(z) = ln(z) = r + θ*I
By checking for round-trip, i.e. w * e^w = z

w = r + θ*I ≈ r * cis(θ/r)                     // polar form
e^w = e^(r + θ*I) = e^r * cis(θ)

w * e^w ≈ r*e^r * cis(θ/r + θ)

|z| → ∞ --> r → ∞ too

w * e^w = ∞ * cis(0 + θ) = z

From definition of k-th branch of W

k = (w + ln(w) - ln(z)) / (2*pi*i)
2*pi*k = im(w + ln(w) - ln(z)) = θ + atan(θ/r) - θ = 0

--> k = 0
--> W0(∞*cis(θ)) = ln(∞*cis(θ)) = ∞ + θ*I

Again, from definition of k-th branch:

--> Wk(∞*cis(θ)) = ln(∞*cis(θ)) + 2*k*pi*I
Find all posts by this user
Quote this message in a reply
01-17-2024, 11:34 AM (This post was last modified: 01-17-2024 11:42 AM by Gil.)
Post: #13
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
"w = r + pi*I ≈ r * cis(pi/r) // polar form
e^w = e^(r*cos(pi/r)) * cis(r*sin(pi/r))
w * e^w = r*e^(r*cos(pi/r)) * cis(pi/r + r*sin(pi/r))"

How to you go from line 2 to 3
w = r * cis(pi/r)
w= r * cos (pi/r) + I*r*sin(pi/r)
e^w = e^(r*cos(pi/r)) * e^(I*r*sin(pi/r))
=e^(r*cos(pi/r)) * cis(r*sin(pi/r))
With w≈ r * cis(pi/r)
w*e^w=r * cis(pi/r) × e^(r*cos(pi/r)) * cis(r*sin(pi/r))
=? r*e^(r*cos(pi/r)) * cis(pi/r + r*sin(pi/r))

cis (A)* cis (B) =? +cis (A+B)
Find all posts by this user
Quote this message in a reply
01-17-2024, 12:04 PM (This post was last modified: 01-17-2024 12:05 PM by Gil.)
Post: #14
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
I am not so familiar with this notation.

I discovered it thanks you, Albert.

And checked that cis (A+B) = cis A × cis B.

By the way, with your software, may I kindly ask you if it were possible to check, for Wk=0, Wk=±1, Wk=±2, W±3 and arguments x = ± infinity +i*20, 20±I*inf and ±inf±I×inf, the given outputs of Wk(x)?

Thanks again for your painstaking.

Your insights are always most previous, for me and, certainly, beyond the HP community.
Find all posts by this user
Quote this message in a reply
01-17-2024, 01:51 PM
Post: #15
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Some "guessed" results for input z =a+ib, with a = -INF:

W-3(-INF +i20) = inf-i(5pi)
W-3(-INF - i20) = inf-i(7pi)

W-2(-INF +i20) = inf-i(3pi)
W-2(-INF - i20) = inf-i(5pi)

W-1(-INF +i20) = inf-i(pi)
W-1(-INF - i20) = inf-i(3pi)


W0(-INF +i20) = inf+i(pi)
W0(-INF - i20) = inf-i(pi)

W1(-INF + i20) = inf+i(5pi)
W1(-INF - i20) = inf+i(3pi)

W2(-INF + i20) = inf+i(5pi)
W2(-INF - i20) = inf+i(pi)

W3(-INF + i20) = inf+i(7pi)
W3(-INF - i20) = inf+i(5pi)

Wk(-INF, +ib, b>0) = inf+i(2k+1)(pi)
Wk(-INF, +ib, b<0) = inf+i(2k+1-2)(pi)

Wk(-INF, +ib, b>0) = inf+i(2k+1)(pi)
Wk(-INF, +ib, b<0) = inf+i(2k-1)(pi)

Conclusion
Wk(-INF, +ib, b≠0) = inf+i(2k+sign(b))(pi)
& we may check Wk(-INF, +ib, b=0) = inf+i(2k+1)(pi)

Summary
Wk(-INF, +ib) =inf+i(pi) *(2k+1, if b>=0; 2k-1, if b<0)
Find all posts by this user
Quote this message in a reply
01-17-2024, 02:01 PM
Post: #16
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Some "guessed" results for input z =a+ib, with a = -INF:

W-3(-INF +i20) = inf-i(5pi)
W-3(-INF - i20) = inf-i(7pi)

W-2(-INF +i20) = inf-i(3pi)
W-2(-INF - i20) = inf-i(5pi)

W-1(-INF +i20) = inf-i(pi)
W-1(-INF - i20) = inf-i(3pi)


W0(-INF +i20) = inf+i(pi)
W0(-INF - i20) = inf-i(pi)

W1(-INF + i20) = inf+i(5pi)
W1(-INF - i20) = inf+i(3pi)

W2(-INF + i20) = inf+i(5pi)
W2(-INF - i20) = inf+i(pi)

W3(-INF + i20) = inf+i(7pi)
W3(-INF - i20) = inf+i(5pi)

Wk(-INF, +ib, b>0) = inf+i(2k+1)(pi)
Wk(-INF, +ib, b<0) = inf+i(2k+1-2)(pi)

Wk(-INF, +ib, b>0) = inf+i(2k+1)(pi)
Wk(-INF, +ib, b<0) = inf+i(2k-1)(pi)

Conclusion
Wk(-INF, +ib, b≠0) = inf+i(2k+sign(b))(pi)
& we may check Wk(-INF, +ib, b=0) = inf+i(2k+1)(pi)

Summary
Wk(-INF, +ib) =inf+i(pi) *(2k+1, if b>=0; 2k-1, if b<0)
Find all posts by this user
Quote this message in a reply
01-17-2024, 02:39 PM (This post was last modified: 01-18-2024 12:11 AM by Gil.)
Post: #17
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
Now Wk(inf +ib)

W-3(INF +i20) = inf-i(6pi)
W-3(INF - i20) = inf-i(6pi)

W-3(-INF - i20) = inf-i(5pi)
W-3(-INF + i20) = inf-i(7pi)
W-3(-INF - i0) = inf-i(5pi)

W-2(INF +i20) = inf-i(4pi)
W-2(INF - i20) = inf-i(4pi)

W-1(INF +i20) = inf-i(2pi)
W-1(INF - i20) = inf-i(2pi)

W0(INF +i20) = inf-i(0pi)
W0(INF - i20) = inf-i(0pi)

W1(INF +i20) = inf+i(2pi)
W1(INF - i20) = inf+i(2pi)

W2(INF +i20) = inf+i(4pi)
W2(INF - i20) = inf+i(4pi)

W2(INF +i0) = inf+i(4pi)

Conclusion & summary for Wk(inf+ib)
Wk(INF +ib) = inf+2ik


z=a+ib, a=±infinity, b≠±infinity
Wk(±infinity+ib) =+inf +
i × (2k, if a>0; (else 2k+1, if b>=0; 2k-1, else))
Find all posts by this user
Quote this message in a reply
01-17-2024, 02:44 PM
Post: #18
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
That seems to make sense and should be acceptable for my HP50G result.
Find all posts by this user
Quote this message in a reply
01-17-2024, 03:07 PM (This post was last modified: 01-17-2024 03:40 PM by Gil.)
Post: #19
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
From previous post:

A) z=a+ib, a=±infinity, b≠±infinity
Wk(±infinity+ib) =+inf +
i × (2k, if a>0; (else 2k+1, if b>=0; 2k-1, else))

And to complete

Cases z=a≠±inf + i*INF, i*(-INF)

W-3(20, i*INF) = inf - i(5.5pi)
W-3(20, -i*INF) = inf - i(6.5pi)

W-2(20, i*INF) = inf - i(3.5pi)
W-2(20, -i*INF) = inf - i(4.5pi)

W-1(20, i*INF) = inf - i(1.5pi)
W-1(20, -i*INF) = inf - i(2.5pi)

W0(20, i*INF) = inf +i(0.5pi)
W0(20, -i*INF) = inf - i(0.5pi)

W1(20, i*INF) = inf +i(2.5pi)
W1(20, -i*INF) = inf+i(1.5pi)

B) Wk(a+ib,a≠±infinity, b=±in) =
inf+i×(2k+0.5, if b>0 ; 2k-0.5, else)



Cases z=a+ib, a=±inf, b=±inf

W-3(inf, i×inf) = inf - i(6pi)
W-3(inf, -i×inf) =inf - i(6pi)

W-3(-inf, i×inf) = inf - i(5pi)
W-3(-inf, -i×inf) =inf - i(7pi)

C) Conclusion
Wk(a=+inf, b=±inf) = inf + i(2k)
Wk(a=-inf) = inf +i(2k+1, if b=inf; 2k-1, if b=-inf)



Summary of A & C
Wk(a=+inf, b=free) = inf + i(2k)
Wk(a=-inf) = inf +i(2k+1, if b>≠0; 2k-1, else


And case B repeated

B) Wk(a+ib,a≠±infinity, b=±in) =
inf+i×(2k+0.5, if b>0 ; 2k-0.5, else
)
Find all posts by this user
Quote this message in a reply
01-17-2024, 06:34 PM (This post was last modified: 01-19-2024 12:10 AM by Albert Chan.)
Post: #20
RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ?
I have extended proof for W0(-∞) = ∞ + pi*I, for generalized case

(01-17-2024 02:06 AM)Albert Chan Wrote:  ...
--> W0(∞*cis(θ)) = ln(∞*cis(θ)) = ∞ + θ*I

Again, from definition of k-th branch:

--> Wk(∞*cis(θ)) = ln(∞*cis(θ)) + 2*k*pi*I

(01-17-2024 03:07 PM)Gil Wrote:  Cases z=a+ib, a=±inf, b=±inf
...

Unless z is in polar form, we don't know θ. (∞/∞ is indeterminate form)
mpmath, with slope=nan, θ = atan2(b,a) = nan

p2> log(mpc(inf,inf))
(+inf + nanj)

Comment: Technically we do know θ. Above example, 0 ≤ θ ≤ pi/2.
IEEE 754-2008 standard pick the mid-point for θ, instead of nan.

lua> I.log(I.new(inf,inf))
(inf+0.7853981633974483*I)

p3> from cmath import *
p3> log(complex(inf,inf))
(inf+0.7853981633974483j)
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 2 Guest(s)