3. 给定精度e,求(1+x)^α,|x|<1的近似值和迭代次数

【问题描述】

给定一个精度e,用下列Taylor公式计算(1+x)a,|x|<1的近似值。

(1+x)a=1+ax+a(a-1)x2/2!+...+[a(a-1)×...×(a-n+1)]xn/n!+..., |x|<1

其中|x|<1,e为实数,a为实数。编写程序根据用户输入的x(|x|<1)、a和e的值,利用上述Taylor展开式计算(1+x)a的近似值,要求前后两次迭代之差的绝对值小于e,给出相应的最小迭代次数n和最后一次计算的(1+x)a的值。
【输入形式】

从控制台输入小数x(|x|<1且x不等于0)、实数a和实数e(0<e<|x|),两数中间用空格分隔。

【输出形式】

控制台输出公式结果:输出迭代次数n和最后一次计算的(1+x)a的值(以一个空格分隔,并且输出(1+x)a时要求小数点后保留8位有效数字)。

【样例输入1】

0.63628 0.5 0.00000001

【样例输出1】

28 1.27917161

【样例输入2】

0.47683 -0.5 0.00000001

【样例输出2】

23 0.82287667

【样例说明】

输入x0.63628,a0.5,e0.00000001(小数点后8位),当n28时,根据Taylor展开式求得(1+x)a近似值为1.279171611(小数点后9位),n29时,根据Taylor展开式求得(1+x)a近似值为1.279171605(小数点后9位),两结果之差绝对值约为0.000000006(小数点后9位),小于要求的精度,所以最小迭代次数为28,最后一次计算的(1+x)a的值为1.27917161(小数点后保留8位有效数字);同样,输入x0.47683,a-0.5,e0.00000001(小数点后8位),当n23时,根据Taylor展开式求得(1+x)a近似值为0.822876669(小数点后9位),n24时,根据Taylor展开式求得(1+x)a近似值为0.822876664(小数点后9位),两结果之差绝对值约为0.000000005(小数点后9位),小于要求的精度,所以最小迭代次数为23,最后一次计算的(1+x)a的值为0.82287667(小数点后保留8位有效数字)

注意:为保证数据的准确性和一致性,请使用double数据类型保存计算结果。
【评分标准】

该题要求输出上述公式的计算结果,共有5个测试点。上传C语言文件名为taylor.c

难度等级: 2
总通过次数: 1
总提交次数: 4