Fibonacci Numbers, Polynomial Coefficients, and Vector Programs. Leonardo Fibonacci In 1202, Fibonacci proposed a problem about the growth of rabbit populations. Inductive Definition or Recurrence Relation for the Fibonacci Numbers Stage 0, Initial Condition, or Base Case: Fib(0) = 0; Fib (1) = 1 Inductive Rule For n>1, Fib(n) = Fib(n-1) + Fib(n-2) n 0 1 2 3 4 5 6 7 Fib(n) 0 1 1 2 3 5 8 13 Sneezwort (Achilleaptarmica) 0 Each time the plant starts a new shoot it takes two months before it is strong enough to support branching. See http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibnat.html Counting Petals 5 petals: buttercup, wild rose, larkspur, columbine (aquilegia) 8 petals: delphiniums 13 petals: ragwort, corn marigold, cineraria, some daisies 21 petals: aster, black-eyed susan, chicory 34 petals: plantain, pyrethrum 55, 89 petals: michaelmas daisies, the asteraceae family. Pineapple whorls Church and Turing were both interested in the number of whorls in each ring of the spiral. The ratio of consecutive ring lengths approaches the Golden Ratio. coneflower Definition of (Euclid) Ratio obtained when you divide a line segment into two unequal parts such that the ratio of the whole to the larger part is the same as the ratio of the larger to the smaller. AC AB AB BC A AC 2 BC AC AB BC 2 1 BC BC BC 2 1 0 1 5 2 B 1.61803398875 C Expanding Recursively 1 1 1 1 1 1 1 1 1 1 1 1 Continued Fraction Representation 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.... Continued Fraction Representation 1 5 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .... 1,1,2,3,5,8,13,21,34,55,…. 2/1 3/2 5/3 8/5 13/8 21/13 34/21 = = = = = = = 2 1.5 1.666… 1.6 1.625 1.6153846… 1.61904… = 1.6180339887498948482045 How to divide polynomials? 1 1–X ? 1 + X + X2 1–X 1 -(1 – X) X -(X – X2) X2 -(X2 – X3) X3 … = 1 + X + X 2 + X 3 + X4 + X5 + X6 + X 7 + … 1+ X1 + X2 + X3 +…+ Xn + ….. = 1 1-X The Infinite Geometric Series 1+ X1 + X2 + X3 +…+ Xn + ….. = 1 1-X (1-X) ( 1 + X1 + X2 + X 3 + … + Xn + … ) = 1 + X1 + X2 + X 3 + … + Xn + Xn+1 + …. - X1 - X2 - X 3 - … - Xn-1 – Xn - Xn+1 - … = 1 1+ X1 + X2 + X3 +…+ Xn + ….. = 1 + X + X2 + … 1–X 1 -(1 – X) X -(X – X2) X2 -(X2 – X3) X3 … 1 1-X Something a bit more complicated X + X2 + 2X3 + 3X4 + 5X5 + 8X6 1 – X – X2 X 1 – X – X2 X -(X – X2 – X3) X2 + X3 -(X2 – X3 – X4) 2X3 + X4 -(2X3 – 2X4 – 2X5) 3X4 + 2X5 -(3X4 – 3X5 – 3X6) 5X5 + 3X6 -(5X5 – 5X6 – 5X7) 8X6 + 5X7 -(8X6 – 8X7 – 8X8) Hence X 1 – X – X2 = 01 + 1 X1 + 1 X2 + 2X3 + 3X4 + 5X5 + 8X6 + … = F0 1 + F1 X1 + F2 X2 +F3 X3 + F4 X4 + F5 X5 + F6 X6 + … Going the Other Way F0 = 0, F1 = 1 (1 - X- X2) ( F0 1 + F1 X1 + F2 X2 + … + Fn-2 Xn-2 + Fn-1 Xn-1 + Fn Xn + … Going the Other Way (1 - X- X2) ( F0 1 + F1 X1 + F2 X2 + … + Fn-2 Xn-2 + Fn-1 Xn-1 + Fn Xn + … = ( F0 1 + F1 X1 + F2 X2 + … + Fn-2 Xn-2 + Fn-1 Xn-1 + Fn Xn + … - F0 X1 - F1 X2 - … - Fn-3 Xn-2 - Fn-2 Xn-1 - Fn-1 Xn - … - F0 X2 - … - Fn-4 Xn-2 - Fn-3 Xn-1 - Fn-2 Xn - … = F0 1 + ( F1 – F0 ) X1 =X F0 = 0, F1 = 1 Thus F0 1 + F1 X1 + F2 X2 + … + Fn-1 Xn-1 + Fn Xn + … = X 1 – X – X2 = X/(1- X)(1 – (-)-1 X) (--1) = -1, -+-1= -1 X (1 – X)(1- (-)-1X) = n=0..∞ ? Linear factors on the bottom Xn (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = = = n=0..∞ 1 (1 – aX)(1-bX) an+1 – bn+1 a- b Xn Geometric Series (Quadratic Form) 1 (1 – X)(1- (--1X)) = n=0.. ∞ n+1 – (--1)n+1 √5 Xn Geometric Series (Quadratic Form) X (1 – X)(1- (--1X) = n=0.. ∞ n+1 – (--1)n+1 n+1 X √5 Power Series Expansion of F x 0 1 2 3 F0 x F1 x F2 x F3 x 2 1 x x x 2 1 x x i 0 Fi x i 0 i 1 1 i i x 5 i Leonhard Euler (1765) J. P. M. Binet (1843) A de Moivre (1730) The ith Fibonacci number is: i 0 i 1 1 i 5 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = = = n=0..∞ 1 (1 – aX)(1-bX) an+1 – bn+1 a- b Let’s Derive This Xn 1+ Y1 + Y2 +Y 3 +…+ Yn + ….. = 1 1-Y Substituting Y = aX … 1+ aX1 + a2X2 + a3X 3 +…+ a n Xn + ….. = 1 1 - aX Geometric Series (Linear Form) (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 (1 – aX)(1-bX) Geometric Series (Quadratic Form) (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … Suppose we multiply this out to get a single, infinite polynomial. What is an expression for Cn? (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … cn = a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … If a = b then cn = (n+1)(an) a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 = an+1 – bn+1 a- b (a-b) (a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0) = a1bn +… ai+1bn-i… + anb1 + an+1b0 - a0bn+1 – a1bn… ai+1bn-i… - an-1b2 - anb1 = - bn+1 = + an+1 an+1 – bn+1 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … if a b then cn = an+1 – bn+1 a- b a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = = = n=0.. or n=0.. 1 (1 – aX)(1-bX) an+1 – bn+1 a- b (n+1)an Xn Xn when a=b Geometric Series (Quadratic Form) Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. Example: f5 = 5 Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. Example: f5 = 5 4= 2+2 2+1+1 1+2+1 1+1+2 1+1+1+1 Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. f1 f2 f3 Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. f1 = 1 0 = the empty sum f2 = 1 1=1 f3 = 2 2=1+1 2 Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. fn+1 = fn + fn-1 Sequences That Sum To n Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. fn+1 = fn + fn-1 # of sequences beginning with a 1 # of sequences beginning with a 2 Fibonacci Numbers Again Let fn+1 be the number of different sequences of 1’s and 2’s that sum to n. fn+1 = fn + fn-1 f1 = 1 f2 = 1 Visual Representation: Tiling Let fn+1 be the number of different ways to tile a 1 × n strip with squares and dominoes. Visual Representation: Tiling Let fn+1 be the number of different ways to tile a 1 × n strip with squares and dominoes. Visual Representation: Tiling 1 way to tile a strip of length 0 1 way to tile a strip of length 1: 2 ways to tile a strip of length 2: fn+1 = fn + fn-1 fn+1 is number of ways to tile length n. fn tilings that start with a square. fn-1 tilings that start with a domino. Let’s use this visual representation to prove a couple of Fibonacci identities. Fibonacci Identities Some examples: F2n = F1 + F3 + F5 + … + F2n-1 Fm+n+1 = Fm+1 Fn+1 + Fm Fn (Fn)2 = Fn-1 Fn+1 + (-1)n-1 Fm+n+1 = Fm+1 Fn+1 m m-1 + Fm Fn n n-1 (Fn)2 = Fn-1 Fn+1 + (-1)n-1 (Fn)2 = Fn-1 Fn+1 + (-1)n-1 n-1 Fn tilings of a strip of length n-1 (Fn)2 = Fn-1 Fn+1 n-1 n-1 + (-1)n-1 (Fn)2 = Fn-1 Fn+1 + (-1)n-1 n (Fn)2 tilings of two strips of size n-1 (Fn)2 = Fn-1 Fn+1 + (-1)n-1 n Draw a vertical “fault line” at the rightmost position (<n) possible without cutting any dominoes (Fn)2 = Fn-1 Fn+1 n Swap the tails at the fault line to map to a tiling of 2 n-1 ‘s to a tiling of an n-2 and an n. + (-1)n-1 (Fn)2 = Fn-1 Fn+1 n Swap the tails at the fault line to map to a tiling of 2 n-1 ‘s to a tiling of an n-2 and an n. + (-1)n-1 (Fn)2 = Fn-1 Fn+1 + n even n odd (-1)n-1 The Fibonacci Quarterly Vector Programs Let’s define a (parallel) programming language called VECTOR that operates on possibly infinite vectors of numbers. Each variable V! can be thought of as: < * , * , * , * , *, *, . . . . . . . . . > 0 1 2 3 4 5......... Vector Programs Let k stand for a scalar constant <k> will stand for the vector <k,0,0,0,…> <0> = <0,0,0,0,….> <1> = <1,0,0,0,…> V! + T! means to add the vectors position-wise. <4,2,3,…> + <5,1,1,….> = <9,3,4,…> Vector Programs RIGHT(V!) means to shift every number in V! one position to the right and to place a 0 in position 0. RIGHT( <1,2,3, …> ) = <0,1,2,3,. …> Vector Programs Example: Store V! := <6>; V! := RIGHT(V!) + <42>; V! := RIGHT(V!) + <2>; V! := RIGHT(V!) + <13>; V! = <6,0,0,0,..> V! = <42,6,0,0,..> V! = <2,42,6,0,..> V!= <13,2,42,6,.> V! = < 13, 2, 42, 6, 0, 0, 0, . . . > Vector Programs Example: Store V! := <1>; V! = <1,0,0,0,..> Loop n times: V! := V! + RIGHT(V!); V! = <1,1,0,0,..> V! = <1,2,1,0,..> V! = <1,3,3,1,.> V! = nth row of Pascal’s triangle. 1 X+ 2 X + Vector programs can be implemented by polynomials! 3 X Programs -----> Polynomials The vector V! = < a0, a1, a2, . . . > will be represented by the polynomial: Formal Power Series The vector V! = < a0, a1, a2, . . . > will be represented by the formal power series: V! = < a0, a1, a2, . . . > <0> is represented by <k> is represented by 0 k V! + T! is represented by (PV + PT) RIGHT(V! ) is represented by (PV X) Vector Programs Example: V! := <1>; PV := 1; Loop n times: V! := V! + RIGHT(V!); PV := PV + PV X; V! = nth row of Pascal’s triangle. Vector Programs Example: V! := <1>; PV := 1; Loop n times: V! := V! + RIGHT(V!); PV := PV (1+ X); V! = nth row of Pascal’s triangle. Vector Programs Example: V! := <1>; Loop n times: V! := V! + RIGHT(V!); PV = (1+ X)n V! = nth row of Pascal’s triangle. Let’s add an instruction called PREFIXSUM to our VECTOR language. W! := PREFIXSUM(V!) means that the ith position of W contains the sum of all the numbers in V from positions 0 to i. PREFIXSUM Example V! = <1, 4, 5, 0, 6, …> PREFIXSUM(V!) = <1, 5, 10, 10, 16, …> What does this program output? V! := <1> ; Loop k times: V! := PREFIXSUM(V!) ; 0 k’th Avenue 1 2 3 4 Al Karaji Perfect Squares Zero_Ave := PREFIXSUM(<1>); First_Ave := PREFIXSUM(Zero_Ave); Second_Ave :=PREFIXSUM(First_Ave); Output:= RIGHT(Second_Ave) + Second_Ave First_Ave = <1, 2, 3, 4, … Second_Ave = <1, 3, 6, 10, 15,. RIGHT(Second_Ave) = <0, 1, 3, 6, 10,. Output = <1, 4, 9, 16, 25 Can you see how PREFIXSUM can be represented by a familiar polynomial expression? W! := PREFIXSUM(V!) is represented by PW = PV / (1-X) = PV (1+X+X2+X3+ ….. ) Al-Karaji Program Zero_Ave = 1/(1-X); First_Ave = 1/(1-X)2; Second_Ave = 1/(1-X)3; RIGHT(Second_Ave) = X/(1-X)3 Output = 1/(1-X)3 + X/(1-X)3 = (1-X)/(1-X)3 + 2X/(1-X)3 = (1+X)/(1-X)3 (1+X)/(1-X)3 Zero_Ave := PREFIXSUM(<1>); First_Ave := PREFIXSUM(Zero_Ave); Second_Ave :=PREFIXSUM(First_Ave); Output:= RIGHT(Second_Ave) + Second_Ave Second_Ave = <1, 3, 6, 10, 15,. RIGHT(Second_Ave) = <0, 1, 3, 6, 10,. Output = <1, 4, 9, 16, 25 (1+X)/(1-X)3 outputs <1, 4, 9, ..> X(1+X)/(1-X)3 outputs <0, 1, 4, 9, ..> The kth entry is k2 X(1+X)/(1-X)3 = k2Xk What does X(1+X)/(1-X)4 do? X(1+X)/(1-X)4 expands to : Sk Xk where Sk is the sum of the first k squares Aha! Thus, if there is an alternative interpretation of the kth coefficient of X(1+X)/(1-X)4 we would have a new way to get a formula for the sum of the first k squares. What is the coefficient of Xk in the expansion of: ( 1 + X + X2 + X3 + X4 + . . . . )n ? Each path in the choice tree for the cross terms has n choices of exponent e1, e2, . . . , en ¸ 0. Each exponent can be any natural number. Coefficient of Xk is the number of non-negative solutions to: e 1 + e 2 + . . . + en = k What is the coefficient of Xk in the expansion of: ( 1 + X + X2 + X3 + X4 + . . . . )n ? n k 1 n -1 ( 1 + X + X2 + X3 + X4 + . . . . )n = n k 1 k 1 X n n -1 1 X k 0 Using pirates and gold we found that: n k 1 k 1 X n n -1 1 X k 0 THUS: 1 1 X k 3 k X 3 k 0 4 Vector programs -> Polynomials -> Closed form expression REFERENCES Coxeter, H. S. M. ``The Golden Section, Phyllotaxis, and Wythoff's Game.'' Scripta Mathematica 19, 135-143, 1953. "Recounting Fibonacci and Lucas Identities" by Arthur T. Benjamin and Jennifer J. Quinn, College Mathematics Journal, Vol. 30(5): 359--366, 1999.