You are on page 1of 91

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)

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 B C
AC
 
2

BC
AC AB BC
  
2
  1
BC BC BC
2   1  0 1 5
  1.61803398875
2
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
1
2 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 = 2
3/2 = 1.5
5/3 = 1.666…
8/5 = 1.6
13/8 = 1.625
21/13 = 1.6153846…
34/21 = 1.61904…

=
1.6180339887498948482045
How to divide polynomials?

1 1 + X + X2
?
1–X 1–X 1
-(1 – X)
X
-(X – X2)

X2
-(X2 – X3)
X3 …

= 1 + X + X 2 + X 3 + X 4 + X5 + X 6 + X 7 + …
1
1 + X1 + X2 + X3 + … + Xn + ….. =
1-X

The Infinite Geometric Series


1
1 + X1 + X2 + X3 + … + Xn + ….. =
1-X

(1-X) ( 1 + X1 + X2 + X 3 + … + Xn + … )
= 1 + X1 + X 2 + X 3 + … + Xn + Xn+1 + ….
- X1 - X2 - X 3 - … - Xn-1 – Xn - Xn+1 - …

= 1
1
1 + X1 + X2 + X3 + … + Xn + ….. =
1-X

1 + X + X2 + …
1–X 1
-(1 – X)
X
-(X – X2)

X2
-(X2 – X3)
X3 …
Something a bit more complicated

X + X2 + 2X3 + 3X4 + 5X5 + 8X6


1 – X – X2 X
-(X – X2 – X3)
X2 + X 3
-(X2 – X3 – X4)
X
2X3 + X4
1 – X – X2 -(2X3 – 2X4 – 2X5)

3X4 + 2X5
-(3X4 – 3X5 – 3X6)

5X5 + 3X6
-(5X5 – 5X6 – 5X7)
8X6 + 5X7
-(8X6 – 8X7 – 8X8)
Hence
X
1 – X – X2

= 01 + 1 X1 + 1 X2 + 2X3 + 3X4 + 5X5 + 8X6 + …

= F0 1 + F1 X1 + F2 X2 +F3 X3 + F4 X4 +
F5 X5 + F 6 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 F0 = 0, F1 = 1
=X
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..∞ ? Xn

Linear factors on the bottom


(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =

1
=
(1 – aX)(1-bX)

= n=0..∞ an+1 – bn+1


Xn
a- b

Geometric Series (Quadratic Form)


1
(1 – X)(1- (--1X))

n+1 – (--1)n+1
= n=0.. ∞ Xn
√5

Geometric Series (Quadratic Form)


X
(1 – X)(1- (--1X)

n+1 – (--1)n+1 n+1


= n=0.. ∞ X
√5

Power Series Expansion of F



x
 F0 x  F1 x  F2 x  F3 x     Fi x
0 1 2 3 i

1 x  x 2
i 0

x 
1   1 
i

       x
i i

1 x  x 5     
2
i 0
Leonhard Euler (1765)
J. P. M. Binet (1843)
A de Moivre (1730)

The ith Fibonacci number is:



1   1 
i

      
5 
i

i 0    
(1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) =

1
=
(1 – aX)(1-bX)

= n=0..∞ an+1 – bn+1


Xn
a- b

Let’s Derive This


1
1 + Y1 + Y2 + Y 3 + … + Yn + ….. =
1-Y

Substituting Y = aX …
1
1 + aX1 + a2X2 + a3X 3 + … + anXn + ….. =
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


an+1 – bn+1
a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 =
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 + …..) =

1
=
(1 – aX)(1-bX)

= n=0.. an+1 – bn+1


a- b
Xn

or n=0.. (n+1)an 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 f3

f2
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 f3 = 2
0 = the empty sum 2=1+1

f2 = 1 2

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.

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 # of
sequences sequences
beginning beginning
with a 1 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 + Fm Fn

m n

m-1 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 + (-1)n-1

n-1

n-1
(Fn)2 = Fn-1 Fn+1 + (-1)n-1

(Fn)2 tilings of two strips of size n-1


(Fn)2 = Fn-1 Fn+1 + (-1)n-1

Draw a vertical “fault


line” at the rightmost
position (<n) possible
without cutting any
dominoes
(Fn)2 = Fn-1 Fn+1 + (-1)n-1

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.
(Fn)2 = Fn-1 Fn+1 + (-1)n-1

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.
(Fn)2 = Fn-1 Fn+1 + (-1)n-1

n even

n odd
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! = <6,0,0,0,..>
V! := RIGHT(V!) + <42>; V! = <42,6,0,0,..>
V! := RIGHT(V!) + <2>; V! = <2,42,6,0,..>
V! := RIGHT(V!) + <13>; 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! = <1,1,0,0,..>


V! := V! + RIGHT(V!); V! = <1,2,1,0,..>
V! = <1,3,3,1,.>
V! = nth row of Pascal’s triangle.
X 1+
X 2+
X 3

Vector programs
can be implemented
by polynomials!
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 0
<k> is represented by 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: PV = (1+ X)n


V! := V! + RIGHT(V!);

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+X +X + ….. )
2 3
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 X k

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 + X 2 + 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:
e1 + e 2 + . . . + e n = k
What is the coefficient of
Xk in the expansion of:

( 1 + X + X 2 + X3 + X4 + . . . . ) n ?

 n  k  1
 
 n - 1 
( 1 + X + X 2 + X3 + X4 + . . . . ) n =

1  n  k  1 k

n   X
1  X  k 0  n -1 
Using pirates and gold we
found that:

1 
 n  k  1 k
n   X
1  X  k 0  n -1 

THUS:
1 
k  3 k
4
  X
1  X  k 0  3 
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.

You might also like