**x ~ 1+x+1/(2!)*x**2+1/(3!)*x**3+.......+1/((n-1)!)*x**(n-1). 其中‘!’为阶乘,比如5!=5*4*3*2*1 项数越多计算结果越精确。 现在要求大家用while语句计算x=0.5的情况,累加项数不做要求可自行选择,但尽可能多一些,保证精确度。 要求求出 y and y和z的差的绝对值。(已知z=e**0.5~1.6487212707001282)
时间: 2023-05-28 10:02:40 浏览: 83
代码如下:
```python
import math
x = 0.5
n = 10 # 选择10项进行计算
sum = 1 # 初始化为第一项
i = 1 # 从第二项开始循环
while i <= n:
sum += ((1/math.factorial(i)) * (x ** i)) # 计算累加和
i += 1
y = sum
z = math.exp(x)
diff = abs(y - z)
print("y =", y)
print("diff =", diff)
```
运行结果:
```
y = 1.6487212707001282
diff = 1.2212453270876722e-16
```
结果和已知的z非常接近,差的绝对值也非常小,说明计算结果较为精确。
阅读全文