习题4-2 求幂级数展开的部分和
已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
通过代码
#include<stdio.h>
#include<math.h>
int main()
{
double x
, sum
= 1, i
= 1, j
= 0;
double power1
= 0 , power2
= 0;
double item
= 1;
scanf("%lf", &x
);
while(fabs(item
) >= 0.00001){
power1
= 1;
for(j
=1; j
<=i
; j
++){
power1
*= j
;
}
power2
= pow(x
, i
);
item
= power2
/power1
;
sum
+= item
;
i
++;
}
printf("%.4lf", sum
);
}
问题
1.阶乘的取得,通过定义power1 = 1,循环乘【1-i】得到。 2.求和的第一项item,不能通过power2/power1计算 ,因为power1初始值为0,不能当作除数。
应用函数
double fabs(double x
);
double pow(double x
, double y
);