0
$\begingroup$

This question derives from (and refers to) this one asked by me, and I hope that creating a new question rather than editing that one is appropriate. There I ask for a way to find the subset of the solution of some equation that is also a global minimum of some variable. My current notebook to that end is the following (which I paste entirely to allow reproduction)

Alfa = 1/137;
sw = Sqrt[0.23152];
m\[Mu] = 105.658*10^-3 (*GeV*);
m\[Tau] = 1.77682 (*GeV*);



\[CapitalGamma]\[Mu] = 1/(3.34*10^18);
\[CapitalGamma]\[Tau] = 1/(4.41*10^11);



gs = 1;
gU = 1/Sqrt[2] Sqrt[4  Pi Alfa]/sw;

BRfunction[MU_, Ms_, VU1x1_, VU1x2_, VU2x1_, Oss1x1_, Oss1x2_, 
   Oss2x1_] := (1/\[CapitalGamma]\[Mu])*(
   m\[Mu]^5 (1/
       5 gs^4 MU^4 Oss1x1^2*(Oss1x2^2 + Oss2x1^2) (15 Ms^2 - 
         2 m\[Mu]^2) + 
      4 gs^2 gU^2 Ms^4 MU^2 VU1x1*
       Oss1x1*(VU1x2*Oss1x2 + VU2x1*Oss2x1) + 
      2 gU^4 Ms^6 VU1x1^2*(VU1x2^2 + VU2x1^2)))/(
   6144 \[Pi]^3 Ms^6 MU^4);
BRfunctionTau[MU_, Ms_, VU1x1_, VU1x3_, VU3x1_, Oss1x1_, Oss1x3_, 
   Oss3x1_] := (1/\[CapitalGamma]\[Tau])*(
   m\[Tau]^5 (1/
       5 gs^4 MU^4 Oss1x1^2*(Oss1x3^2 + Oss3x1^2) (15 Ms^2 - 
         2 m\[Tau]^2) + 
      4 gs^2 gU^2 Ms^4 MU^2 VU1x1*
       Oss1x1*(VU1x3*Oss1x3 + VU3x1*Oss3x1) + 
      2 gU^4 Ms^6 VU1x1^2*(VU1x3^2 + VU3x1^2)))/(
   6144 \[Pi]^3 Ms^6 MU^4);

minelOss = 10^-4;
minelVU = 10^-3;

AssumptionsAbsoluteBounds = 
  And[VU1x1 < 1, VU1x1 > -1, VU1x2 < 1, VU1x2 > -1, VU2x1 < 1, 
   VU2x1 > -1, Oss1x1 < 1, Oss1x1 > -1, Oss1x2 < 1, Oss1x2 > -1, 
   Oss2x1 < 1, Oss2x1 > -1, VU1x3 < 1, VU1x3 > -1, VU3x1 < 1, 
   VU3x1 > -1, Oss1x3 < 1, Oss1x3 > -1, Oss3x1 < 1, Oss3x1 > -1, 
   MU > 100, Ms > 100];

AssumptionsLowestModulus = 
  And[Abs[Oss1x1] > minelOss, Abs[Oss1x2] > minelOss, 
   Abs[Oss2x1] > minelOss, Abs[Oss1x3] > minelOss, 
   Abs[Oss3x1] > minelOss, Abs[VU1x1] > minelVU, Abs[VU1x2] > minelVU,
    Abs[VU2x1] > minelVU];

Assumption\[Tau]ExpBound = 
  And[BRfunction[MU, Ms, VU1x1, VU1x3, VU3x1, Oss1x1, Oss1x3, 
     Oss3x1] < 10^-8];

Assumption\[Mu]ExpBound = 
  And[BRfunction[MU, Ms, VU1x1, VU1x2, VU2x1, Oss1x1, Oss1x2, 
     Oss2x1] == 10^(-12)];

AssumptionsVUUnit = 
  And[Abs[VU1x2] == Sqrt[1 - VU1x1^2 - VU1x3^2], 
   Abs[VU2x1] == Sqrt[1 - VU1x1^2 - VU3x1^2]];

Sol = NMinimize[{MU, (Assumption\[Mu]ExpBound // 
      Rationalize[#, 0] &) && (Assumption\[Tau]ExpBound // 
      Rationalize[#, 0] &) && 
    AssumptionsAbsoluteBounds && (AssumptionsLowestModulus // 
      Rationalize[#, 0] &) && (AssumptionsVUUnit // 
      Rationalize[#, 0] &)}, {MU, Ms, VU1x1, VU1x2, VU2x1, VU1x3, 
   VU3x1, Oss1x1, Oss1x2, Oss2x1, Oss1x3, Oss3x1}, 
  Method -> Automatic, MaxIterations -> 10000, WorkingPrecision -> 80]

The problem is that this doesn't work! That is, the solution found by NMinimize disobbeys the equation

BRfunction[MU, Ms, VU1x1, VU1x2, VU2x1, Oss1x1, Oss1x2, Oss2x1] == 10^(-12)

by a lot -- if calculated on the solution BRfunction gives something to the order of 10^(-7) at best.

It may be theorized that this is because the set of constraints does not have a solution -- but simply increasing MU and Ms (always found by NMinimize to be to the order of 100) to a few thousands shows that it does.

How can I fix it? Could it be because of number precision in the definitions?

$\endgroup$
8
  • $\begingroup$ Have you tried different methods in NMinimize? Maybe the automatically chosen method doesn’t work as well in your case. See reference.wolfram.com/language/tutorial/… $\endgroup$
    – MarcoB
    Commented Feb 2, 2021 at 13:47
  • $\begingroup$ @MarcoB None of the methods seems to work, unfortunately $\endgroup$
    – GaloisFan
    Commented Feb 2, 2021 at 17:28
  • $\begingroup$ Although RandomSearch seems to do better than the others. In any case, I do believe that some smart changes to the programing are necessary $\endgroup$
    – GaloisFan
    Commented Feb 2, 2021 at 19:40
  • $\begingroup$ I'd try changing the inputs to be either exact or high precision, and changing the WorkingPrecision and perhaps also the two XXXGoal settings. Also you might take the result from NMinimize and see if it can be refined using as a starting value for `FindMinimum. $\endgroup$ Commented Feb 6, 2021 at 16:47
  • $\begingroup$ @DanielLichtblau Thank you! Doesn't the Rationalize[#,0] & achieve this goal of making the constraints exact? If not, how would be the simplest way for me to do this? $\endgroup$
    – GaloisFan
    Commented Feb 7, 2021 at 19:44

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.