# How to express the argument through the function?

I would like to express argument $$d$$ through $$f$$ and $$B$$ and to get $$d(f,B)$$ $$f(d,B)=B\left(\left(\frac{1}{4}-\frac{d}{B}\right)\left( 1-\left(1- e^{-30d/B} \right)^8\right)+\frac{2/B}{3+1/B^2}\left(1- e^{-30d/B} \right)^8\right)$$

How to do it in Mathematica (analytically or numerically)?

ClearAll["Global*"]
f[d_, B_] := B*((1/4 - d/B)*(1 - (1 - Exp[(-30*d)/B])^8)+
(2/B)/(3 + 1/B^2) (1 - Exp[(-30*d)/B])^8);

• I'm a bit confused. Is d a function or a variable? Do you want to solve for d and then substitute that result? Did you instead mean f(f(d,B),B)?
– alex
Mar 28, 2023 at 16:15
• @alex, yes d is a variable, I would like to express d through f and B Mar 28, 2023 at 16:39
• Hi @Mam Mam, I'm terribly sorry, but I feel that I do not fully understand your question. I don't think you have added any further addition to what was on your post.
– alex
Mar 28, 2023 at 16:54
• apologies, I just saw that you edited your post since my last comment. Give me a second.
– alex
Mar 28, 2023 at 16:55
• But the authors of that paper did not claim they can do the inversion analytically. Most probably they did it numerically. Mar 28, 2023 at 17:25

No chance for mix of exponentials and powers:

Solve[a==f[d,B],d]


This one is working at least with implicit roots

f[d_, B_] :=
BB* (1 - (1 - Exp[(-30*d)/B])^8) +  (1 - Exp[(-30*d)/B])^8

{{d -> ConditionalExpression[
1/30 b (2 I \[Pi] ConditionalExpression[1, \[Placeholder]] +
Log[Root[-1 +
BB + (8 - 8 BB) #1 + (-28 + 28 BB) #1^2 + (56 -
56 BB) #1^3 + (-70 + 70 BB) #1^4 + (56 -
56 BB) #1^5 + (-28 + 28 BB) #1^6 + (8 -
8 BB) #1^7 + (-1 + a) #1^8 &, 1]]),
ConditionalExpression[1, \[Placeholder]] \[Element] Integers]


But it is possible to work numerically always with InverseFunction

ClearAll["Global*"]
f[d_, B_, BB_] :=
BB* (1 - (1 - Exp[(-30*d)/B])^8) +  (1 - Exp[(-30*d)/B])^8

Plot[Re@InverseFunction[f , 1 , 3][x, 3, 4], {x, 0, 1}]