思路一:
a=pi%沒有;所以要打印a
y=0;
g=-1;
n=input('n=? ');
for i=1:n
g=-g;
y=y+g*1/(2*i-1);%遞歸法求得
end
pai=4*y
結果:
a =3.1416
n=? 1000 %輸入n的值,決定了pi的精確程度
pai =3.1406
思路二:
原理:
梯形法
a=0;
b=1;
%求0~1的定積分
n=input('n=?'); %把積分區間分爲n等分
h=(b-a)/n %計算每個區間的寬度
x=a:h:b; %自變量的取值
f=sqrt(1-x.*x); %f的函數表達式
s=[]; %定義空矩陣
for k=1:n
s1=(f(k)+f(k+1))*h/2; %梯形面積
s=[s,s1]; %s1追加到矩陣s中去
end
%循環結束後s總存放着所有小梯形的面積
pai=4*sum(s)
結果:
pai =
3.1416
思路三:
s=0;%用來統計落在圓內的點數
n=input('n=? ');%投點總數
for i=1:n
x=rand(1);
y=rand(1);
if x*x+y*y<=1%所投的點落在院內
s=s+1;
end
end
pai=s/n*4
結果:
n=? 10000
pai =
3.1356