This is a link to a historical project of mine, hosted on Albert Gräf’s project page.

QiX is a library for Albert Gräf’s Q programming language adding support for univariate polynomials.

There is full documentation available.

Mathematics — Algorithms — Version Control

This is a link to a historical project of mine, hosted on Albert Gräf’s project page.

QiX is a library for Albert Gräf’s Q programming language adding support for univariate polynomials.

There is full documentation available.

This is a link to a historical project of mine, hosted on Albert Gräf’s project page.

Q+Q is a library for Albert Gräf’s Q programming language adding support for the rational numbers, ℚ.

There is full documentation available.

In a recent post I described a method of generating the simplest primitive Pythagorean triple (a,b,c) where one of the angles of the triangle with sides a, b and c is θ° to within some (small) error bound Δθ°.

One of the steps was, given the cosine C of the angle [from step (2)]:

(3) Calculate the Farey ratio approximant …

…

Now, that function

seemed semi-familiar, resembling functions that occur in trigonometric or hyperbolic identities.

An example is:

A little further investigation, and reading around, including the Wikipedia articles on trigonometric identities, and in particular on those of the tangent half-angle, revealed that the *Farey ratio approximant* does in fact correspond directly to a simple trigonometric funtion of the angle:

The slightly simplified method follows.

In the previous post is a table of values.

Suppose you wish to find the simplest primitive Pythagorean triangle (a,b,c) where one of the angles is θ° to within some (small) error bound Δθ°.

Here’s the derivation of the method which was given in an earlier post.

The previous post provides a worked example of the method.

The next post provides a derivation and proof of the method.

θ° ± 0.01° |
a |
b |
c |
θ° |
±%ε |

5° | 33425 | 2928 | 33553 | 5.006° | 62.8% |

10° | 6351 | 1120 | 6449 | 10.001° | 12.9% |

15° | 1419 | 380 | 1469 | 14.992° | −82.8% |

20° | 66005 | 24012 | 70237 | 19.991° | −90.9% |

25° | 16272 | 7585 | 17953 | 24.992° | −79.8% |

30° | 2911 | 1680 | 3361 | 29.990° | −98.4% |

35° | 7623 | 5336 | 9305 | 34.992° | −84.8% |

40° | 20424 | 17143 | 26665 | 40.009° | 86.1% |

45° | 4059 | 4060 | 5741 | 45.007° | 70.6% |

A longer table follows

The previous post describes the method.

In the next post is a table of values.

As an example, let

θ = 24°

Δθ = 0.001°

The next post provides a worked example of the method.

ADDENDUM [20-10-2015]: A slight simplification of the method below is described in an addendum post.

Suppose you wish to find the simplest primitive Pythagorean triple (a,b,c) where one of the angles of the triangle with sides a, b and c is θ° to within some (small) error bound Δθ°.

A *Pythagorean triple* (a,b,c) is such that:

a,b,c ∈ ℕ₀ (i.e. are natural numbers ≥ 0), and

a² + b² = c²

A *primitive* Pythagorean triple (a,b,c) is one such that also

a ⊥ b (i.e. a and b are coprime, i.e. have no common factors),

a ⊥ c, and

b ⊥ c

that is, a, b and c are pairwise coprime.

The method follows.

We have:

because

In an earlier post, I showed the finite version of this result:

This might be seen to hold as both sums are

Whilst doodling with the Fibonacci sequence

n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | … |
---|---|---|---|---|---|---|---|---|---|---|---|---|

F_{n} |
0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | … |

I found some interesting formulae:

The first of these is not new, but I did not find the other two on the web.

There’s more information about the Fibonacci sequence and the binomial coefficients on Wikipedia.

where ω is a primitive cube root of 1 given by

are often represented in the form

(noting that )

and perhaps abbreviated by pair notation such as

(where the asterisk is to distinguish this notation from that introduced below)

so that

Here is a more intuitive representation that is simpler to manipulate and reason about.