展开全部
如何用公式π/4≈1-1/3+1/5-1/7+…求圆周率π的近似值,直到最后一项绝对值小于10^-6。用matlab的for循环语句可以实现。
1、首先将1-1/3+1/5-1/7+…,用求和符号来简化,即Σ(-1)^(n-1)*1/(2*n-1)
2、令s=0,这样便于累加,即s=s+(-1)^(n-1)*1/(2*n-1)
3、当s(n)-s(n-1)<10^-6,则认为达到预期目的。此时的s(n)就是我们要求的值(π/4)
4、实现上述功能的代码。
s=0;
n=1;
while 1
s1=s;
s=s+(-1)^(n-1)*1/(2*n-1);
if abs(s-s1)<1e-6
n
disp('逼近值'),s
disp('π/4'),pi/4
return
end
n=n+1;
end
5、当绝对值小于10^-3的结果(因小于10^-6的运行时间较长)
更多追问追答
追答
求π近似值,s应该为
s=s+4*(-1)^(n-1)*1/(2*n-1)
运行结果
追问
那怎么检验文件的正确性?我们要求的是输出π,可是我如果让s*4的话,输出的是3.1416这么短?
展开全部
sumpi=0.0;
%to make sure of 1/(2n-1)<1e-6
itemnum=4/1e-6/2+1;
signi=1;
for k=1:1:itemnum
sumpi=sumpi+4.0*signi/(2*k-1);
signi=signi*(-1);
end
sumpi
前一段,求展开式的总项数,最后一项绝对值表达为4/(2n-1)<1E-6,
求出n至少=4/1e-6/2+1;
然后把n项累加,控制符号正负交替。
%to make sure of 1/(2n-1)<1e-6
itemnum=4/1e-6/2+1;
signi=1;
for k=1:1:itemnum
sumpi=sumpi+4.0*signi/(2*k-1);
signi=signi*(-1);
end
sumpi
前一段,求展开式的总项数,最后一项绝对值表达为4/(2n-1)<1E-6,
求出n至少=4/1e-6/2+1;
然后把n项累加,控制符号正负交替。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询