Answer:
I am writing a Python program:
def approxPIsquared(error):
previous = 8
new_sum =0
num = 3
while (True):
new_sum = (previous + (8 / (num ** 2)))
if (new_sum - previous <= error):
return new_sum
previous = new_sum
num+=2
print(approxPIsquared(0.0001))
Explanation:
I will explain the above function line by line.
def approxPIsquared(error):
This is the function definition of approxPlsSquared() method that takes error as its parameter and approximates constant Pi to within error.
previous = 8 new_sum =0 num = 3
These are variables. According to this formula:
Pi^2 = 8+8/3^2+8/5^2+8/7^2+8/9^2+...
Value of previous is set to 8 as the first value in the above formula is 8. previous holds the value of the previous sum when the sum is taken term by term. Value of new_sum is initialized to 0 because this variable holds the new value of the sum term by term. num is set to 3 to set the number in the denominator. If you see the 2nd term in above formula 8/3^2, here num = 3. At every iteration this value is incremented by 2 to add 2 to the denominator number just as the above formula has 5, 7 and 9 in denominator.
while (True): This while loop keeps repeating itself and calculates the sum of the series term by term, until the difference between the value of new_sum and the previous is less than error. (error value is specified as input).
new_sum = (previous + (8 / (num ** 2))) This statement represents the above given formula. The result of the sum is stored in new_sum at every iteration. Here ** represents num to the power 2 or you can say square of value of num.
if (new_sum - previous <= error): This if condition checks if the difference between the new and previous sum is less than error. If this condition evaluates to true then the value of new_sum is returned. Otherwise continue computing the, sum term by term.
return new_sum returns the value of new_sum when above IF condition evaluates to true
previous = new_sum This statement sets the computed value of new_sum to the previous.
For example if the value of error is 0.0001 and previous= 8 and new_sum contains the sum of a new term i.e. the sum of 8+8/3^2 = 8.88888... Then IF condition checks if the
new_sum-previous <= error
8.888888 - 8 = 0.8888888
This statement does not evaluate to true because 0.8888888... is not less than or equal to 0.0001
So return new_sum statement will not execute.
previous = new_sum statement executes and now value of precious becomes 8.888888...
Next num+=2 statement executes which adds 2 to the value of num. The value of num was 3 and now it becomes 3+2 = 5.
After this while loop execute again computing the sum of next term using new_sum = (previous + (8 / (num ** 2)))
new_sum = 8.888888.. + (8/(5**2)))
This process goes on until the difference between the new_sum and the previous is less than error.
screenshot of the program and its output is attached.