Turning trig identities into Fibonacci identities
In 2013, John Conway and Alex Ryba published a brief note [1] on how to convert identities involving sine and cosine into identities involving Fibonacci and Lucas numbers.
Fibonacci and LucasThe Fibonacci numbers Fn are defined by F0 = 0, F1 = 1, and
Fn+2 = Fn + Fn+1
for n > 1. Similarly, Lucas numbers Ln are defined by the same recurrence relation
Ln+2 = Ln + Ln+1
but starting with L0 = 2 and L1 = 1.
The recipeThe recipe for turning trigonometric identities into Fibonacci and Lucas number identities is as follws.
- Arguments become subscripts.
- Replace sines by in Fn.
- Replace cosines by in Ln.
- Insert a factor of (-5)k in front of every term that contains 2k or 2k + 1 terms.
The first step is admittedly unclear. It's unclear in [1] as well. If sine or cosine takes an argument of
p +q
then this becomes the subscript
pa +qb
where the Latin letters are integers and the Greek letters are angles.
There's no proof in [1] why the recipe should work, but an earlier paper [2] gives more details.
ExamplesDouble angleFor a simple example, let's start with the double angle identity
sin 2 = 2 sin cos .
This becomes
i2n F2n = 2 ( in Fn)( in Ln)
which simplifies to
F2n = FnLn.
Sum angleFor a little more involved example, let's look at the sum identity
cos( + ) = cos cos - sin sin .
This becomes
ia + b La + b = ia La ib Lb -(-5) ia Fa ib Fb
which simplifies to
2La + b = La Lb + 5 Fa Fb.
Triple angleIn the previous examples the powers ofi in the recipe above cancelled out. This example will show that they are necessary.
We start with the triple angle identity
sin 3 = 3 sin - 4 sin^3 .
This becomes
i3n F3n = 3 () in Fn - 4(-5)( in Fn)^3
which simplifies to
F3n = 3 (-1)n Fn + 5 (Fn)^3.
DemonstrationThe following Python code demonstrates that the Fibonacci / Lucas identities above are correct.
def F(n): if n == 0: return 0 if n == 1: return 1 return F(n-1) + F(n-2)def L(n): if n == 0: return 2 if n == 1: return 1 return L(n-1) + L(n-2)for n in range(10): assert(F(2*n) == F(n) * L(n))for n in range(10): for m in range(10): assert(2*L(m + n) == L(m)*L(n) + 5*F(m)*F(n))for n in range(10): assert(F(3*n) == 3*(-1)**n * F(n) + 5*F(n)**3)Related posts
- Convert trig identities to hyperbolic identities
- Inverse Fibonacci numbers
- Lucas numbers and Lucas pseudoprimes
- Trig mnemonic diagrams
[1] John Conway and Alex Ryba. Fibonometry. The Mathematical Gazette, November 2013, pp. 494-495
[2] Barry Lewis, Trigonometry and Fibonacci Numbers, The Mathematical Gazette, July 2007, pp. 216-226
The post Turning trig identities into Fibonacci identities first appeared on John D. Cook.