2016-09-27 5 views
0

Мне нужно найти количество терминов, необходимых для приближения pi к n значимых цифр с использованием суммы серии Лейбница. Я уже нашел сумму и аппроксимацию pi, но я не знаю, как начать писать функцию, которая сравнивает sigfigs в двух переменных или даже как определить количество sigfigs в заданном числе. Любая помощь будет оценена, спасибо.Найдите количество терминов, необходимых в формуле Лейбница, для приближения pi к n значимым цифрам?

sum = 0 
for i in range(800001): 
    int = ((-1)**i)/(2*i+1) 
    sum += int 
print(sum) 
pi = sum*4 

печати (пи)

ответ

1

Из контекста этого вопроса, я подозреваю, что вы на самом деле не интересно знать, как проверить наименее значащих цифр, а знать, когда ваше приближение ' достаточно хорошо '.

При приближении к любому значению, вычисляя сумму последовательности, самый простой способ прекратить вычисление - улучшить ответ до тех пор, пока он не окажется достаточно близко, чтобы его квадрат (или абсолютное значение) отличался от последнего слагаемого менее чем на заданный допуск.

Хороший способ сделать это - проверить, а не использовать цикл for, использовать цикл while, который проверяет, отличается ли ответ от предыдущего ответа указанным выше допуском.

1

Коэффициент (-1) ** i означает, что члены в ряду имеют знакопеременные знаки. Кроме того, величины членов монотонно уменьшаются. Одним из свойств таких серий является то, что ошибка, которую вы понесете, усекая серию, меньше, чем минимальный термин, который был включен.