Pell is to silver as Fibonacci is to gold
The Endeavour 2024-09-02
As mentioned in the previous post, the ratio of consecutive Fibonacci numbers converges to the golden ratio. Is there a sequence whose ratios converge to the silver ratio the way ratios of Fibonacci numbers converge to the golden ratio?
(If you’re not familiar with the silver ratio, you can read more about it here.)
The Pell numbers Pn start out just like the Fibonacci numbers:
P0 = 0 P1 = 1.
But the recurrence relationship is slightly different:
Pn+2 = 2Pn+1 + Pn.
So the Pell numbers are 0, 1, 2, 5, 12, 29, ….
The ratios of consecutive Pell numbers converge to the silver ratio.
Metallic ratios
There are more analogs of the golden ratio, such as the bronze ratio and more that do not have names. In general the kth metallic ratio is the larger root of
x² − kx − 1 = 0.
The cases n = 1, 2, and 3 correspond to the gold, silver, and bronze ratios respectively.
The quadratic equation above is the characteristic equation of the recurrence relation
Pn+2 = kPn+1 + Pn.
which suggests how we construct a sequence of integers such that consecutive ratios converge to the nth metallic constant.
So if we use k = 3 in the recurrence relation, we should get a sequence whose ratios converge to the bronze ratio. The results are
0, 1, 3, 10, 33, 109, 360, 1189, 3927, 12970, …
The following code will print the ratios.
def bronze(n): if n == 0: return 0 if n == 1: return 1 return 3*bronze(n-1) + bronze(n-2) for n in range(2, 12): print( bronze(n)/bronze(n-1) )
Here’s the output.
3.0 3.3333333333333335 3.3 3.303030303030303 3.302752293577982 3.3027777777777776 3.302775441547519 3.3027756557168324 3.302775636083269 3.3027756378831383
The results are converging to the bronze ratio
(3 + √13)/2 = 3.302775637731995.
Plastic ratio
The plastic ratio is the real root of x³ − x − 1 = 0. Following the approach above, we can construct a sequence of integers whose consecutive ratios converge to the plastic ratio with the recurrence relation
Sn+3 = Sn+1 + Sn
Let’s try this out with a little code.
def plastic(n): if n < 3: return n return plastic(n-2) + plastic(n-3) for n in range(10, 20): print( plastic(n)/plastic(n-1) )
This prints
1.3 1.3076923076923077 1.3529411764705883 1.3043478260869565 1.3333333333333333 1.325 1.320754716981132 1.3285714285714285 1.3225806451612903
which shows the ratios are approaching the plastic constant 1.324717957244746.