I want to solve an equation $$\log \left(\frac{b}{y}\right)=\left(\frac{x}{y}-a\right)^{\beta}.~~~~~~~~~(1)$$

Solve[Log[b/y] == (x/y - a)^\[Beta], y]

Here $b$, $x$, and $a$ are constants (In principle, we have $x/y\simeq a$). I want to find the solution $y=?$

If $a=0$, the solution is $$y^*=\left(-\frac{\beta x^{\beta}}{W\left(\beta\left(-b^{-\beta}\right) x^{\beta}\right)}\right)^{1/\beta},~~~~~~~~~(2)$$ where $W$ is the ProductLog function in MATHEMATICA.

I try to use $y=y^*+c*x^\gamma$ to find the correction term, but I failed. I guess that the correction term is not like $c*x^\gamma$.

How can I find the correction term? For my problem, $a$ is important and can be ignored.



In principle, this problem is still not solved. For my problem, $x$ has some relation with $a$, which is unknown until now. Thus, $a$ can not tend to $0$. Besides, I assume that $a\to 0$, the result is not very good.

  • $\begingroup$ The introduction about $W$ function. en.wikipedia.org/wiki/Lambert_W_function $\endgroup$
    – Blueka
    Sep 6, 2020 at 12:50
  • 1
    $\begingroup$ Do you have a good reason to suspect that a closed form solution even exists? $\endgroup$ Sep 6, 2020 at 13:12
  • $\begingroup$ I am not sure about this. But I believe that the solution may exist. For example, if $\beta=2$, I have found the solution. Now I just want to find a solution which is better than Eq.~2. $\endgroup$
    – Blueka
    Sep 6, 2020 at 13:16
  • $\begingroup$ @SjoerdSmit At least, the numerical solution exists. $\endgroup$
    – Blueka
    Sep 6, 2020 at 13:31
  • 1
    $\begingroup$ Be careful: you shouldn't use N as a variable name - it's a built-in. $\endgroup$
    – flinty
    Sep 6, 2020 at 13:53

1 Answer 1


You could use AsymptoticSolve. First, the zeroth order solution:

y0 = y /. First @ Solve[Log[b/y]==(x/y-a)^𝛽/.a->0, y]

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

(-((x^𝛽 𝛽)/ProductLog[-b^-𝛽 x^𝛽 𝛽]))^(1/𝛽)

Then using AsymptoticSolve:

AsymptoticSolve[Log[b/y] == (x/y-a)^𝛽, {y, y0}, a->0]

{{y -> ConditionalExpression[(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1) + ((-Log[b/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1)] + (x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽)* (-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))/ (-1 + 𝛽*(x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽) - (a𝛽(-1 - Log[b/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1)] + 𝛽Log[b/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1)] + (x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽) (x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽* (-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^(2/𝛽))/ (x*(-1 + 𝛽*(x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽)^2), -Log[b/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1)] + (x/(-((x^𝛽𝛽)/ProductLog[-((x^𝛽𝛽)/b^𝛽)]))^𝛽^(-1))^𝛽 == 0]}}

  • $\begingroup$ My MMA does not give the answer for your ''AsymptoticSolve[Log[b/y] == (x/y-a)^𝛽, {y, y0}, a->0]'' Can you give me the version of your MMA? Thanks! $\endgroup$
    – Blueka
    Sep 6, 2020 at 16:18
  • 4
    $\begingroup$ @Blueka You can use Entity["WolframLanguageSymbol", "AsymptoticSolve"]["VersionIntroduced"] to find out when a function enters the language. In this case you would find that AsymptoticSolve was introduced in M12. $\endgroup$
    – Carl Woll
    Sep 6, 2020 at 16:25
  • $\begingroup$ Are there other methods to find the solution? This solution works not very good. $\endgroup$
    – Blueka
    Sep 9, 2020 at 13:29
  • $\begingroup$ @Blueka Could you clarify the "not very good" aspects to the solution? $\endgroup$
    – Carl Woll
    Sep 9, 2020 at 21:28
  • $\begingroup$ The convergence is very slow. For example, when I choose the parameters, I plotted Eq.~1, I can find a solution $y_1\simeq 14.18$, while I use your formula, the numerical solution is $y_2=11.91$. The difference is a bit big for me. Here my $a=0.01$ $\endgroup$
    – Blueka
    Sep 10, 2020 at 7:00

Your Answer

By clicking β€œPost Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.