Question: solve and fsolve are unable to return a single-variable solution?


I'm trying to solve an expression with only one unknown variable, but for some reason solve and fsolve are unable to return a solution.

The expression I'm trying to solve is:

p := k*T*m__hhw*(ln(1+exp(E__fv-E__hh0)/(k*T))+ln(1+exp(E__fv-E__hh1)/(k*T)))/(Pi*h__bar^2*L__z) = 0.3e25

where all variables are predefined and am trying to solve for E__fv. However, when I use solve, I get the error: "Warning, solutions may have been lost", and when I try to use fsolve, it simply returns the expression as an answer and I am unable to find the numerical value for E__fv. Any helps or tips are appreciated.

If it helps, the defined variable values are:

k = 1.3806E-23;

T = 300;

h__bar = 1.05456E-34

L__z = 6E-9

m__hhw = 3.862216E-31;

E__hh0 = 3.012136E-21

E__hh1 = 1.185628E-20


A similar expression in the previous line was able to solve correctly and return a numerical value, so I'm not sure why solve/fsolve can't solve this one.

Similar solved expression:

solve(0.3e25 = m__cw*k*T*ln(1+exp(E__fc-E__c0)/(k*T))/(Pi*h__bar^2*L__z), E__fc);

Please Wait...