I'm trying to solve the nonlinear equation $a x = [\ln(x) – b]^c$ for x, where a, b, and c are constants, for a project. I've tried numerical techniques like in Excel Solver, but the solutions seem to be at local points where the solvers get stuck. Those "solutions" aren't sufficiently accurate for my purpose. I'm thinking that there may be a closed-form solution, perhaps using the Lambert W function after converting the equation to the proper form if possible. I'm not a mathematician, so any help finding the global root(s) is much appreciated.
Solving $a x = [\ln(x) – b]^c$
closed-formlambert-wspecial functionstranscendental equations
Related Solutions
Hint
The problem is better conditioned if, instead, you look for the roots of $$h(x)=\log(x)\cos(x)-\sin(x)=0$$ and the convergence of Newton method is much faster.
For example, using $x_0=4$, the iterates are : $4.09701$, $4.09546$ which is the solution for six significant digits. Using $x_0=7$, the iterates are : $7.42088$, $7.39041$, $7.39037$.
Using this transform, you will find easily the $k^{th}$ root starting at $x_0=(2k+1)\frac \pi 2$. The first iterate will just be $$x_1=\pi \left(k+\frac{1}{2}\right)-\frac{1}{\log \left(\pi \left(k+\frac{1}{2}\right)\right)}$$
Edit
What is interesting is to look at the value of the solution $x_k$ as a function of $k$. A totally empirical model leads to the following approximation $$x_k=(2k+1)\frac \pi 2-\Big(0.0962696 +\frac{0.489665}{k^{0.409352}}\Big)$$ For example, the estimate of the $10^{th}$ root is $32.6997$ while the solution is $32.7075$; the estimate of the $50^{th}$ root is $158.455$ while the solution is $158.456$.
Just for comparison wtih the results from Wolfram Alpha, the five first roots are estimated as $4.12645,7.38901,10.5870,13.7633,16.9291$.
Edit
There is another way to generate nice approximate values of the $k^{th}$ solution. The idea is to build for function $h(x)$ its simplest Pade approximant around $\theta_k=(2k+1)\frac \pi 2$ and to compute the value of $x$ which cancels the numerator. This leads to the simple approximation $$x_k\approx\theta_k \left(1-\frac{2 \log (\theta_k)}{\theta_k \left(2 \log ^2(\theta_ k)+1\right)-2}\right)$$ Just for comparison wtih the results from Wolfram Alpha, the five first roots are estimated as $4.13630,7.40792,10.6062,13.7814,16.9459$. The $10^{th}$ root is estimated as $32.7113$ and the $50^{th}$ root is estimated as $158.457$.
We could still improve using a Pade[1,2] approximant which would lead to $$x_k\approx \theta_k\Big(1 -\frac{3 \left(\theta_k +2 \theta_k \log ^2(\theta_k )-2\right)}{\theta_k \log (\theta_k ) \left(5 \theta_k +6 \theta_k \log ^2(\theta_k )-12\right)-3}\Big)$$ Just for comparison wtih the results from Wolfram Alpha, the five first roots are estimated as $4.09189,7.38912,10.5942,13.7725,16.9387$. The $10^{th}$ root is estimated as $32.7074$ and the $50^{th}$ root is estimated as $158.455$.
Best Answer
Notice that we want to get the equation to be of the form $y(x)e^{y(x)}$ so we can use the Lambert-$W$ function that inverts this: $W\left(y(x)e^{y(x)}\right)=y(x)$: $$ax=\left(\ln x-b\right)^c\\ a^{1/c}x^{1/c}=\ln x-b\\ e^{a^{1/c}x^{1/c}}=xe^{-b}\\ e^{(-1/c) a^{1/c}x^{1/c}}=x^{-1/c}e^{b/c}\\ x^{1/c}e^{(-1/c) a^{1/c}x^{1/c}}=e^{b/c}\\ -1/c\cdot a^{1/c}x^{1/c}e^{(-1/c) a^{1/c}x^{1/c}}=-1/c\cdot a^{1/c}e^{b/c}$$ Now, we can use $W$: $$-1/c\cdot a^{1/c}x^{1/c}=W\left(-1/c\cdot a^{1/c}e^{b/c}\right)\\ x=\frac{(-c)^c}{a}W^c\left(-1/c\cdot a^{1/c}e^{b/c}\right) $$ You can use WolframAlpha to compute $W$ but write "product log of" instead of "Lambert-$W$ of."