끈 진폭에서 얻는 파이
Arnab Priya Saha와 Aninda Sinha의 논문에서 가져왔습니다. 에 대한 새로운 급수와 그 수렴성입니다.
여기서 는 포흐하머 기호입니다.
는 수렴을 최적화하기 위한 자유 매개변수입니다. 가 무한대로 가면 이 급수는 고전적인 마다바 급수가 됩니다. 가 10에서 100 사이이면 이 급수는 30개 항만으로 소수점 이하 열 자리까지 수렴합니다. 이는 소수점 이하 열 자리까지 수렴하는 데 50억 개의 항이 필요한 고전적인 마다바 급수보다 훨씬 효율적입니다.
이는 Python으로 다음과 같이 구현할 수 있습니다:
import mpmath as mp
def mp_calculate_pi(lambda_val, iters):
mp.dps = 100
pi = mp.mpf(4)
n = 1
prev_pi = 0
factorial = mp.mpf(n)
for i in range(iters):
term1 = 1.0 / factorial
term2 = 1.0 / (n + lambda_val) - 4 / (2 * n + 1)
term3 = ((2 * n + 1) ** 2) / (4 * (n + lambda_val)) - n
pochhammer = 1
for i in range(n - 1):
pochhammer *= term3 + i
prev_pi = pi
pi += term1 * term2 * pochhammer
# print to 30 decimal places using mpmath
approx = mp.nstr(pi, 100)
# Compare to mp.pi to calcualte the delta
delta = abs(pi - mp.pi)
# numbers of digits that pi approximate is correct to
accuracy = round(abs(mp.log(abs(pi - mp.pi), 10)))
# Print a line with the current iteration, pi, delta
print(f'{n} {approx} {delta} {accuracy}')
n += 1
factorial = factorial * n
return pi, n - 1
lambda_val = 42
pi, n = mp_calculate_pi(lambda_val, 30)