I'm trying to simplify an enormous analytic expression as much as possible. When I use Simplify
, I get a half-decent result in about 20 seconds. However when I use FullSimplify
the kernel simply crashes after a couple seconds, after which I need to reevaluate everything from scratch. I have tried manually setting the TimeConstraint
option to infinity, that does nothing.
ClearAll[N1
, D1, D2, D3, D4, D5, D6
, F1, F2];
(* T *)
N1[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -(1 + x)*k0^2 -
2*(x^2 - \[Xi]^2)*(Pz + m^2/(2*Pz))*k0 + (1 + x)*
kp^2 + (1 + m^2/(2*Pz^2))*\[Xi]*kp*\[CapitalDelta]p -
1/4*(1 - x)*\[CapitalDelta]p^2 + (x^2 - \[Xi]^2)*(1 - x)*
m^2 + (x - (1 + m^2/(2*Pz^2))*\[Xi])*Mu*
Md + (x + (1 + m^2/(2*Pz^2))*\[Xi])*Mu*Md + (1 - x)*Md^2;
(* (Subscript[k, +]-1/2\[CapitalDelta])^2+Subscript[M, d]^2 = \
-(Subscript[k, 0]-Subscript[k^(-), 0+])(Subscript[k, \
0]-Subscript[k^(-), 0-]) *)
D1[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -k0*(k0 + 2*(x*(Pz + m^2/(2*Pz)) + \[Xi]*Pz)) + (\[Xi]^2 -
x^2)*m^2 + (kp - \[CapitalDelta]p/2)^2 + Md^2;
(* (Subscript[k, +]+1/2\[CapitalDelta])^2+Subscript[M, d]^2 = \
-(Subscript[k, 0]-Subscript[k^(+), 0+])(Subscript[k, \
0]-Subscript[k^(+), 0-]) *)
D2[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -k0*(k0 + 2*(x*(Pz + m^2/(2*Pz)) - \[Xi]*Pz)) + (\[Xi]^2 -
x^2)*m^2 + (kp + \[CapitalDelta]p/2)^2 + Md^2;
(* (Subscript[k, -]^2+Subscript[M, u]^2) = -(Subscript[k, \
0]-Subscript[Overscript[k, _], 0+])(Subscript[k, \
0]-Subscript[Overscript[k, _], 0-]) *)
D3[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -(k0 - (1 - x)*(Pz + m^2/(2*Pz)))^2 +
kp^2 + (1 - x)^2*Pz^2 + Mu^2;
(* (Subscript[k, +]-1/2\[CapitalDelta])^2+\[CapitalLambda]^2 = \
-(Subscript[k, 0]-Subscript[k^((-)\[CapitalLambda]), \
0+])(Subscript[k, 0]-Subscript[k^((-)\[CapitalLambda]), 0-]) *)
D4[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -k0*(k0 + 2*(x*(Pz + m^2/(2*Pz)) + \[Xi]*Pz)) + (\[Xi]^2 -
x^2)*m^2 + (kp - \[CapitalDelta]p/2)^2 + L^2;
(* (Subscript[k, +]+1/2\[CapitalDelta])^2+\[CapitalLambda]^2 = \
-(Subscript[k, 0]-Subscript[k^((+)\[CapitalLambda]), \
0+])(Subscript[k, 0]-Subscript[k^((+)\[CapitalLambda]), 0-]) *)
D5[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := -k0*(k0 + 2*(x*(Pz + m^2/(2*Pz)) - \[Xi]*Pz)) + (\[Xi]^2 -
x^2)*m^2 + (kp + \[CapitalDelta]p/2)^2 + L^2;
(* (Subscript[k, -]^2+\[CapitalLambda]^2)^2 = (Subscript[k, \
0]-Subscript[Overscript[k, _]^\[CapitalLambda], 0+])^2(Subscript[k, \
0]-Subscript[Overscript[k, _]^\[CapitalLambda], 0-])^2 *)
D6[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_,
Mu_] := (-(k0 - (1 - x)*(Pz + m^2/(2*Pz)))^2 +
kp^2 + (1 - x)^2*Pz^2 + L^2)^2;
(* Full Integrand relevant for evaluating pole at Subscript[k^(-), \
0+] (SINGLE POLE) *)
F1[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_, Mu_] :=
N1[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md,
Mu]/(-(2*(x + \[Xi])*Pz)*
D2[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D3[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D4[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D5[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D6[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]);
(* Full Integrand relevant for evaluating pole at Subscript[k^((-)\
\[CapitalLambda]), 0+] (SINGLE POLE) *)
F2[k0_, x_, m_, L_, kp_, \[CapitalDelta]p_, \[Xi]_, Pz_, Md_, Mu_] :=
N1[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md,
Mu]/(-D1[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D2[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D3[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md,
Mu]*(2*(x + \[Xi])*Pz)*
D5[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]*
D6[k0, x, m, L, kp, \[CapitalDelta]p, \[Xi], Pz, Md, Mu]);
Here is the evaluation that's causing me issues. If I change FullSimplify
to Simplify
, I get a good answer. But ideally I would get an even more simplified expression.
TraditionalForm[FullSimplify[
Series[F1[Subscript[k, 0], x, m, L, kp, \[CapitalDelta]p, \[Xi],
Subscript[P, z], Subscript[M, d], Subscript[M,
u]] /. {Subscript[k,
0] -> ((kp - (\[CapitalDelta]p/2))^2 + Subscript[M,
d]^2 + (\[Xi]^2 - x^2)*m^2)/(
2*(x + \[Xi])*Subscript[P, z])}, {Subscript[P, z], \[Infinity],
2}] + Series[
F2[Subscript[k, 0], x, m, L, kp, \[CapitalDelta]p, \[Xi],
Subscript[P, z], Subscript[M, d], Subscript[M,
u]] /. {Subscript[k,
0] -> ((kp - (\[CapitalDelta]p/2))^2 +
L^2 + (\[Xi]^2 - x^2)*m^2)/(
2*(x + \[Xi])*Subscript[P, z])}, {Subscript[P, z], \[Infinity],
2}]
, TimeConstraint -> Infinity]]
Here are my system specs:
- Mathematica Version: 11.3.0 for Linux
- Operating System: Ubuntu 20.04.4 LTS, 64-bit
- Processor: Intel® Core™ i7-8550U CPU @ 1.80GHz × 8
TimeConstrained
will do nothing for you here. I am always wary of pretty-printing notation in mathematical calculations. Do you think you could dramatically simplify your symbols to avoid Subscript, Overscript, etc, and just use plain names, or perhaps instead ofSubscript[d, 2]
justd[2]
? $\endgroup$expr2 = Simplify[expr]; expr3 = FullSimplify[expr2]
. Also, what do you know about constraints on the variables/parameters that you can provide toSimplify
andFullSimplify
as assumptions? $\endgroup$FullSimplify
on the result ofSimplify
, and the kernel crashed all the same. The assumptions are that all the parameters are real, $m,L,k_p,\Delta_p,M_d,M_u>0$ are positive numbers, $0<\xi<1$, and $-\xi < x < \xi$. $\endgroup$