Is this method of estimating Pi too similar to Archimedes' method?

In summary, the recurrence relation given was ##p_k=2^{k+1}\cdot h_k## where ##h_0=\sqrt{2}## and ##h_{k+1}=\sqrt{(\frac{1}{2}h_k)^2+(1-\frac{1}{2}h_k \cdot \cot(2^{-k}\cdot \alpha))^2}##. This relation was derived using the half-angle formula for tangent, and a recursive sequence was found for ##\tan(\frac{\pi}{4}\cdot 2^{-(n+1)})##. However, when using this new sequence in the original relation, the estimate for ##\pi## begins
  • #1
Eclair_de_XII
1,083
91
TL;DR Summary
It was derived by inscribing half a semi-circle within a square of side-length one, and estimating the arc length by using hypotenuses of triangles whose side lengths depend on the length of one of the previous hypotenuses recursively, then multiplying the hypotenuse by a certain power of two.
The recurrence relation was given as:

##p_k=2^{k+1}\cdot h_k##

where

##h_0^2=2##
##h_{k+1}^2=(\frac{1}{2}h_k)^2+(1-\frac{1}{2}h_k \cdot \cot(2^{-k}\cdot \alpha))^2##

and ##\alpha=\arctan(1)##.

This is not exactly an original or noteworthy derivation, is it? I feel that it's been done already two-thousand years ago, and I even found a web-page showing nearly exactly the same thing I am describing right now.

https://www.craig-wood.com/nick/articles/pi-archimedes/

Oh, and I did write some code that confirmed the validity of this recursion.

Python:
import math

def hypotenuse_sequence(n):
    """This function calculates the length of the hypotenuse of any given right triangle after the n-th recursion.

    Input: integer
    Output: positive number

    """
    if n==0:
        return math.sqrt(2)
    angle = math.atan(1)
    x = hypotenuse_sequence(n - 1) / 2
    y = 1 - x/math.tan(2 ** (-(n - 1)) * angle)
    return math.sqrt(x**2+y**2)

def est_pi_8th(n):
    """This function returns an actual estimate of pi using the hypotenuse_sequence function.

    Input: integer
    Output: estimate of pi

    """
    return hypotenuse_sequence(n)*2**(n+1)
 
Mathematics news on Phys.org
  • #2
A sketch would help a lot here.

The calculation of tan and atan depends on knowing pi (or approximating it somehow). Using these functions to find pi is a circular approach. You could just calculate 2 atan(1010).
 
  • #3
mfb said:
A sketch would help a lot here.

fbd.png

The base case is just ##h_0=\sqrt{2}## (or ##r_0## in this picture). You take half of that as one of the legs of the new triangle after the first recursion, and apply the Pythagorean Theorem after finding the length of the other side to get ##h_1##. The ##h_n## is the side of a hypotenuse generated after the ##n##-th recursion; ##p_n## is just the estimate of ##\pi##.
mfb said:
The calculation of tan and atan depends on knowing pi (or approximating it somehow). Using these functions to find pi is a circular approach.

So it is not possible even if a half-angle formula for tangent, say

##\tan(\theta)=\frac{1-\cos(2\theta)}{\sin(2\theta)}##

were used for known values of ##\sin(2\theta)## and ##\cos(2\theta)##? From there, isn't it possible to make use of the value of ##\tan(\theta)## in order to find ##\sin(\theta)## and ##\cos(\theta)## using the Pythagorean Theorem, which can be then used to find ##\tan(\theta / 2)## and so on?
 
Last edited:
  • #4
If you can write the final expressions without using any trigonometric functions it will work, otherwise it will not.
 
  • #5
mfb said:
If you can write the final expressions without using any trigonometric functions it will work, otherwise it will not.

Let's see, we start with ##\alpha=\arctan(1)##. We can just call this "the angle<##\pi/2## of a right triangle such that the opposite and adjacent sides are equal".

--

The base case:

##\tan(\alpha)=1##

--

It is implied here that the opposite side is equal to the adjacent side. Let's call them ##y,x## respectively; both are positive by convention. Hence, we have that:

##\sin(\alpha)=\frac{y}{\sqrt{y^2+x^2}}=\frac{y}{\sqrt{2y^2}}=\frac{y}{|y|\cdot \sqrt{2}}=\frac{1}{\sqrt{2}}##

Similarly:

##\cos(\alpha)=\frac{x}{\sqrt{y^2+x^2}}=\frac{x}{\sqrt{2x^2}}=\frac{x}{|x|\cdot \sqrt{2}}=\frac{1}{\sqrt{2}}##

From the formula earlier:

##\tan(\alpha/2)=\frac{1-\cos(\alpha)}{\sin(\alpha)}=\frac{1-\frac{1}{\sqrt{2}}}{\frac{1}{\sqrt{2}}}=\sqrt{2}-1##

--

From the value of the tangent function evaluated at ##\alpha/2##, it is implied that ##y=(\sqrt{2}-1)x##. Let's calculate the hypotenuse length:

##h=\sqrt{y^2+x^2}=\sqrt{((\sqrt{2}-1)x)^2+x^2}=\sqrt{x^2((\sqrt{2}-1)^2+1)}=|x|\cdot \sqrt{(2-2\sqrt{2}+1)+1}=x\cdot \sqrt{4-2\sqrt{2}}##

Calculate ##\sin(\alpha/2)## and ##\cos(\alpha/2)## as follows:

##\sin(\alpha/2)=\frac{y}{h}=\frac{(\sqrt{2}-1)x}{x\cdot \sqrt{4-2\sqrt{2}}}=\frac{\sqrt{2}-1}{\sqrt{4-2\sqrt{2}}}##
##\cos(\alpha/2)=\frac{x}{h}=\frac{x}{x\cdot \sqrt{4-2\sqrt{2}}}=\frac{1}{\sqrt{4-2\sqrt{2}}}##

Hence,

##\tan(\alpha/4)=\frac{1-\cos(\alpha/2)}{\sin(\alpha/2)}=\frac{\sqrt{4-2\sqrt{2}}-1}{\sqrt{2}-1}##

--

So I think I can do this any number of times. I sure do not want to, because it will get extremely messy. But I am sure that it is always possible to express the trigonometric term in any member of the recursive sequence as a purely algebraic term. It suffices to follow the algorithm outlined in this post.

Sorry for the multiple edits, by the way. I have a nasty habit I must kick.
 
Last edited:
  • #6
Looks like it can work, although a direct recursion formula would be easier.
 
  • #7
mfb said:
Looks like it can work, although a direct recursion formula would be easier.

Something like this, then?
--
Let ##p_n## be the estimate of ##\pi## after the ##n##-th recursion.

##p_0=2\sqrt{2}##
##p_{k+1}=2^{k+2}\cdot \sqrt{(2^{-(k+2)}\cdot p_k)^2+(1-2^{-(k+2)}\cdot p_k \cdot \cot(2^{-k}\cdot \alpha))^2}##

where ##\alpha=\arctan(1)##.
--
Oh yeah, and I wrote some code for this sequence.
Python:
def new_pi(n):
    """This function calculates an estimate of pi using direct recursion.
    It was derived using the est_pi_8th and hypotenuse_sequence functions,
    and the relation described by the former.

    Input: non-negative integer
    Output: estimate of pi

    """
    if n==0:
        return 2*math.sqrt(2)
    angle = math.atan(1)
    x=new_pi(n-1)/2**(n+1)
    y=1-x/math.tan(angle/2**(n-1))
    z=math.sqrt(x**2+y**2)
    return 2**(n+1)*z
 
  • #8
Eclair_de_XII said:
...using hypotenuses of triangles
Nitpick: Hypoteneese.

:oldbiggrin:
 
  • #9
Huh, I learn something new everyday.
 
Last edited:
  • #10
That was a joke. :wink: ..
 
  • #11
Eclair_de_XII said:
Something like this, then?
That has the trigonometric functions in again.
 
  • #12
Of course.
--
Define a recurse sequence ##t_{n+1}## calculating ##\tan(\frac{\pi}{4}\cdot 2^{-(n+1)})## as follows.

##t_0=1##
##t_{n+1}=\frac{\sqrt{t_n^2+1}-1}{t_n}## for ##n\geq 0##
--
Just replace the ##\cot(2^{-k}\cdot \alpha)## term in the other recursive sequence by ##1/t_{n}##, and it should be alright, I think.

I wrote some code for this again, but it seems to stop working after ##n=13##.

Python:
def recursive_tan(n):
    """This function returns tan[(pi/4)/2^n] using direct recursion.

    Input: non-negative integer
    Output: tan[(pi/4)/2^n]

    """
    if n==0:
        return 1
    else:
        dnm=recursive_tan(n-1)
        nmr=math.sqrt(dnm**2+1)-1
        return nmr/dnm

def new_pi(n):
    """This function calculates an estimate of pi using direct recursion.
    It was derived using the est_pi_8th and hypotenuse_sequence functions,
    and the relation described by the former.

    Input: non-negative integer
    Output: estimate of pi

    """
    #Starts to diverge from intended value after n = 13#
    if n==0:
        return 2*math.sqrt(2)
    x=new_pi(n-1)/2**(n+1)
    y=1-x/recursive_tan(n-1)
    z=math.sqrt(x**2+y**2)
    return 2**(n+1)*z
 
  • #13
That works.
Eclair_de_XII said:
I wrote some code for this again, but it seems to stop working after n=13n=13.
Rounding errors. Your formula has a large cancellation in the numerator where you subtract 1 from something minimally larger than 1, that tends to amplify rounding errors.

Try ##t_{n+1}=\frac{\sqrt{t_n^2+1}-1}{t_n} = \frac{t_n}{\sqrt{t_n^2+1}+1}##. The trick here is ##a-b=\frac{a^2-b^2}{a+b}## where a is the square root and b=1. After the square root is gone the numerator can be simplified, getting rid of the cancellation. In Excel the first expression gets worse after 12 steps while the second expression leads to an error too small to calculate.

##2^n t_n## does converge to ##\frac{\pi}{4}##, indeed.
 
  • Like
Likes Eclair_de_XII and Klystron
  • #14
mfb said:
Rounding errors. Your formula has a large cancellation in the numerator where you subtract 1 from something minimally larger than 1, that tends to amplify rounding errors.

Try ##t_{n+1}=\frac{\sqrt{t_n^2+1}-1}{t_n} = \frac{t_n}{\sqrt{t_n^2+1}+1}##. The trick here is ##a-b=\frac{a^2-b^2}{a+b}## where a is the square root and b=1.

I see. Thank you for the tip.

mfb said:
##2^n t_n## does converge to ##\frac{\pi}{4}##, indeed.

Of course. The small angle approximation method would be the most ideal option for estimating ##\pi##, considering the nature of the sequence of angles ##\{\theta_n\}_{n\in \mathbb{N}}=\{(\frac{\pi}{4}\cdot 2^{-n})\}_{n\in \mathbb{N}}## used for the estimation. That is to say, the nature of the sequence used to substitute the ##\tan## function evaluated at these angles.

Since ##\theta_n\rightarrow 0## as ##n\rightarrow \infty##:

(1) ##\sin(\theta_n)\rightarrow \theta_n##
(2) ##\cos(\theta_n)\rightarrow 1##

Hence,

##\lim_{n\rightarrow \infty} t_n = \lim_{n\rightarrow \infty} \tan(\theta_n)=\frac{\lim_{n\rightarrow \infty} \sin(\theta_n)}{\lim_{n\rightarrow \infty} \cos(\theta_n)} \\ =\frac{\lim_{n\rightarrow \infty} \theta_n}{1}=\lim_{n\rightarrow\infty} \theta_n=\lim_{n\rightarrow\infty}(\frac{\pi}{4} \cdot 2^{-n})##

Thanks for the insight.
 
Last edited:

1. What is Archimedes' method for estimating Pi?

Archimedes' method for estimating Pi involves inscribing a regular polygon inside a circle and calculating its perimeter, then repeating the process with a larger number of sides to get a more accurate estimation.

2. How does this method compare to other methods for estimating Pi?

This method is considered one of the most accurate and efficient ways to estimate Pi, as it only requires basic geometric principles and can be easily replicated with increasing precision.

3. Are there any limitations to this method?

One limitation of this method is that it can only provide an approximation of Pi, and the accuracy depends on the number of sides used in the polygon. Additionally, it assumes that Pi is a rational number, which has not been proven.

4. Can this method be used in modern times?

Yes, Archimedes' method is still used in modern times to estimate Pi. It has been refined and improved upon, but the basic principles remain the same.

5. How does this method contribute to our understanding of Pi?

This method is significant in that it was one of the earliest attempts to calculate the value of Pi and has laid the foundation for other methods and formulas used today. It also demonstrates the mathematical genius of Archimedes and his contributions to the field of mathematics.

Similar threads

Replies
6
Views
1K
  • Programming and Computer Science
Replies
8
Views
796
Replies
17
Views
3K
  • Programming and Computer Science
Replies
1
Views
753
  • Programming and Computer Science
Replies
18
Views
1K
  • Programming and Computer Science
Replies
10
Views
724
  • General Math
2
Replies
35
Views
2K
  • General Math
Replies
16
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
3
Views
1K
Replies
3
Views
799
Back
Top