MATLAB题目:用π/4=1-1/3+1/5-1/7+......公式求π的近似值,直到某一项的绝对值小于10^(-6)为止。

我的程序如下function sum=sum_sum
n
if(abs(1/(2*n-1))*(-1)^(n-1)<1e(-10))
m=n;
for i=1:m
sum=0;
a=abs(1/(2*i-1)*(-1)^(i-1));
sum=sum+a;
end
end
sum;
总是出错,求高人指点,不胜感激。

sum=0

n=1

while 1/(2*n-1)>1e-6

sum=sum+1/(2*n-1)*((-1)^(n-1));

n=n+1;

end

n

sum*4

例如:

do while (abs(j-i)>=1/1000)

j=1

i=j+1/(2i+1)

j=i

enddo

print(j)

扩展资料:

计算机语言中,正数的二进制首位(即符号位)为0,负数的二进制首位为1。

32位系统下,4字节数,求绝对值的函数为abs(x)。

无论是绝对值的代数意义还是几何意义,都揭示了绝对值的以下有关性质:

(1)任何有理数的绝对值都是大于或等于0的数,这是绝对值的非负性。

(2)绝对值等于0的数只有一个,就是0。

(3)绝对值等于同一个正数的数有两种,这两个数互为相反数或相等。

(4)互为相反数的两个数的绝对值相等。

(5)正数的绝对值是它本身。

参考资料来源:百度百科-绝对值

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-11
如果我没看错的话,你if条件应该写成:1/(2*n-1)<1e-10,(n>=1)。你的问题主要在于:abs(1/(2*n-1))*(-1)^(n-1)会出现小于零的情况。 另外,你应该使用while循环,或者无条件for循环才能达到要求。
第2个回答  推荐于2018-02-27
sum=0
n=1
while 1/(2*n-1)>1e-6
sum=sum+1/(2*n-1)*((-1)^(n-1));
n=n+1;
end
n
sum*4本回答被提问者和网友采纳
第3个回答  2012-04-11
一楼对的

m=1;
sum = 0;
while 1
a = (1/(2*m-1))*(-1)^(m-1);
sum=sum+a;
if ( abs(a) < 1e-7)
break;
end
m=m+1;
end
sum*4

MATLAB题目:用π\/4=1-1\/3+1\/5-1\/7+...公式求π的近似值,直到某一项的绝...
n sum*4 例如:do while (abs(j-i)>=1\/1000)j=1 i=j+1\/(2i+1)j=i enddo print(j)

c语言题:用π\/4=1-1\/3+1\/5-1\/7+...公式求π的近似值,直到最后一项的绝对...
q=(1.0\/n)*p; \/\/1.0\/n s+=q;} printf("%lf\\n",s*4);\/\/乘4 }

matlab用公式π\/4≈1-1\/3+1\/5-1\/7+…求圆周率π的近似值,直到最后一 ...
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...

用matlab求π的近似值 π\/4=1-1\/3+1\/5-1\/7……直到某一项的绝对值小于10...
如下:y=0;for n=1:1000000 xx=(-1)^(n-1)\/(2*n-1);if abs(xx)>10^(-6)y=y+xx;else break end end fprintf('π的近似值为%.6f ,共需迭代%d步\\n',y*4,n)。介绍 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、...

题目:用pi\/4=1-1\/3+1\/5-1\/7+...公式求π的近似值,直到某一项的绝对值...
明显错误有三:for循环中不能嵌套if语句,所以for循环那一句错误。a=b\/c;这一句第一次进入循环时还没有赋值,属于使用垃圾值,错。for中的fabs(a)<1e-6表达式逻辑错,应该是fabs(a)>1e-6才对。重写如下——

用matlab求π的近似值 π\/4=1-1\/3+1\/5-1\/7……直到某一项的绝对值小于10...
syms nx=(-1)^(n-1)\/(2*n-1);n=1;xx=eval(x);%%%可换为xx=subs(x)y=0;while abs(xx)>10^(-6)y=y+xx;n=n+1;xx=eval(x);enddisp(['π的近似值为' num2str(y*4)])上面的方法由于涉及符号运算,所以特别特别慢,我试了一下...

...1\/7+...公式 求π的近似值,直到某一项的绝对值小于 为止
s=-s是为了使1和-1交错出现 t=s\/n是得到1,-1\/3,1\/5,-1\/7,……n=n+2就是保证坟墓每次增加2 然后pi=pi+t就是求和 最后说一句这个式子是等式,就用等号就行了,不必用约等号

还是这道题:根据π\/4=1-1\/3+1\/5-1\/7...求π的近似值,直到最后一项的绝对...
这个是精确度的问题.因为本来式子就是近似运算.改成%.8lf能看到结果是3.14159245.也就是说这个估算的式子在0.0000001这边的精确度不够.我在while后面的条件里又加了一个0,结果如上图所示.

C语言解答:利用公式:π\/4=1-1\/3+1\/5-1\/7+……,求π的近似值,直到最后一 ...
少了 #inlude <stdio.h>

编程题:用π\/4≈1-1\/3+1\/5-1\/7+……公式求π的近似值,直到最后一项绝对...
Private Sub Command1_Click()Dim sign As Integer, a As Long, pi As DoubleDim i As Integersign = -1i = 1Do a = 2 * i - 1 sign = -1 * sign pi = pi + (1 \/ a) * sign i = i + 1Loop While Abs((1 \/ a) * sign) > 0.0001pi = pi * 4Print...

相似回答