This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A335951 #53 Mar 21 2025 05:10:29 %S A335951 1,0,1,0,0,1,0,0,-1,4,0,0,1,-4,6,0,0,-3,12,-20,16,0,0,5,-20,34,-32,16, %T A335951 0,0,-691,2764,-4720,4592,-2800,960,0,0,105,-420,718,-704,448,-192,48, %U A335951 0,0,-10851,43404,-74220,72912,-46880,21120,-6720,1280 %N A335951 Triangle read by rows. The numerators of the coefficients of the Faulhaber polynomials. T(n,k) for n >= 0 and 0 <= k <= n. %C A335951 There are many versions of Faulhaber's triangle: search the OEIS for his name. %C A335951 Faulhaber's claim (in 1631) is: S_{2*m-1} = 1^(2*m-1) + 2^(2*m-1) + ... + n^(2*m-1) = F_m((n^2+2)/2). The first proof was given by Jacobi in 1834. %C A335951 For the Faulhaber numbers see A354042 and A354043. %D A335951 Johann Faulhaber, Academia Algebra. Darinnen die miraculosische Inventiones zu den höchsten Cossen weiters continuirt und profitiert werden. Johann Ulrich Schönigs, Augsburg, 1631. %H A335951 C. G. J. Jacobi, <a href="https://gallica.bnf.fr/ark:/12148/bpt6k77778z/f70">De usu legitimo formulae summatoriae Maclaurinianae</a>, J. Reine Angew. Math., 12 (1834), 263-272. %H A335951 Donald E. Knuth, <a href="https://arxiv.org/abs/math/9207222">Johann Faulhaber and sums of powers</a>, arXiv:math/9207222 [math.CA], 1992; Math. Comp. 61 (1993), no. 203, 277-294. %H A335951 Peter Luschny, <a href="/A335951/a335951.pdf">Illustrating the Faulhaber polynomials for n = 1..7</a>. %F A335951 Let F_n(x) be the polynomial after substituting (sqrt(8*x + 1) - 1)/2 for x in b_n(x), where b_n(x) = (Bernoulli_{2*n}(x+1) - Bernoulli_{2*n}(1))/(2*n). %F A335951 F_n(1) = 1 for all n >= 0. %F A335951 T(n, k) = numerator([x^k] F_n(x)). %e A335951 The first few polynomials are: %e A335951 [0] 1; %e A335951 [1] x; %e A335951 [2] x^2; %e A335951 [3] (4*x - 1)*x^2*(1/3); %e A335951 [4] (6*x^2 - 4*x + 1)*x^2*(1/3); %e A335951 [5] (16*x^3 - 20*x^2 + 12*x - 3)*x^2*(1/5); %e A335951 [6] (16*x^4 - 32*x^3 + 34*x^2 - 20*x + 5)*x^2*(1/3); %e A335951 [7] (960*x^5 - 2800*x^4 + 4592*x^3 - 4720*x^2 + 2764*x - 691)*x^2*(1/105); %e A335951 [8] (48*x^6 - 192*x^5 + 448*x^4 - 704*x^3 + 718*x^2 - 420*x + 105)*x^2*(1/3); %e A335951 [9] (1280*x^7-6720*x^6+21120*x^5-46880*x^4+72912*x^3-74220*x^2+43404*x-10851)*x^2*(1/45); %e A335951 Triangle starts: %e A335951 [0] 1; %e A335951 [1] 0, 1; %e A335951 [2] 0, 0, 1; %e A335951 [3] 0, 0, -1, 4; %e A335951 [4] 0, 0, 1, -4, 6; %e A335951 [5] 0, 0, -3, 12, -20, 16; %e A335951 [6] 0, 0, 5, -20, 34, -32, 16; %e A335951 [7] 0, 0, -691, 2764, -4720, 4592, -2800, 960; %e A335951 [8] 0, 0, 105, -420, 718, -704, 448, -192, 48; %e A335951 [9] 0, 0, -10851, 43404, -74220, 72912, -46880, 21120, -6720, 1280; %p A335951 FaulhaberPolynomial := proc(n) if n = 0 then return 1 fi; %p A335951 expand((bernoulli(2*n, x+1) - bernoulli(2*n,1))/(2*n)); %p A335951 sort(simplify(expand(subs(x = (sqrt(8*x+1)-1)/2, %))), [x], ascending) end: %p A335951 Trow := n -> seq(coeff(numer(FaulhaberPolynomial(n)), x, k), k=0..n): %p A335951 seq(print(Trow(n)), n=0..9); %o A335951 (Python) %o A335951 from math import lcm %o A335951 from itertools import count, islice %o A335951 from sympy import simplify,sqrt,bernoulli %o A335951 from sympy.abc import x %o A335951 def A335951_T(n,k): %o A335951 z = simplify((bernoulli(2*n,(sqrt(8*x+1)+1)/2)-bernoulli(2*n,1))/(2*n)).as_poly().all_coeffs() %o A335951 return z[n-k]*lcm(*(d.q for d in z)) %o A335951 def A335951_gen(): # generator of terms %o A335951 yield from (A335951_T(n,k) for n in count(0) for k in range(n+1)) %o A335951 A335951_list = list(islice(A335951_gen(),20)) # _Chai Wah Wu_, May 16 2022 %o A335951 (SageMath) %o A335951 def A335951Row(n): %o A335951 R.<x> = PolynomialRing(QQ) %o A335951 if n == 0: return [1] %o A335951 b = expand((bernoulli_polynomial(x + 1, 2*n) - %o A335951 bernoulli_polynomial(1, 2*n))/(2*n)) %o A335951 s = expand(b.subs(x = (sqrt(8*x+1)-1)/2)) %o A335951 return numerator(s).list() %o A335951 for n in range(10): print(A335951Row(n)) # _Peter Luschny_, May 17 2022 %Y A335951 Cf. A335952 (polynomial denominators), A000012 (row sums of the polynomial coefficients). %Y A335951 Other representations of the Faulhaber polynomials include A093556/A093557, A162298/A162299, A220962/A220963. %Y A335951 Cf. A354042 (Faulhaber numbers), A354043. %K A335951 sign,tabl,frac %O A335951 0,10 %A A335951 _Peter Luschny_, Jul 16 2020