What are these extra terms in symmetric polynomial calculations?
I am trying to calculate the discriminant of the cubic using symmetric polynomials, here is my attempt:
P = PolynomialRing(QQ, 'x', 3)
x = P.gens()
S = SymmetricFunctions(QQ)
e = SymmetricFunctions(QQ).e()
def nice_symmetric_poly(coeffs, u):
v = var(coeffs)
return sum(x[1]*product(v[i] for i in x[0]) for x in list(u))
d = (x[0]-x[1])*(x[0]-x[2])*(x[1]-x[2])
u = e.from_polynomial(d^2)
nice_symmetric_poly('a b c d e', u)
This gives me u:
e[2, 2, 1, 1] - 4*e[2, 2, 2] - 4*e[3, 1, 1, 1] + 18*e[3, 2, 1] - 27*e[3, 3] - 8*e[4, 1, 1] + 24*e[4, 2]
and the nice polynomial version:
b^2*c^2 - 4*b^3*d - 4*c^3 + 18*b*c*d - 8*b^2*e - 27*d^2 + 24*c*e
but I was expecting the result from here https://www.johndcook.com/blog/2019/0...
Δ = 18bcd – 4b³d + b²c² – 4c³ – 27d².
I don't understand why these "e" terms exist: - 8b^2e + 24ce
and why is there anything with a e[4] in it inside u
.
Thank you for any insight into this problem.