#OK to post homework #Joseph Koutsoutis, 03-12-2025, Assignment 14pi #1 JesusG := proc(N) local n: add((-1)^n * binomial(2*n, n)^5 * (820*n^2 + 180*n + 13) / 2^(20*n), n=0..N): end: #After setting Digits := 1000, I found #evalf(JesusG(10) - 128 / Pi^2) is roughly 1 x 10^(-32) #evalf(JesusG(100) - 128 / Pi^2) is roughly 4 x 10^(-304) #2 #This is a Maple implementation of the Chudnovsky algorithm described here: #https://en.wikipedia.org/wiki/Chudnovsky_algorithm binary_split := proc(a,b) local Pab, Qab, Rab, m, Pam, Qam, Ram, Pmb, Qmb, Rmb: if b = a+1 then: Pab := -(6*a - 5)*(2*a - 1)*(6*a - 1): Qab := 10939058860032000 * a^3: Rab := Pab * (545140134*a + 13591409): else: m := floor((a + b) / 2): Pam, Qam, Ram := binary_split(a, m): Pmb, Qmb, Rmb := binary_split(m, b): Pab := Pam * Pmb: Qab := Qam * Qmb: Rab := Qmb * Ram + Pam * Rmb: fi: Pab, Qab, Rab: end: Chudnovsky := proc(n) local P1n, Q1n, R1n: P1n, Q1n, R1n := binary_split(1, n): 426880 * sqrt(10005) * Q1n / (13591409*Q1n + R1n): end: