2
$\begingroup$

Suppose the function

f[Ss_, s2_, t1_, m_, mp_, vf_, af_] = -(1/(96 π^3 s2^3 (mp^2-Ss)^4))(m^2-s2)^2 (af^2 (m^2 (4 mp^6+mp^4 (-3 s2-8 Ss+2 t1)+mp^2 (-3 s2^2+s2 t1+4 Ss (Ss-t1))+Ss (s2^2-s2 (Ss+t1)+2 Ss t1))+s2 (2 mp^6+mp^4 (6 s2-4 Ss+t1)+2 mp^2 (-3 s2^2+s2 (6 Ss+t1)+Ss (Ss-t1))+Ss (2 s2^2-2 s2 (Ss+t1)+Ss t1)))+vf^2 (m^2 (4 mp^6+mp^4 (-3 s2-8 Ss+2 t1)+mp^2 (-3 s2^2+s2 t1+4 Ss (Ss-t1))+Ss (s2^2-s2 (Ss+t1)+2 Ss t1))+s2 (2 mp^6+mp^4 (-6 s2-4 Ss+t1)+2 mp^2 (-3 s2^2+s2 t1+Ss (Ss-t1))+Ss (2 s2^2-2 s2 (Ss+t1)+Ss t1))))

is given with the additional definitions

lambda[a_, b_, c_] = a^2 + b^2 + c^2 - 2*(a*b + a*c + b*c);
t1lowerneutral = 2*mp^2 - 1/(2*Ss)*((Ss + mp^2)*(Ss - s2 + mp^2) + (Ss - mp^2)*Sqrt[lambda[Ss, s2, mp^2]]);
t1upperneutral = 2*mp^2 - 1/(2*Ss)*((Ss + mp^2)*(Ss - s2 + mp^2) - (Ss - mp^2)*Sqrt[lambda[Ss, s2, mp^2]]);

and assumptions

assumptions = 
  t1 > t1lowerneutral && t1 < t1upperneutral && s2 > m^2 && 
  s2 < (Sqrt[Ss] - mp)^2 && Ss > (mp + m)^2 + 0.1 && mp > 0 && 
  mp < 0.5 && m > 0 

I want to minimize it numerically for the values m = 0.5, mp = 0.5, vf = af = 1, so I write

NMiminize[
  {f[Ss, s2, t1, 0.5, 0.5, 1, 1], assumptions /. {mp -> 0.5, m -> 0.5}}, 
  {Ss, s2, t1}]

But it returns me the result

NMinimize::nsol: There are no points that satisfy the constraints
{False}.
{∞, {Ss -> Indeterminate, s2 -> Indeterminate, t1 -> Indeterminate}}

From the expression for the function I see that it has only one singular point Ss -> mp^2. Moreover, it is the function bounded from above (and from below), and therefore I don't understand why it returns Indeterminate.

Could you please help me? Maybe I don't understand the output?

$\endgroup$
  • $\begingroup$ If you evaluate assumptions /. {mp -> 0.5, m -> 0.5} you get False, so something in your assumptions is self contradictory -- irrespective of the minimization problem. I think it's the mp->0.5, which contradicts mp<0.5. $\endgroup$ – bill s Aug 13 '17 at 15:50
2
$\begingroup$

The "edge case" of your mp<.5 and mp->.5 is one issue. There is some deeper buried issue with your assumptions that I haven't been able to untangle. I believe I'm seeing that even with your assumptions that in NMinimize one or more of your square roots can go complex. But until then just apply a little brute force which your system seems to respond fairly sensibly to.

m = 0.5;
mp = 0.5; 
f[Ss_,s2_,t1_,m_,mp_,vf_,af_]:= -(1/(96 \[Pi]^3 s2^3(mp^2-Ss)^4))*
  (m^2-s2)^2(af^2(m^2(4 mp^6+mp^4(-3 s2-8 Ss+2 t1)+mp^2(-3 s2^2+
  s2 t1+4 Ss(Ss-t1))+Ss(s2^2-s2(Ss+t1)+2 Ss t1))+s2(2 mp^6+mp^4(6 s2-
  4 Ss+t1)+2 mp^2(-3 s2^2+s2(6 Ss+t1)+Ss(Ss-t1))+Ss(2 s2^2-2 s2(Ss+
  t1)+Ss t1)))+vf^2(m^2(4 mp^6+mp^4(-3 s2-8 Ss+2 t1)+mp^2(-3 s2^2+
  s2 t1+4 Ss(Ss-t1))+Ss(s2^2-s2(Ss+t1)+2 Ss t1))+s2(2 mp^6+mp^4(-
  6 s2-4 Ss+t1)+2 mp^2(-3 s2^2+s2 t1+Ss(Ss-t1))+Ss(2 s2^2-2 s2(Ss+
  t1) + Ss t1))));
lambda[a_, b_, c_] := a^2 + b^2 + c^2 - 2*(a*b + a*c + b*c);
t1lowerneutral = 2*mp^2-1/(2*Ss)*((Ss+mp^2)*(Ss-s2+mp^2)+(Ss-mp^2)*
  Sqrt[lambda[Ss, s2, mp^2]]);
t1upperneutral = 2*mp^2-1/(2*Ss)*((Ss+mp^2)*(Ss-s2+mp^2)-(Ss-mp^2)*
  Sqrt[lambda[Ss, s2, mp^2]]);
besterr = Infinity;
Do[
  Ss = RandomReal[{(mp + m)^2 + 0.1, 40}];
  s2 = RandomReal[{m^2, (Sqrt[Ss] - mp)^2}];
  t1 = RandomReal[{t1lowerneutral, t1upperneutral}];
  If[besterr > f[Ss, s2, t1, m, mp, 1, 1], 
     besterr = f[Ss, s2, t1, m, mp, 1, 1]; Print[{besterr, Ss, s2, t1}]]
 , {10^5}]

and in a handful of seconds that will show where your function becomes very slightly negative.

Adjust the upper bound on Ss and the number of iterations and see how it behaves.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.