Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How to solve log(x)-x+2=0 for x?

  1. Oct 6, 2011 #1

    Could anyone give me some ideas on how to solve the following question:

    log (x) - x + 2 = 0

    or generally

    log (x) -x + c = 0 where c is a constant.

    I know how to approximate this by graphing but is there any general method(s) to obtain an exact solution for equations of this type?

  2. jcsd
  3. Oct 6, 2011 #2
    There are no elementary solutions for this problem. The easiest thing to do is to graph it. To get a "closed" form solution will require the Product Log function:


    Also note that there are two solutions to your equation.
  4. Oct 6, 2011 #3
  5. Oct 6, 2011 #4
    Yes, there are two solutions if c > 1.
    Thanks, I will look at the product log function stuff.
  6. Oct 6, 2011 #5
    No worries.
  7. Oct 6, 2011 #6

    [tex]x e^{2-x}=1[/tex]


    Now take the W function of both sides:


    Now, the W-function is infinitely valued and so there are an infinite number of solutions to this equation.
  8. Oct 6, 2011 #7

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    While there an infinite number of solutions in the complex numbers, there are only two solutions in the reals.
  9. Oct 6, 2011 #8


    User Avatar
    Science Advisor

    Hi rukawukaede. The W(x) function has infinitely many complex solutions, but only zero, one or two real solutions (x,W(x) real).

    - For -1/e < x < 0 it has two real solutions (your case).

    - For x < -1/e it has no real solutions.

    - otherwise it has a unique real solution.
  10. Oct 6, 2011 #9

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    Without use of the Lambert W function (you will be hard put to find implementations outside of Mathematica, Maple, or Matlab) there is a very simple technique you can use to find the real solutions to

    [tex]x - \log x = c,\,\,c>=1[/tex]

    Fixed point iteration can be used to find both solutions. Note that the above is equivalent to [itex]x=\log x + c[/itex]. Writing this as a fixed point iteration scheme,

    [tex]x_{n+1} = \log x_n + c[/tex]

    Simply start with some initial guess [itex]x_0[/itex] and iteratively generate [itex]x_1, x_2,[/itex] etc. using the above. If the sequence [itex]{x_0, x_1, x_2, \cdots}[/itex] does converge, it will converge at one of the solution points. An initial guess of 1 will always converge. It will take a while if c is fairly close to 1. Fixed point iteration is very simple but it can be very slow to converge.

    In fact, this will only find the larger of the two solutions. So how to find the other solution? Since exp(x) is a bijection, we can go from [itex]x-\log x = c[/itex] to [itex]\exp(x)/x = \exp(c)[/itex], or [itex]x = \exp(x-c)[/itex]. This suggests another fixed point iteration scheme,

    [tex]x_{n+1} = \exp(x_n-c)[/tex]

    If this sequence converges it will converge to the smaller of the two solutions, and once again, an initial value of 1 will always result in a convergent sequence. Once again the convergence is rather slow when c is just slightly larger than 1.
  11. Oct 7, 2011 #10
    Oh man, you guys are missin' the beauty of this problem by using "real" blinders and he didn't say anything about real solutions neither. It's like just the tip of the iceberg; whole nother world down below the surface which makes crystal-clear many problems above. I say not only solve it, but draw it, then pick out the (complex) solutions like ornaments on an (upside-down) christmas tree. That to me is one of the real beauties of mathematics. Yeah, that's the assignment then, figure out how this problem is like a christmas tree turned upside-down.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook