MATLAB: Can I analytically solve a logarithmic equation using the symbolic toolbox

solvesymbolic

I have an equation : where A is a constant. I have tried to solve this equation for 'u' with the symbolic toolbox. I am getting the following error:
Warning: Unable to find explicit solution. For options, see help.
In solve (line 317) . Any suggestions how the equation can be solved?
syms u A
eqn=u/(log(u)+1)-A==0;
solve(eqn,u)

Best Answer

Sigh. Sorry. I typed too fast there, and I answered incorrectly. Not sure why solve does not get this.
Multiply by log(u) + 1. Valid as long as u is not 1/e.
u = A*(log(u) + 1)
Transform this using x = log(u) + 1. Then u = exp(x - 1) = exp(x)/exp(1). Our problem is now:
exp(x)/exp(1) = A*x
or
exp(x) = exp(1)*A*x
Solve seems to see how to do that.
syms x A
xsol = solve(exp(x) == exp(1)*A*x,x)
xsol =
-lambertw(0, -1125899906842624/(3060513257434037*A))
usol = exp(xsol - 1)
usol =
exp(- lambertw(0, -1125899906842624/(3060513257434037*A)) - 1)
Verify this satisfies the original problem.
vpa(simplify(subs(u/(log(u)+1)-A,u,usol)))
ans =
0.00000000000000011018891328384950189261640307115*A
It looks like solve used a floating point approximation for exp(1) in there, so we still got zero, plus some floating point trash.