python 不使用标准模块的西教,采用递推法计算sinx幕级数展开式的近似值,当通项绝对值小手10-7时停1黑加 保留1位小数
时间: 2024-05-12 08:20:04 浏览: 41
```
def sin(x):
term = x
result = x
i = 1
while abs(term) >= 1e-7:
term *= -1 * x * x / ((2 * i) * (2 * i + 1))
result += term
i += 1
return round(result, 1)
print(sin(1.2)) # 输出0.9
```
注:代码中的 `round(result, 1)` 表示保留一位小数。
相关问题
用python写出不使用标准模块的函数,采用递推法计算sinx幂级数展开式的近似值,当通项绝对值小于10-7时停止累加,保留1位小数。 sinx=x/1-x3/3!+x5/5!-x7/7!…
def sin(x):
"""
采用递推法计算sinx幂级数展开式的近似值
当通项绝对值小于10^-7时停止累加,保留1位小数
"""
result = 0
term = x
n = 1
while abs(term) >= 10 ** -7:
result += term
n += 2
term = (-1) ** ((n - 1) / 2) * x ** n / factorial(n)
return round(result, 1)
def factorial(n):
"""
计算n的阶乘
"""
if n == 0:
return 1
return n * factorial(n - 1)
阅读全文