Try to use a numerical method instead. You are not using rational numbers anyway, so even if your symbolic solution would work, the answers would not make sense.
Then do this:
1) Define your function as
f = @(x)(250-25)./((0.0106+1.89799*10^-3)+(log(x./15)/2*3.14*45)+(1/10*2*3.14.*x))-157.19
where -157.19 is the right hand side (this is normally done when solving an equation, because then it is possible to use a method for finding the root, eg. newton-raphsons method).
2) Here, there is a complication log(negative number) becomes complex. This means that fzero
will not work here (it does not really matter that this is not in your domain). Luckily there is another numerical equation solver in matlab that can handle this fsolve
.
To solve the equation, try
myRoot = fsolve(f,15) % Number is tested to work good in this case and not
% a general best guess for numerical solutions
If you try to go from the other way you will have a rounding error for complex numbers. Try,
myRoot = fsolve(f,4)
this means that to get the real solution you need to remove the imaginary part of the answer (this is safe here since you know that the imaginary part comes from a rounding error).
myRoot = real(fsolve(f,4))