思路一:
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