""" Berechnung von pi über arctan(x) (c) Jürgen Meier www.3d-meier.de 26.06.2024 """ import math import decimal # Anzahl Kommastellen decimal.getcontext().prec = 105 a1 = decimal.Decimal(1) a2 = decimal.Decimal(2) a4 = decimal.Decimal(4) a12 = decimal.Decimal(12) a32 = decimal.Decimal(32) a68 = decimal.Decimal(68) a100 = decimal.Decimal(100) a183 = decimal.Decimal(183) a239 = decimal.Decimal(239) a1023 = decimal.Decimal(1023) a5832 = decimal.Decimal(5832) a110443 = decimal.Decimal(110443) a4841182 = decimal.Decimal(4841182) a6826318 = decimal.Decimal(6826318) #print(a1023**2+1) m1 = decimal.Decimal(-1) x1 = a1/a239 x2 = a1/a1023 x3 = a1/a5832 x4 = a1/a110443 x5 = a1/a4841182 x6 = a1/a6826318 # Reihenentwicklung für arctan(x) k = 300 t1 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x1**(a2*n + a1)))/(a2*n + a1) t1 = t1 + a t2 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x2**(a2*n + a1)))/(a2*n + a1) t2 = t2 + a t3 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x3**(a2*n + a1)))/(a2*n + a1) t3 = t3 + a t4 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x4**(a2*n + a1)))/(a2*n + a1) t4 = t4 + a t5 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x5**(a2*n + a1)))/(a2*n + a1) t5 = t5 + a t6 = 0 for n in range(0, k + 1): a = (((m1)**n)*(x6**(a2*n + a1)))/(a2*n + a1) t6 = t6 + a p = a183*t1 + a32*t2 - a68*t3 +a12* t4 - a12*t5 - 100*t6 print(4*p) print(((complex(239, 1)/complex(239, -1))**183)* ((complex(1023, 1)/complex(1023, -1))**32) * ((complex(5832, 1)/complex(5832, -1))**-68) * ((complex(110443, 1)/complex(110443, -1))**12) * ((complex(4841182, 1)/complex(4841182, -1))**-12) * ((complex(6826318, 1)/complex(6826318, -1))**-100))