编写计算exp(x)的函数, 精度为1e-6,计算结果与matlab内置的exp函数计算结果比较差别
时间: 2024-10-07 10:03:31 浏览: 15
编写一个精度达到1e-6的exp(x)函数,通常需要使用数值分析中的泰勒级数展开或者数学库提供的高精度算法。这里我们可以使用Python的decimal模块来提高计算精度。以下是一个简单的实现示例:
```python
from decimal import Decimal, getcontext
def high_precision_exp(x):
getcontext().prec = 7 # 设置精度到小数点后7位
def term(n, x):
fact = Decimal(1)
for _ in range(1, n + 1):
fact *= Decimal(n)
n -= 1
return fact * x ** n / Decimal(math.factorial(n))
result = 1
for i in range(1, 50): # 泰勒级数展开,一般情况下50次足以达到1e-6精度
result += term(i, x)
return result
# 对比MATLAB exp函数的结果
import math
x = 3 # 示例输入值
matlab_result = math.exp(x)
my_result = high_precision_exp(x)
print(f"Matlab result: {matlab_result}")
print(f"My result: {my_result}")
print(f"Difference: {abs(matlab_result - my_result)} (should be less than 1e-6)")
#