You have encountered a limitation of floating point arithmetic. For negative x, your fthl1(x) is approximately -(8*10^(5254*abs(x))) -- like -8.3182227483111861535543182558439e5252 for x = -1, -7.6429597984009947199500878089908e10507 for x = -2 . Approximately. But double precision arithmetic can only handle up to -1e306 approximately, so below about x = -.0586597 underflows to -infinity, and fsolve() gives up when it sees that.
You should use fsolve() with a range of values instead of a single starting point. The range of values you use should be the range in which you are certain that your function has a zero somewhere.
This is going to be somewhat difficult for your function, however, as the maximum value your function reaches is -29/115 so there is no zero for the function.
Best Answer