Mathematica calculations for the p-norm Turán paper

This notebook records the three numerical checks cited in Lemmas 4.2 and 4.3 of the revised manuscript. Evaluate the notebook from top to bottom. Named functions are used so that each displayed calculation can be compared directly with the corresponding formula in the paper.

Setup

The setup clears only the symbols used below. The polynomial h is the function h_p from the manuscript. The auxiliary value hAtTestPoint evaluates it at (1/(p+2), 1/(p+2), p/(p+2)).

ClearAll[p,x1,x2,x3,h,hAtTestPoint,caseOneBound,caseOneMaximum,caseTwoBound,caseTwoEndpointExact,caseTwoEndpointNumeric,baseCaseBound,baseCaseMaximum,checks];h[p_,x1_,x2_,x3_]:=x1 x2 (x3^p)+x1 (x2^p) x3+(x1^p) x2 x3;hAtTestPoint[p_]:=h[p,(1/(p+2)),(1/(p+2)),(p/(p+2))];

Lemma 4.2

Case 1: 2 <= p <= 8

caseOneBound is the upper bound in Case 1. The plot compares it with 6.55 on the full interval [2,8], and NMaximize checks the maximum numerically.

caseOneBound[p_]:=((((3 Max[{(1/(2^(p-1))),(1/8) (((((p-1)/p)))^(p-4))}])/(2 E))+Max[{(1/(2^p)),(1/8) ((((p/(p+1))))^(p-3))}])/((p+2) hAtTestPoint[p]));

Plot[{caseOneBound[p],6.55`},{p,2,8},PlotLegends->Placed[{"upper bound","threshold 6.55"},Below],AxesLabel->{"p","value"},PlotRange->All,ImageSize->Large]

caseOneMaximum=NMaximize[{caseOneBound[p],2≤p≤8},p]

The maximum is approximately 6.544548 at p = 8, hence it is strictly smaller than 6.55.

Case 2: p > 8

In the manuscript, the six factors forming this bound are decreasing for p >= 8. It therefore suffices to evaluate the resulting upper bound at p = 8. The formula below matches the current revised manuscript.

caseTwoBound[p_]:=(((3 E) ((p^2)-3 p+4) ((((p+2) (p-3))/(((p-2))^p))+((p+2)/(E (p-2)))))/(2 (p (p-3))))+((((p^2)-p+2) ((((p+2) (p-2))/(((p-1))^(p+1)))+((p+2)/(E (p-1)))) (E^2))/((p-2) (p+1)));

caseTwoEndpointExact=FullSimplify[caseTwoBound[8]]

caseTwoEndpointNumeric=N[caseTwoEndpointExact,16]

Thus the Case 2 upper bound is approximately 6.921054, which is strictly smaller than 6.93.

Lemma 4.3: base case

baseCaseBound is the expression used for 1 <= p <= 2. The plot compares it with 5, and NMaximize checks its maximum numerically.

baseCaseBound[p_]:=((p ((((1/2)))^(2-p)) ((((1/9)))^(p-1))+(1/(4^(p-1))))/((p+2) ((((1/3)))^(p+1))));

Plot[{baseCaseBound[p],5},{p,1,2},PlotLegends->Placed[{"upper bound","threshold 5"},Below],AxesLabel->{"p","value"},PlotRange->All,ImageSize->Large]

baseCaseMaximum=NMaximize[{baseCaseBound[p],1≤p≤2},p]

The numerical maximum is 4.5 at the endpoint p = 1, hence it is strictly smaller than 5.

Summary

All three Boolean checks should evaluate to True.

checks=Association["Lemma 4.2, Case 1"->First[caseOneMaximum]<6.55`,"Lemma 4.2, Case 2"->caseTwoEndpointNumeric<6.93`,"Lemma 4.3, base case"->First[baseCaseMaximum]<5]