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 *P*_{n} start out just like the Fibonacci numbers:

*P*_{0} = 0

*P*_{1} = 1.

But the recurrence relationship is slightly different:

*P*_{n+2} = 2*P*_{n+1} + *P*_{n}.

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 *k*th 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

*P*_{n+2} = *kP*_{n+1} + *P*_{n}.

which suggests how we construct a sequence of integers such that consecutive ratios converge to the *n*th 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

*S*_{n+3} = *S*_{n+1} + *S*_{n}

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.