The problem is that the derivative at 1
is small enough to be considered zero (according to the AccuracyGoal
):
f'[1]
(* -2.26383*10^-9 *)
Pick an AccuracyGoal
several orders of magnitude above 9
:
FindMinimum[f[x], x, AccuracyGoal -> 16]
(* {0.0024294, {x -> 160.}} *)
There is a FindMinimum::lstol
warning because at x -> 160.
, the interpolating function is not differentiable.
If the singularity or the warning troubles you, consider a method that does not use derivatives:
FindMinimum[f[x], x, Method -> "PrincipalAxis", AccuracyGoal -> 16]
(* {0.0024294, {x -> 160.035}} *)
Alternatively, one might use the "Spline"
method of interpolation:
Clear[f];
f = Interpolation[d, Method -> "Spline"];
FindMinimum[f[x], x, AccuracyGoal -> 16]
(* {0.00242939, {x -> 160.498}} *)
Of course, with the error inherent in interpolation, any of the answers is probably sufficiently accurate (or if not sufficient, then as accurate as is possible).