第二篇:数学实验报告Pi 值的计算
数值积分法计算π
n=5000;y[x_]:=4/(1+x*x);
s1=(Sum[y[k/n],{k,1,n-1}]+(y[0]+y[1])/2)/n;
s2=(y[0]+y[1]+2*Sum[y[k/n],{k,1,n-1}]+4*Sum[y[(k-1/2)/n],{k,1,n}])/(6*n); Print[{N[s1,20],N[s2,30],N[Pi,30]}]
泰勒级数法计算π ?3.1415926469231265718,3.14159265358979323846264334360,3.14159265358979
T[x_,n_]:=Sum[(-1)^k*x^(2k+1)/(2k+1),{k,0,n}];
N[4*T[1,20000],20]//Timing
T[x_,n_]:=Sum[(-1)^k*x^(2k+1)/(2k+1),{k,0,n}];
Print[N[4*(T[1/2,260]+T[1/3,170]),150]];
Print[N[16*(T[1/5,110]-4*T[1/239,30]),150]]; Print[N[Pi,150]] ?
9.25Second,3.1416426510898869?3.14159265358979323846264338327950288419716939937510582097494459230781645058223172535940813
2.89054809346530980659035048572237571973xxxxxxxxxxxx77135376781907690xxxxxxxxxxxx03167814
3.14159265358979323846264338327950288419716939937510582097494459230781645058223172535940813
蒙特卡罗法计算π
n=10000;p={};
Do[m=0;
Do[x=Random[];y=Random[];
If[x^2+y^2<=1,m++],{k,1,n}];
AppendTo[p,N[4m/n]],{t,1,10}];
Print[p]; Sum[p[[t]],{t,1,10}]/10 ?
3.1592,3.1476,3.1496,3.1352,3.126,3.156,3.1344,3.1504,3.1372,3.1
3.14472