Okay, now I have a better understanding of what's going on. Gauss-Legendre quadrature uses exclusively Legendre polynomials L(n,x), which looks in pseudocode like this:
where w[k] is a weight vector based on n. Kronrod interposed another unknown but
orthogonal polynomial P(n+1,x) into the mix, so the equation became
Code: Select all
for(k=0;k<=n;k++)
s+=W[k]*L(n,x)*P(n+1,x)*x^k;
Kronrod didn't know what P(n+1,x) would look like, and didn't prove that there would always be one available, but he did manage to generate them up to n=40. The roots of P(n+1,x) would always be interspersed between the roots of the Gaussian Legendre polynomial. Patterson showed that for any n, P(n+1,x) would always exist, and furthermore that it could be written in terms of the Legendre polynomials itself. He also found a numerically stable way to calculate the weights using a recurrence function, something Kronrod had failed to do; Kronrod ended up carrying 65 decimal digits to calculate only 12-14 digits of precision.
Far more detail than I'm sure anyone cared to read, but there it is.