python 中指数函数的近似求和
approximate summation of exponential function in python
我想求指数函数的近似和,我的代码是这样的:
import numpy as np
import matplotlib.pyplot as plt
import math
N = input ("Please enter an integer at which term you want to turncate your summation")
x = input ("please enter a number for which you want to run the exponential summation e^{x}")
exp_sum =0.0
for n in range (0, N):
factorial = math.factorial(n)
power = x**n
nth_term = power/factorial
exp_sum = exp_sum + nth_term
print exp_sum
现在我测试了一对 (x, N) = (1,20) 和它 returns 2.0,我想知道我的代码在这个上下文中是否正确,如果是,那么要得到 e = 2.71...,我应该将多少项视为 N?如果我的代码有误,请帮我解决这个问题。
您使用的 python 是哪个版本?找到 nth_term
的除法在 python 2.x 和版本 3.x.
中给出了不同的结果
您似乎使用的是 2.x 版本。您使用的除法仅给出整数结果,因此在前两行循环 (1/factorial(0) + 1/factorial(1)) 之后您只添加零。
因此,要么使用版本 3.x,要么将该行替换为
nth_term = float(power)/factorial
或者,正如评论所建议的那样,通过添加行
让 python 2.x 像 3.x 一样进行除法
from __future__ import division
在模块的开头或非常接近模块的开头。
我想求指数函数的近似和,我的代码是这样的:
import numpy as np
import matplotlib.pyplot as plt
import math
N = input ("Please enter an integer at which term you want to turncate your summation")
x = input ("please enter a number for which you want to run the exponential summation e^{x}")
exp_sum =0.0
for n in range (0, N):
factorial = math.factorial(n)
power = x**n
nth_term = power/factorial
exp_sum = exp_sum + nth_term
print exp_sum
现在我测试了一对 (x, N) = (1,20) 和它 returns 2.0,我想知道我的代码在这个上下文中是否正确,如果是,那么要得到 e = 2.71...,我应该将多少项视为 N?如果我的代码有误,请帮我解决这个问题。
您使用的 python 是哪个版本?找到 nth_term
的除法在 python 2.x 和版本 3.x.
您似乎使用的是 2.x 版本。您使用的除法仅给出整数结果,因此在前两行循环 (1/factorial(0) + 1/factorial(1)) 之后您只添加零。
因此,要么使用版本 3.x,要么将该行替换为
nth_term = float(power)/factorial
或者,正如评论所建议的那样,通过添加行
让 python 2.x 像 3.x 一样进行除法from __future__ import division
在模块的开头或非常接近模块的开头。