Leibniz formula for π - Is this any good? (Python)

leibniz formula for pi
nilakantha series python
python program to compute pi
pi approximation python
leibniz formula for pi java
leibniz pi formula in python
π/4 = 1 - 1/3 + 1/5 - 1/7 + . . . python
leibniz formula c++

I'm doing an exercise that asks for a function that approximates the value of pi using Leibniz' formula. These are the explanations on Wikipedia:

Logical thinking comes to me easily, but I wasn't given much of a formal education in maths, so I'm a bit lost as to what the leftmost symbols in the second one represent. I tried to make the code pi = ( (-1)**n / (2*n + 1) ) * 4, but that returned 1.9999990000005e-06 instead of 3.14159..., so I used an accumulator pattern instead (since the chapter of the guide that this was in mentions them as well) and it worked fine. However, I can't help thinking that it's somewhat contrived and there's probably a better way to do it, given Python's focus on simplicity and making programmes as short as possible. This is the full code:

def myPi(n):
    denominator = 1
    addto = 1

    for i in range(n):
        denominator = denominator + 2
        addto = addto - (1/denominator)
        denominator = denominator + 2
        addto = addto + (1/denominator)

    pi = addto * 4

    return(pi)

print(myPi(1000000))

Does anyone know a better function?


The capital sigma here is sigma notation. It is notation used to represent a summation in concise form.

So your sum is actually an infinite sum. The first term, for n=0, is:

(-1)**0/(2*0+1)

This is added to

(-1)**1/(2*1+1)

and then to

(-1)**2/(2*2+1)

and so on for ever. The summation is what is known mathematically as a convergent sum.

In Python you would write it like this:

def estimate_pi(terms):
    result = 0.0
    for n in range(terms):
        result += (-1.0)**n/(2.0*n+1.0)
    return 4*result

If you wanted to optimise a little, you can avoid the exponentiation.

def estimate_pi(terms):
    result = 0.0
    sign = 1.0
    for n in range(terms):
        result += sign/(2.0*n+1.0)
        sign = -sign
    return 4*result

....

>>> estimate_pi(100)
3.1315929035585537
>>> estimate_pi(1000)
3.140592653839794

Leibniz formula for π, formula, asking user at what n-th term she. wants computation. nTerm = int(input('​To what term do you want and. calculate Leibniz formula?')) print(). sum = 0. So I am trying to approximate pi using Leibniz formula. I atleast want to approximate to .5 and .1. Also, when my approximation becomes larger than the precision value, I finish the loop.


The Leibniz formula translates directly into Python with no muss or fuss:

>>> steps = 1000000
>>> sum((-1.0)**n / (2.0*n+1.0) for n in reversed(range(steps))) * 4
3.1415916535897934

Gregory Leibniz formula, Gregory-Leibniz formula for 'pi' # http://en.wikipedia.org/wiki/Leibniz_formula_for​_%CF%80 def calcPi(n): pi,numer = 0,4.0 for i in range(n): denom = (2*i+1) term  I see some resemblance to the Leibniz formula for π, but I can't tell what your goal is. \$\endgroup\$ – 200_success Mar 3 '14 at 10:38 add a comment | 1 Answer 1


Using pure Python you can do something like:

def term(n):
    return ( (-1.)**n / (2.*n + 1.) )*4.

def pi(nterms):
    return sum(map(term,range(nterms)))

and then calculate pi with the number of terms you need to reach a given precision:

pi(100)
# 3.13159290356

pi(1000)
# 3.14059265384

Calculate Pi using Python, No one. So we are going to use the Leibniz Formula to calculate Pi. It's pretty simple actually, to calculate Pi we can use this formula: Where n  Leibniz formula for π - Is this any good? (Python) Ask Question given Python's focus on simplicity and making programmes as short as possible. This is the full code:


The following version uses Ramanujan's formula as outlined in this SO post - it uses a relation between pi and the "monster group", as discussed in this article.

import math

def Pi(x):
    Pi = 0
    Add = 0
    for i in range(x):
        Add =(math.factorial(4*i) * (1103 + 26390*i))/(((math.factorial(i))**4)*(396**(4*i)))
        Pi = Pi + (((math.sqrt(8))/(9801))*Add)
    Pi = 1/Pi
    print(Pi)

Pi(100)

calculating pi in python using Leibniz formula down to the .5 , For your for loop, you want to iterate for a certain number of terms, while your while loop implies you want to repeat until your answer is within some precision (​  This doesn't answer the question. You're saying how to use the Leibniz formula to calculate π to some accuracy. The question is how to get a non-zero value of the formula when you already know you want n terms. – Teepeemm Dec 7 '16 at 3:47


This was my approach:

def estPi(terms):
    outPut = 0.0
    for i in range (1, (2 * terms), 4):
        outPut = (outPut + (1/i) - (1/(i+2)))
    return 4 * outPut

I take in the number of terms the user wants, then in the for loop I double it to account for only using odds.

at 100 terms I get        3.1315929035585537
at 1000 terms I get       3.140592653839794
at 10000 terms I get      3.1414926535900345
at 100000 terms I get     3.1415826535897198
at 1000000 terms I get    3.1415916535897743
at 10000000 terms I get   3.1415925535897915
at 100000000 terms I get  3.141592643589326
at 1000000000 terms I get 3.1415926525880504
Actual Pi is              3.1415926535897932

Got to love a convergent series.

Coding Challenge #140: Pi Approximation with Leibniz Series , I have this Python program for calculating Leibniz of 'pi'. I am not able to shorten it more. Can anyone here optimise/shorten it? s,a,  'pi', using a series summation formula. -Saty. Python Fiddle Python Cloud IDE


Calculating Leibniz of Pi, Pi (π) is one of the most important and fascinating numbers in mathematics. π by using the formula from method #1: π = Circumference / Diameter. Method #2​: Calculating Pi Using an Infinite Series (Gregory-Leibniz series) will accurately calculate Pi to a great number of decimal places. Yes or No! Example 3: Using any() with Python Dictionaries. In the case of dictionaries, if all keys (not values) are false or the dictionary is empty, any() returns False.If at least one key is true, any() returns True.


Calculating Pi using a Python script, Calculate Pi using the Leibniz formula. gistfile1.py. def gen_pi():. denom = 1. positive = True. value = 0. while True: value += (1. / denom) if positive else -(1. Did you know? Pi (π) is one of the most important and fascinating numbers in mathematics. Roughly 3.14, it is a constant that is used to calculate the circumference of a circle from that circle's radius or diameter. Pi is also an irrational number, which means that it can be calculated to an infinite number of decimal places without ever slipping into a repeating pattern. This makes it


Calculate Pi using the Leibniz formula · GitHub, Leibniz's formula converges extremely slowly: it exhibits sublinear convergence. Calculating π to 10 correct decimal places using direct summation of the series  Print the value of π after every fourth calculation, for the first 2000 terms of this series (500 output values). For convenience, your output should insert a newline after every five values, making a table where every row displays five values.