1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Exponential equation-Lambert function?

  1. Mar 2, 2007 #1

    I am trying to solve for x the equation


    where a,b and c are constants.

    Could anyone tell me if this equation can be solved using the Lambert function?
  2. jcsd
  3. Mar 2, 2007 #2


    User Avatar
    Science Advisor

    Can the solution to that equation be expressed in terms of the Labert W function?

  4. Mar 2, 2007 #3


    User Avatar
    Science Advisor

    Hmmm. At first glance I thought yes, but now I'm not so sure.

    Certianly anything that can be expressed (with suitable change of variable) as a linear combination of log(x), x and 1 or as a linear combination of exp(x), x and 1, can be solved pretty easily in terms of W. I'm not 100% sure about linear combinations of x*exp(x), exp(x), x and 1 however.
  5. Jul 9, 2007 #4
    I don't know if the solution is accurate or not but here is the method.

    I have used a couple of approximations and assumptions.

    Assuming a > 0 and for x << a

    we can rewrite the equation as

    exp(a-x) = (x-c)/(b-x) ;

    adding one two both sides :

    1 + exp(a-x) = (b-c)/(b-x);

    and if a>> x then we can neglect 1 w.rt. exp(a-x) and so,

    (b-x)exp(a-x) = b - c;

    which yields x = b - W((b-c)exp(b-a));

    Can someone check this though? Also, does neone know if we can solve

    y = a*exp(b(x - y)) + c*exp(d(x-y));

    in terms of W?
  6. Jul 12, 2007 #5

    I have a simpler but related question.

    How do we solve the following equation:


  7. Jul 12, 2007 #6
    exp(ax) = bx + c;

    I think this might be the solution:

    let bx + c = y/a;

    a*x = (y - c*a)/b;

    exp(y/b)*exp(-c*a/b) = y/a;


    -(a/b)*exp(-c*a/b) = (-y/b)*exp(-y/b);

    or -y/b = W(-(a/b)*exp(-c*a/b));

    or y = -b*W(-(a/b)*exp(-c*a/b));

    where y = a*(bx+c);

    You can check for mistakes
  8. Jul 12, 2007 #7
    Thanks a lot. Romain
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook