Generating Approximate Pythagorean Angles (ADDENDUM) – Simplified Method

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 …

R = \sqrt{\dfrac{1-C}{1+C}}

Now, that function

f(C) = \sqrt{\dfrac{1-C}{1+C}}

seemed semi-familiar, resembling functions that occur in trigonometric or hyperbolic identities.
An example is:

\cos( \tan^{-1}(t)) = \sqrt{\dfrac{1}{t^2 + 1}}

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 function of the angle:

\tan \left( \dfrac{\theta}{2} \right) = \dfrac{1 - \cos \theta}{\sin \theta} = \dfrac{1 - \cos \theta}{\sqrt{1 - \cos^2 \theta}} = \dfrac{\sqrt{(1 - \cos \theta)^2}}{\sqrt{(1 - \cos \theta)(1 + \cos \theta)}} = \sqrt{\dfrac{1 - \cos \theta}{1 + \cos \theta}}

The slightly simplified method follows.

The method (simplified)

(I use τ = 2π.)

Steps (1), (4) and (5) are essentially as before, and the variants of (4) described in the earlier post are likewise applicable as before. Step (2½) below replaces steps (2) and (3) in the earlier description.

(1) Convert the angles from degrees to radians:

θ = (θ°) × τ / 360
Δθ = (Δθ°) × τ / 360

(2½) Calculate the required half-tangent and its error bound:

T = \tan \left( \dfrac{\theta}{2} \right)
\Delta T = \dfrac{\Delta \theta}{2 \cos^2 \left( \dfrac{\theta}{2} \right)}

(4) Now iteratively generate Farey ratios to find numbers (u, v) such that (u/v) is ΔT-close to T:

Begin with u₀=0, v₀=1;
and u₂=1, v₂=1.

We have \dfrac{u_0}{v_0} < T < \dfrac{u_2}{v_2}

Produce the mediant (the ‘wrong sum’) u₁ = u₀ + u₂, v₁ = v₀ + v₂.

If \left| \dfrac{u_1}{v_1} - T \right| \le \Delta T
then (u₁,v₁) is the required (u,v)

Otherwise if \dfrac{u_0}{v_0} \le T \le \dfrac{u_1}{v_1},
so let (u₁,v₁) be the new (u₂,v₂), and repeat

Otherwise \dfrac{u_1}{v_1} \le T \le \dfrac{u_2}{v_2}
so let (u₁,v₁) be the new (u₀,v₀), and repeat.

(5) Once the pair (u,v) has been obtained, then:

if u and v are both odd, then let:

a = (v² − u²) / 2,
b = uv,
c = (v² + u²) / 2

otherwise let:

a = v² − u²,
b = 2uv,
c = v² + u²


a² + b² = c²; and
|cos−1(a/c) − θ| ≲ Δθ.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: