2 supper928505054 supper928505054 于 2016.03.06 15:22 提问

c语言,用泰勒级数求e的近似值。直到最后一项小于1e-6为止。

#include "stdio.h"
void main()
{
float e=1.0,t=1.0;
int n=1;
while(1/t>(1e-6)) //我没想明白是t>(1e-6),不是说直到最后一项小于1e-6吗,为什么是大于号
{
t=t*n; //得到 n!
e=e+1/t; //累加(1/n!),即计算此行前 e = 1+(1/1!)+(1/2!)+....+(1/(n-1)!)再加上(1/n!)
n++; //n : 2 3 4 ...
}
printf("e=%8.6f\n",e);
}
我想我连泰勒级数是什么都没搞清楚还有就是while里边为什么是1/t<(1e-6)

2个回答

yishuixs
yishuixs   2016.03.06 17:43
已采纳

泰勒级数说白了就是一个函数使用函数上某个点的导数来表示,当连加项趋于无穷大时,就无限接近这个函数。泰勒级数在近似计算中的用处很大,在计算方法里也有很大的使用价值。

你的代码里1/t代表无穷小的意思,一是浮点数不准确,二是只要1/t小于1ppm即可满足要求,这在计算机效率上是最高的

请采纳!

bealing
bealing   Rxr 2016.03.06 15:55

最后一项就是1/t,只要1/t>(1e-6)就继续计算,直到最后一项小于1e-6 (应该是1/t>=(1e-6))

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
6.9.编程计算e的近似值。直到最后一项的绝对值小于0.001时为止,输出e的值并统计累加的项数。
#include<stdio.h> #include<math.h> main() { int n=1,count=1; double sum=1,term=1; while(fabs(term)>=1e-5) { term=term*(1.0/n); sum=sum+term; n++; count++; } printf("sum=%f,count=%d\n",sum,count); }
使用级数求π的近似值.
#include #include using namespace std; int main() { int n=1,k=1; double s=0,t=0,pi; do { s=s+t; t=k/(2*(n++)-1); k=-k; } while(fabs(t)>1e-20); pi=4*s; cout<<pi; } 为啥错了,我擦,求解释 好吧,我知道了,
【c语言】用π/4 ≈ 1 - 1/3 + 1/5 - 1/7 +... 公式求π的近似值,直到发现某一项的绝对值小于10^6为止。
// 用π/4 ≈ 1 - 1/3 + 1/5 - 1/7 +... 公式求π的近似值,直到发现某一项的绝对值小于10^6为止。 #include #include int main() { double sign = 1.0; int i; double sum = 0.0; for(i = 1;fabs(i) < pow( 10,6 ); i = i + 2) { su
利用泰勒级数计算e的值
计算e的近似值,当最后一项的绝对值小于10^-5时认为达到了精度要求,并统计总共累加了多少项?
(bok) 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项?
/* 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项? */ #include<stdio.h> #include<math.h>void main() { int n=1,count=0; float x; doub
C++上机报告 利用公式计算π=4(1-1/3+1/5-1/7+1/9-...)的近似值,直到括号中最后一项的绝对值小于0.000001为止。
上机内容:       利用公式计算π=4(1-1/3+1/5-1/7+1/9-...)的近似值,直到括号中最后一项的绝对值小于0.000001为止。 上机目的:锻炼思维能力。 我的程序: /* * 程序的版权和版本声明部分: * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 文件名称:1.cp
使用格里高利公式求π的近似值,要求精确到最后一项的绝对值小于10–4
格里高利公式: π4=1−13+15−17+...\frac{π}{4} = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + ...#include "stdio.h" #include "math.h"int main(void) { double pi4 = 0; double j = 0; double i = 1;
用e=1/1!+1/2!+1/3!+……公式求e的近似值,直到发现某一项的值小于10^(-5)为止;
1、         用e=1/1!+1/2!+1/3!+……公式求e的近似值,直到发现某一项的值小于10^(-5)为止;  #include #include int main() { int n=1; float e=1,t=1,f=1; do{ f=f*n; t=1/f; e=e+t; n++; }while (t>=1e-6); printf("e=%f\n"
利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项?
/* 利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-... 计算sin(x)的值。要求最后一项的绝对值小于10^(-5), 并统计出此时累计了多少项? */#include<stdio.h> #include<math.h> #define M 0.000001void main() { int x,i,k,m=-1;;
用e ≈1+1/1!+1/2!+1/3!+……求e的近似值,要求误差小于0.00001。
用e ≈1+1/1!+1/2!+1/3!+……求e的近似值,要求误差小于0.00001。