The previous post mentioned Newton’s inequality. This post will explore this inequality.
Let x be a list of real numbers and define Sn(x) to be the average over all products of n elements from x. Newton’s inequality says that
Sn−1 Sn+1 ≤ S²n
In more terminology more recent than Newton, we say that the sequence Sn is log-concave.
The name comes from the fact that if the elements of x are positive, and hence the S‘s are positive, we can take the logarithm of both sides of the inequality and have
(log Sn−1 + log Sn+1)/2 ≤ log Sn
which is the discrete analog of saying log Sk is concave as a function of k.
Let’s illustrate this with some Python code.
from itertools import combinations as C
from numpy import random
from math import comb
import matplotlib.pyplot as plt
def S(x, n):
p = lambda c: prod([t for t in c])
return sum(p(c) for c in C(x, n))/comb(N, n)
random.seed(20231010)
N = 10
xs = random.random(N)
ns = range(1, N+1)
ys = [log(S(xs, n)) for n in ns]
plt.plot(ns, ys, 'o')
plt.xlabel(r"$n$")
plt.ylabel(r"$\log S_n$")
plt.show()
This produces the following plot.

This plot looks nearly linear. It’s plausible that it’s concave.