matlab用公式π/4≈1-1/3+1/5-1/7+…求圆周率π的近似值,直到最后一项绝对值小于10-6(编写脚本文件?

,并运行验证正确性)... ,并运行验证正确性) 展开
 我来答
lhmhz
高粉答主

2020-03-17 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

如何用公式π/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这么短?
勇敢的王
2020-03-17 · TA获得超过285个赞
知道小有建树答主
回答量:755
采纳率:59%
帮助的人:66.5万
展开全部
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项累加,控制符号正负交替。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式