HP Forums
Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? (/thread-21172.html)

Pages: 1 2


Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 12:06 PM

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


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 02:01 PM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 03:40 PM

Wolfram Alpha

LambertW (-infinity) = (infinity)

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

Can Wolfram Alpha be wrong?


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Nigel (UK) - 01-16-2024 05:16 PM

(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)


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 06:11 PM

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)?


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Albert Chan - 01-16-2024 07:36 PM

(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!


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 09:34 PM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-16-2024 09:53 PM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Albert Chan - 01-16-2024 11:45 PM

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)


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 12:36 AM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 12:57 AM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Albert Chan - 01-17-2024 02:06 AM

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


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 11:34 AM

"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)


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 12:04 PM

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.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 01:51 PM

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)


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 02:01 PM

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)


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 02:39 PM

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))



RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 02:44 PM

That seems to make sense and should be acceptable for my HP50G result.


RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Gil - 01-17-2024 03:07 PM

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
)



RE: Lambert function and Wolfram or "±infinity+i×K=±infinity" ? - Albert Chan - 01-17-2024 06:34 PM

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)