This page is an elucidation of the Argand diagrams for Binet's formula for Fibonacci numbers extended for Reals. For a detailed explanation of the math behind this see Ron Knott's page: Plotting functions on an Argand Diagram
The two animations above show how fib(t)+fib(t+1) = fib(t+2). The graph on the left is for -6<t<0, the graph on the right for 0<t<+6. Two graphs are used because the imaginary component of fib(t) when t>0 (the plot on the right) is quite small and the detail would be lost. The red line is drawn from the origin (0,0) to fib(t). The green lines are the vector fib(t+1), one drawn from (0,0), the other transposed so that its "tail" is at fib(t). The "head" of the green line is therefore fib(t)+fib(t+1) which you can see is ALWAYS on the graph because it is equal to fib(t+2), which is the line drawn in blue!
Note that in the graph on the left the red and green lines overlap each other, particularly at the beginning of the animation loop when Phi is large but negative. When t is a large negative number the first term in Binet's formula (Phin) becomes negligible. The second term dominates the behavior of the equation, so it begins to act like just -(-1/Phi)n/sqrt(5), which is an equation for an equiangular spiral. As the vectors spiral in to the origin the first factor in the equation begins to have an effect and the two vectors get "out of phase" with each other
"Out of phase" in this context means that the ratio of the real to the imaginary parts of fib(t) are different. Note that whenever fib(t) crosses the Real axis the two vectors are ALWAYS in phase, in fact they are horizontal which means they have no imaginary component.
Feel free to stop the animation by clicking on the Stop
button. When you do so the button will change to Start and the
current values of fib(t), fib(t+1) and fib(t+2) will be
displayed. While the animation is Stopped, you can single-step it
by clicking on the Step button. Each step changes t by 0.02.
While the animation is stopped you can mouse click anywhere
within the diagram to move fib(t) to that point and update the
display of fib(t's).
Want to see these two graphs combined and viewed in 3 dimensions? Surf to my 3-D model of Binet's formula.
How do we raise a negative number to a non-integral power? The Java applet does it by use of Euler's identity:
ei*PI + 1 = 0, or equivalently
-1 = ei*PI
Substituting this into Binet's formula gives:
fib(n) = (Phin - ei*PI*n/Phin)/sqrt(5)
But how do we compute ei*PI*n? We use:
ei*t = cos(t) + i*sin(t)
Substituting this back into Binet's formual allows us to solve for the real and imaginary parts of fib(t):
Real(fib(n)) = (Phin - cos(PI*n)/Phin)/sqrt(5),
Imag(fib(n)) = (Phin - sin(PI*n)/Phin)/sqrt(5)
The animation above shows that fib(t)+fib(t+1) = fib(t+2) for Real t. They also obey the principle that the ratio of fib(t+1)/fib(t) approaches Phi for large t. This seems obvious for large positive values of t, but how about negative numbers where we are spiraling about the complex plane:
fib(-50.25) = -10037577756+10037577756i
fib(-49.25) = 6203564218- 6203564218i
ratio = -0.618033989
So the ratio of fib(t+1)/fib(t) for t<0 is phi, NOT Phi (1.618...)
What happens when we put complex numbers into Binet's formula?
Using our good friend Euler's identity of course!!
Phi = eln(Phi), so
Phia+bi = eln(Phi)*(a+bi)
With a little substitution and algebra we end up with:
fib(a+bi) = [Phia*eb*ln(Phi)*i-e(a*PI-b*ln(Phi))*i/(Phia*eb*PI)]/sqrt(5)
Whew!!!
It just so happens that our Java applet does the calculations
using this general formula, but so far setting the imaginary
component b to 0. Let's look at a Fibonacci series with
b=0.5:
As the animation shows, these complex Fibonacci numbers still follow the summation principle, and a little computation will show that they continue to approach Phi or phi in ratio as you move away from the origin, though which they approach seems a little more complicated (it is not as simple as whether or not you are in the left or right-half plane). If you figure out what the general rule is let me know!!
There is not one simple set of Complex Fibonacci numbers.
Instead, Binet's formula maps an arbitrary horizontal line in the
Complex plane to a curve in the Complex plane. In fact, our
little Java applet is capable of animating a family of such
curves - the following plot shows that a very small imaginary
component greatly influences Fibonacci behavior as each curve
only varies the parameter by 0.1i:
All the animations above are created with one Java applet, parameterized to control the range of the parametric variable t and the portion of the complex plane displayed. You should be able to see the APPLET HTML tag that kicks these off by doing a View/Source with your browser.
At a future date I will make the Java source code available on this page (Hey, I've gotta put a few comment lines in there first!!)
Comments? KWPapke@aol.com
You are person to visit this
site.
Page created: 2/12/98 Last updated: 12/21/98