login
T(n, k) is the coefficient of x^k of the polynomial p(n) which is defined as the scalar part of P(n) = Q(x+1, 1, 1, 1) * P(n-1) for n > 0 and P(0) = Q(1, 0, 0, 0) where Q(a, b, c, d) is a quaternion, triangle read by rows.
2

%I #35 Sep 14 2018 14:00:43

%S 1,1,1,-2,2,1,-8,-6,3,1,-8,-32,-12,4,1,16,-40,-80,-20,5,1,64,96,-120,

%T -160,-30,6,1,64,448,336,-280,-280,-42,7,1,-128,512,1792,896,-560,

%U -448,-56,8,1,-512,-1152,2304,5376,2016,-1008,-672,-72,9,1,-512,-5120,-5760,7680,13440,4032,-1680,-960,-90,10,1

%N T(n, k) is the coefficient of x^k of the polynomial p(n) which is defined as the scalar part of P(n) = Q(x+1, 1, 1, 1) * P(n-1) for n > 0 and P(0) = Q(1, 0, 0, 0) where Q(a, b, c, d) is a quaternion, triangle read by rows.

%C The symbol '*' in the name refers to the noncommutative multiplication in Hamilton's division algebra. Traditionally Q(a, b, c, d) is written a + b*i + c*j + d*k.

%H Peter Luschny, <a href="/A181738/b181738.txt">Rows 0..45, flattened</a>

%H Wikipedia, <a href="https://en.wikipedia.org/wiki/Quaternion">Quaternion</a>

%e The list of polynomials starts 1, 1 + x, -2 + 2*x + x^2, -8 - 6*x + 3*x^2 + x^3, ... and the list of coefficients of the polynomials starts:

%e { 1},

%e { 1, 1},

%e { -2, 2, 1},

%e { -8, -6, 3, 1},

%e { -8, -32, -12, 4, 1},

%e { 16, -40, -80, -20, 5, 1},

%e { 64, 96, -120, -160, -30, 6, 1},

%e { 64, 448, 336, -280, -280, -42, 7, 1},

%e {-128, 512, 1792, 896, -560, -448, -56, 8, 1},

%e {-512, -1152, 2304, 5376, 2016, -1008, -672, -72, 9, 1},

%e {-512, -5120, -5760, 7680, 13440, 4032, -1680, -960, -90, 10, 1}.

%t Needs["Quaternions`"]

%t P[x_, 0 ] := Quaternion[1, 0, 0, 0];

%t P[x_, n_] := P[x, n] = Quaternion[x + 1, 1, 1, 1] ** P[x, n - 1];

%t Table[CoefficientList[P[x, n][[1]], x], {n, 0, 10}] // Flatten

%o (Sage)

%o R.<x> = QQ[]

%o K = R.fraction_field()

%o H.<i,j,k> = QuaternionAlgebra(K, -1, -1)

%o def Q(a, b, c, d): return H(a + b*i + c*j + d*k)

%o @cached_function

%o def P(n):

%o return Q(x+1,1,1,1)*P(n-1) if n > 0 else Q(1,0,0,0)

%o def p(n): return P(n)[0].numerator().list()

%o flatten([p(n) for n in (0..10)]) # Kudos to William Stein, _Peter Luschny_, Sep 14 2018

%Y Cf. T(n,0) = A138230, A213421 (row sums).

%K tabl,sign

%O 0,4

%A _Roger L. Bagula_

%E Edited by _Peter Luschny_, Sep 14 2018