I have an expression for the energy of a given physical system and I need to plot its minimum with respect to one of the parameters while the others are allowed to vary.
The expression is the following:
energy[c_,σ_,k_,Λ_,p2_,Δ_,Γ_]:=c/(2 σ^2) - (k*Λ)^2/ 2*Δ/(Δ^2 + Γ^2/4)*p2*c - π (k*Λ)^2*Δ*σ^2*p2*PolyLog[2, -(c/(2 *(Δ^2 + Γ^2/4)*π*σ^2))];
I want to plot this expression for the value of $\sigma$ (I start from a small value in FindMinimum, for instance, $10^{-6}$ in order to avoid the zero) which makes it minimum while $p$ and $\Delta$ are allowed to vary. The remaining variables have definite values. In my attempts, I have tried the following:
Manipulate[Plot[FindMinimum[energy[7*10^6, σ, 8.055*10^6, 0.0000659176, p, Δ, 1], {σ, 10^-6}][[2]], {p, 0, 10}], {Δ, 10^-6, 1000}]
When I run this last line, it gives me the manipulate plot. Nevertheless, it does return the following mistakes:
FindMinimum: The line search decreased the step size to within the tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the function. You may need more than MachinePrecision digits of working precision to meet these tolerances
and
General: "Further output of FindMinimum::lstol will be suppressed during this calculation."
I am not sure this is the correct way to achieve what I need, so I wonder if anyone may shed some light on this problem.
Thanks in advance.
Manipulate[ Plot[\[Sigma] /. FindMinimum[ Rationalize[ energy[7*10^6, \[Sigma], 8.055*10^6, 0.0000659176, p, \[CapitalDelta], 1], 0]/10^10, {\[Sigma], .01, 10}, MaxIterations -> 500, PrecisionGoal -> 5, WorkingPrecision -> 20][[2]], {p, 0, 10}], {\[CapitalDelta], 10^-6, 1000, Appearance -> "Labeled"}]
$\endgroup$Precision[0.0000659176]
which is$MachinePrecision
about 16, depending an processor. Since i noticed that FindMinimum need higher Precision, i Rationalize the input to infinite precision. OtherwiseWorkingPrecision -> 20
wouldn't work. Second, working with version 8.0, id didn't get any error messages. $\endgroup$