目录
一、利用无穷级数展开式求π的近似值
(1)方法一
y = 0;
g = -1;
n = input('n=?');
for i = 1:n
g = -g;
y = y+g*1/(2*i-1);
end
pai = 4*y
易错点:2*i 的*不能丢
(2)方法二:优化
向量计算方法写出的程序更简洁,更具matlab特点
n = input('n=?');
x = 1:2:(2*n-1);
y = (-1).^(2:n+1)./x;
pai = sum(y)*4
二、利用定积分的近似值求π的近似值
求定积分的三种方法:矩形法,梯形法,simpson法
这里我们用梯形法,其他可以同理举一反三
a = 0;
b = 1;
n = input('n=?');
h = (b - a) / n;
x = a : h : b;
f = sqrt(1-x.*x);
s = [ ];
for k = 1: n
s1=(f(k)+f(k+1))*h/2;
s= [s,s1];
end
pai=4 * sum(s)
n:把积分区间分成n等分
h:计算每个区间的宽度
s:上底+下底(梯形面积公式)
三、利用蒙特卡洛法求π的近似值
原理:随机投点,点在圆内的概率P=π/4
所以能求出P就能求出π
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