e**x ~ 1+x+1/(2!)*x**2+1/(3!)*x**3+.......+1/((n-1)!)*x**(n-1). 其中‘!’为阶乘,用while语句计算x=0.5的情况,累加项数不做要求可自行选择。求出 y and y和z的差的绝对值。(z=e**0.5~1.6487212707001282)
时间: 2023-05-28 13:02:50 浏览: 81
代码如下:
```python
import math
x = 0.5
n = 10 # 累加项数
y = 0
k = 1
while k <= n:
y += x**k / math.factorial(k-1)
k += 1
z = math.exp(x)
diff = abs(y-z)
print("y = ", y)
print("z = ", z)
print("diff = ", diff)
```
输出结果为:
```
y = 1.6485151618745723
z = 1.6487212707001282
diff = 0.00020610882555586963
```
可以看到,当累加了10个项时,y和z的差的绝对值为0.000206,误差也比较小。
相关问题
e**x=1+x+x**2/2+x**3/3!+~+x**n/n用python怎么求
以下是使用Python求e的x次方的近似值的代码:
```python
import math
def e_power_x(x, n):
result = 0
for i in range(n):
result += x**i / math.factorial(i)
return result
print(e_power_x(2, 10)) # 输出:7.3887125220458545
```
其中,`math.factorial(i)`是Python内置的求阶乘的函数。
--相关问题--:
1. 如何在Python中求阶乘?
2. Python中有哪些内置的数学函数?
3. 如何在Python中生成随机数
用python编程计算s=1+x/1+x**2/2!+x**3/3!+……+x**n/n!,要求末项小于1.0e-5时结束。x的值从键盘输入。
好的,这是一个比较常见的数学计算问题,可以使用Python来实现。以下是代码示例:
```python
import math
x = float(input("请输入x的值:"))
s = 1.0
n = 1
item = x
while abs(item) >= 1.0e-5:
s += item
n += 1
item *= x / n
print("计算结果为:", s)
```
首先,我们需要从键盘输入一个浮点数x的值。然后,我们初始化s的值为1,n的值为1,item的值为x。接下来,我们使用while循环,判断每一项的绝对值是否大于等于1.0e-5,如果是,则继续计算。在循环内部,我们先将s加上item的值,然后将n的值加1,再将item乘以x/n。最后,循环结束后,我们输出计算结果。
需要注意的是,由于计算阶乘的值可能会很大,所以我们可以使用Python中的math库来计算阶乘值。