%I #11 Mar 18 2026 21:20:57
%S 1,3,4,8,7,5,21,10,13,17,55,11,14,31,20,144,19,25,36,39,23,377,27,30,
%T 41,46,47,26,987,29,35,43,51,49,52,65,2584,50,37,45,53,59,62,73,68,
%U 6765,71,66,82,98,61,67,75,78,89,17711,76,79,95,103,114,69,77,83
%N Rectangular array, read by descending antidiagonals: denominators in the best upper approximating array to the golden ratio, phi (A001622) (see Comments).
%C Let Q = {a/b: gcd(a,b)=1, a>0, b>0}; i.e., the positive rationals, reduced to lowest terms, and let x be a positive irrational number. For any dense subset S of Q, a sequence of fractions a(n)/b(n) in S is the S-best upper approximating sequence if it satisfies these three conditions:
%C (1) a(1)/b(1) > a(2)/b(2) > a(3)/b(3) > ... > x
%C (2) b(1) < b(2) < b(3) < ...
%C (3) if b(k) < v < b(k+1) for some u/v in S and k>=1, then u/v is not between a(k)/b(k) and a(k+1)/b(k+1).
%C Define the best upper approximating array to x by rows, r(n,k), for k>=1, as follows:
%C Row 1: With S = Q, put r(1,1) = a(1)/b(1), where a(1) = ceiling(x) and b(1)=1. The terms r(1,k) are then uniquely determined by conditions (1), (2), (3). Note that row 1 consists of the upper convergents to x.
%C Rows n>=2: With S = (Q after deleting all fractions in rows 1,2,...,n-1), let r(n,1) = the fraction a/b in S that is nearest x and > x and has least denominator b that is new; i.e., a/b is not in the first n-1 rows. The terms of row (r(n,k)) are uniquely determined by (1), (2), (3).
%C Every row and every column converges to x. Regarding the arrays of denominators and numerators for the best lower and upper approximating arrays, every row and every column is strictly increasing.
%C For the present array, x = phi.
%e Corner of array of denominators:
%e 1 3 8 21 55 144 377 987 2584 6765 17711
%e 4 7 10 11 19 27 29 50 71 76 131
%e 5 13 14 25 30 35 37 66 79 92 97
%e 17 31 36 41 43 45 82 95 108 113 118
%e 20 39 46 51 53 98 103 121 134 139 207
%e 23 47 49 59 61 114 119 124 129 155 160
%e Corner of array of numerators:
%e 2 5 13 34 89 233 610 1597 4181 10946 28657
%e 7 12 17 18 31 44 47 81 115 123 212
%e 9 22 23 41 49 57 60 107 128 149 157
%e 28 51 59 67 70 73 133 154 175 183 191
%e 33 64 75 83 86 159 167 196 217 225 335
%e 38 77 80 96 99 185 193 201 209 251 259
%e Corner of array of approximations:
%e 2. 1.66667 1.625 1.61905 1.61818 1.61806
%e 1.75 1.71429 1.7 1.63636 1.63158 1.62963
%e 1.8 1.69231 1.64286 1.64 1.63333 1.62857
%e 1.64706 1.64516 1.63889 1.63415 1.62791 1.62222
%e 1.65 1.64103 1.63043 1.62745 1.62264 1.62245
%e 1.65217 1.6383 1.63265 1.62712 1.62295 1.62281
%t x = GoldenRatio; numRows = 6; numCols = 12;
%t usedValuesUpper = {}; upperArray = Table[Null, {numRows}, {numCols}];
%t For[n = 1, n <= numRows, n++, b = 1; foundStart = False;
%t While[! foundStart, a = Ceiling[b*x];
%t val = a/b;
%t If[val > x && GCD[a, b] == 1 && ! MemberQ[usedValuesUpper, val],
%t upperArray[[n, 1]] = val;
%t AppendTo[usedValuesUpper, val];
%t foundStart = True, b++]];
%t For[k = 1, k < numCols, k++, currentVal = upperArray[[n, k]];
%t currentB = Denominator[currentVal];
%t nextVal = Null; testB = currentB + 1;
%t While[nextVal === Null, testA = Ceiling[testB*x];
%t candidate = testA/testB;
%t If[GCD[testA, testB] == 1 && candidate < currentVal &&
%t candidate > x && ! MemberQ[usedValuesUpper, candidate],
%t nextVal = candidate;
%t AppendTo[usedValuesUpper, candidate];
%t upperArray[[n, k + 1]] = nextVal, testB++]];];];
%t Grid[upperArray] (* Best lower approximating array to golden ratio *)
%t Grid[N[upperArray]] (* Approximations *)
%t Grid[Denominator[upperArray]] (* A394035 *)
%t Grid[Numerator[upperArray]] (* A394036 *)
%Y Cf. A001622, A001906 (row 1), A394033, A394034, A394036, A394037.
%K nonn,tabl,frac
%O 1,2
%A _Clark Kimberling_, Mar 10 2026