Its very easy to get the value of π. As π is a floating point number declare a long variable then assign 'pi' to that long variable you will get the value.
Attached is code to compute Ramanujan's formula for pi, voted the ugliest formula of all time.
.
Actually I think it's amazing that something analytical that complicated and with a variety of operations (addition, division, multiplication, factorial, square root, exponentiation, and summation) could create something as "simple" as pi.
Unfortunately it seems to get to within MATLAB's precision after just one iteration - I'd have like to see how it converges as afunction of iteration (summation term). (Hint: help would be appreciated.)
As I recall, these approximations tend to give a roughly fixed number of digits per term. I'll do it using HPF, but syms would also work.
DefaultNumberOfDigits 500
n = 10;
piterms = zeros(n+1,1,'hpf');
f = sqrt(hpf(2))*2/9801*hpf(factorial(0));
piterms(1) = f*1103;
hpf396 = hpf(396)^4;
for k = 1:n
hpfk = hpf(k);
f = f*(4*hpfk-3)*(4*hpfk-2)*(4*hpfk-1)*4/(hpfk^3)/hpf396;
piterms(k+1) = f*(1103 + 26390*hpfk);
end
piapprox = 1./cumsum(piterms);
pierror = double(hpf('pi') - piapprox))
pierror =
-7.6424e-08
-6.3954e-16
-5.6824e-24
-5.2389e-32
-4.9442e-40
-4.741e-48
-4.5989e-56
-4.5e-64
-4.4333e-72
-4.3915e-80
-4.3696e-88
So roughly 8 digits per term in this series. Resetting the default number of digits to used to 1000, then n=125, so a total of 126 terms in the series, we can pretty quickly get a 1000 digit approximation to pi:
pierror = hpf('pi') - piapprox(end + [-3:0])
pierror =
HPF array of size: 41
|1,1| -1.2060069282720814803655e-982
|2,1| -1.25042729756426e-990
|3,1| -1.296534e-998
|4,1| -8.e-1004
So as you see, it generates a very reliable 8 digits per term in the sum.
I also ran it for 100000 digits, so 12500 terms. It took a little more time, but was entirely possible to compute. I don't recall which similar approximation I used some time ago, but I once used it to compute 1 million or so digits of pi in HPF. HPF currently stores a half million digits as I recall.
As far as understanding how to derive that series, I would leave that to Ramanujan, and only hope he is listening on on this.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.