# Matthew Esaia, 3/12/2025, Homework 14pi Help:=proc(): print(`JesusG(N), RealFrac(), Chudnovsky(E)`): end: ## PROBLEM 1 #JesusG(n): uses N terms of Jesus Guillera's formula to compute an #approximation to 128/pi^2 JesusG:=proc(N) local n: evalf(add((-1)^n * (binomial(2*n, n))^5 * (820*n^2 + 180*n + 13) / (2^(20*n)), n=0..N), 500): end: # JesusG(10) has an error of 1.048 x 10^-32 # JesusG(100) has an error of 4.23 x 10^-304 #RealFrac(): true value of 128/pi^2 RealFrac:=proc(): return evalf(128 / Pi^2, 500): end: ## PROBLEM 2 #Chudnovsky(E): approximates pi to E digits of precision Chudnovsky:=proc(E) local i,err,sum,const: sum := 0: err := evalf(Pi - sum): const := 1 / (426880 * sqrt(10005)): for i from 0 while err > 10^(-E) do sum := sum + ( (-1)^i * (6*i)! * (545140134*i + 13591409) / ((3*i)! * (i!)^3 * (640320)^(3*i))): err := evalf(abs(Pi - (1 /(const*sum))), E + 10): #print(i, evalf(1 /(const*sum), E)): od: return evalf(1 /(const*sum), E): end: