In general one should not expect to obtain a general symbolic solution (a function x[a,b]
) to the given equation since there are two independent variables, see e.g. Solve symbolically a transcendental trigonometric equation and plot its solutions for certain aspects regarding transcendental equations.
To get an idea how the solution depends on parameters a
and b
one can play with Manipulate
, e.g.
Manipulate[
Plot[ x - (Log[f2[x]] - Log[f1[x]] + Log[b] -
Log[a])/((1 - a) + (1 - 1/f1[x]) - (1 - b) + (1 - 1/f2[x])),
{x, -1/2, 1}],
{a, 0.01, 1}, {b, 0.01, 1}]

With the above parameters (a == 0.612; b == 0.23
) one can see that there are no solutions satisfying 0< x <= 1
however slightly below 0
one could find a solution.
If one expects a symbolic solution this approach yields a solution under specified assumptions (0 < a <= 1 && 0 < b <= 1
and 0 < x <= 1
):
XS[a_, b_] /; 0 < a <= 1 && 0 < b <= 1 :=
x /. Solve[ x == (Log[f2[x]] - Log[f1[x]] + Log[b] - Log[a])/((1 - a)
+ (1 - 1/f1[x]) - (1 - b) + (1 - 1/f2[x])) && 0 <= x <= 1, x]
It yields a symbolic solution, although it takes a bit e.g.:
XS[1/2, 1/3]
{Root[{-504 Log[2] + 504 Log[3] + 504 Log[7 + 11 #1 + 2 #1^2] -
504 Log[12 - 15 #1 + 4 #1^2] + 810 #1 - 162 Log[2] #1 +
162 Log[3] #1 + 162 Log[7 + 11 #1 + 2 #1^2] #1 -
162 Log[12 - 15 #1 + 4 #1^2] #1 + 321 #1^2 + 678 Log[2] #1^2 -
678 Log[3] #1^2 - 678 Log[7 + 11 #1 + 2 #1^2] #1^2 +
678 Log[12 - 15 #1 + 4 #1^2] #1^2 - 1279 #1^3 - 84 Log[2] #1^3 +
84 Log[3] #1^3 + 84 Log[7 + 11 #1 + 2 #1^2] #1^3 -
84 Log[12 - 15 #1 + 4 #1^2] #1^3 + 154 #1^4 - 48 Log[2] #1^4 +
48 Log[3] #1^4 + 48 Log[7 + 11 #1 + 2 #1^2] #1^4 -
48 Log[12 - 15 #1 + 4 #1^2] #1^4 + 88 #1^5 &, 0.0302267261272062868225}]}
The time it takes strongly depends on parameters taken which is rather an unexpected feature. Nevertheless from such a representation we can't transform the solution to a simpler form, so the symbolic transcendental solution doesn't seem to be crucial goal unless we know the background of the problem and can reformulate it. However one can get immediately the numerical solution with FindRoot
, e.g.
XF[a_, b_] /; 0 < a <= 1 && 0 < b <= 1 :=
x /. FindRoot[ x == (Log[f2[x]] - Log[f1[x]] + Log[b] - Log[a])/((1 - a)
+ (1 - 1/f1[x]) - (1 - b) + (1 - 1/f2[x])),
{x, 0, -1/2, 1}]
XF[1/2, 1/3]
0.0302267
and we can use this function to plot how the solution depends on the parameter, e.g.
Plot[ XF[2/3, b], {b, 0.1, 1}]
