We show that associating metallic means with polygons, beyond the golden and silver means, requires looking beyond the side to diagonal relationship.


From Polygons, Diagonals, and the Bronze Mean by Antonia R. Buitrago

The Metallic Means Family (MMF) was introduced in 1998 by Vera W. de Spinadel [1998; 1999]. Its members are the positive solutions of the quadratic equation $x^2-px-q=0$, where the parameters $p$ and $q$ are positive integer numbers. The more relevant of them are the Golden Mean and the Silver Mean, the first members of the subfamily which is obtained by considering $q=1$. The members $\sigma_p$, $p=1,2,3 \ldots$ of this subfamily share properties which are the generalization of the Golden Mean properties. For instance, they all may be obtained by the limit of consecutive terms of certain "generalized secondary Fibonacci sequences" (GSFS) and they are the only numbers which yield geometric sequences:

$$ \ldots, \frac{1}{{\sigma_p}^3}, \frac{1}{{\sigma_p}^2}, \frac{1}{\sigma_p}, 1, \sigma_p, {\sigma_p}^2, {\sigma_p}^3, \dots $$

with additive properties

$$ 1 + p \cdot \sigma_p = {\sigma_p}^2 $$ $$ {\sigma_p}^k + p \cdot {\sigma_p}^{k+1} = {\sigma_p}^{k+2} $$ $$ \frac{1}{{\sigma_p}^k} = \frac{p}{{\sigma_p}^{k+1}} + \frac{1}{{\sigma_p}^{k+2}}, \mbox{ } k = 1,2,3,\ldots \ . $$

Figure 1

In Polygons, Diagonals, and the Bronze Mean, Antonia Redondo Buitrago demonstrates that the bronze mean does not appear as a side to diagonal relationship in a regular polygon. Yet there still remains the question of whether or not metallic means appear as a ratio between line segments like in the pentagon, Figure 1.


Figure 2
Figure 3

Let there be a regular polygon with $n$ sides and vertices and a circumradius of 1. Connect each vertex pair with a diagonal $d_i$ and let $P_{d_i}$ be a set of intersection points between $d_i$ and each other diagonal:

$$ P_{d_i} = \{ p_1, p_2, p_3, \ldots, p_j \} $$

where $j$ is the total number of intersection points for a given diagonal $ d_i$.

Let $L_{d_i}$ be the set of lengths between pairs of points in $P_{d_i}$:

$$ L_{d_i} = \{ \overline{p_1 p_2}, \overline{p_1 p_3}, \ldots, \overline{p_{j-1} p_j} \}. $$

For a regular polygon, only a single vertex and its diagonals are needed due to rotational symmetry.

For a vertex, the number of diagonals required to encompass all possible lengths of a regular polygon is $ \lfloor \frac{n}{2} \rfloor $ due to reflectional symmetry. Reflectional symmetry reduces the number of diagonals by half because diagonals opposite each other across a line of symmetry have the same set of line segments; even-sided polygons also include the diagonal that is the circumdiameter.

Taking figure 2 as an example,

$$ L_{d_1} = L_{d_6},\ L_{d_2} = L_{d_5}, \ L_{d_3} = L_{d_4} \text. $$

And for figure 3,

$$ L_{d_1} = L_{d_7},\ L_{d_2} = L_{d_6},\ L_{d_3} = L_{d_5},\ L_{d_4} = L_{d_4} \text. $$

Then, the complete set of lengths for a regular polygon with $n$-sides is

$$ L_n = \bigcup\limits_{i=1}^{\lfloor \frac{n}{2} \rfloor} L_{d_i} \text. $$

Then to test if a metallic mean $\sigma_p$ exists as a ratio of lengths in $L_n$, we find the intersection between $L_n$ and $ \sigma_p \cdot L_n $:

$$ \begin{array}{rl} M_{\sigma_p} = & L_n \cap (\sigma_p \cdot L_n) \ = & \{ x \in L_n : \exists l \in L_n (x = \sigma_p \cdot l) \} \text. \ \end{array} $$

If the intersection $ M_{\sigma_p} $ is not empty then the metallic mean exists as a ratio of lengths.


Let's take a look at a simple example, the pentagon, which has an established relationship with the first metallic mean, the golden mean $\varphi $. The pentagon has the characteristic that any diagonal is representative of all diagonals so we'll use the blue diagonal from figure 1.

Let $L_5$ be the complete set of line segments for a pentagon

$$ L_5 = \{ \overline{AB}, \overline{AC}, \overline{AD}, \overline{BC}, \overline{BD}, \overline{CD} \} $$

and the lengths are

$$ L_5 = \{ 0.44902, 0.72654, 1.17557, 1.90211 \} \text. $$

So to test for the first metallic mean, we multiply $L_5$ by $ \sigma_1 $, where $ \sigma_1 = 1.61803 $,

$$ \sigma_1 \cdot L_5 = \{ 0.72654, 1.17557, 1.90211, 3.07768 \} $$

and we find that all but one is a member of $L_5$:

$$ M_{\sigma_1} = \{ 0.72654, 1.17557, 1.90211 \} \text. $$

Additionally we can test for the fourth metallic mean by multiplying $ L_5 $ by $ \sigma_4 $ ($ \varphi^3 $), where $ \sigma_4 = 4.23606 $,

$$ \sigma_4 \cdot L_5 = \{ 1.90211, 3.07768, 4.97979, 8.05748 \} $$

and we find that only one is a member of $ L_5 $:

$$ M_{\sigma_4} = \{ 1.90211 \} \text. $$


Download zip | GitHub repo
install required packages: pip3 install -r requirements.txt

usage: main.py [-h] [--dps DPS] [--buffer BUFFER] [-s] n mean_id

positional arguments:
  n                   # of sides for regular polygon
  mean_id             metallic mean to test for

optional arguments:
  -h, --help          show this help message and exit
  --dps DPS           decimal precision [default: 50]
  --buffer BUFFER     decimal precision buffer [default: 5]
  -s, --show_matches  show matches

python3 main.py 5 1
python3 main.py 8 2
python3 main.py 13 3

The program is written in Python3.7 using mpmath for arbitrary-precision. mpmath is required because double-precision has an insufficient number of significant digits to account for the very tiny variations in lengths which result in false positives.

mpmath is set to 55 decimal-places, an arbitrarily sufficient number, with 5 decimal-places as a buffer to account for minor cumulative computational errors. Then the computed mpmath values are converted to decimal string literals with 50 significant digits allowing for string comparisons of relatively precise decimal values.