0

我希望找到指数函数的近似和,我的代码如下所示:

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) 并返回 2.0,我想知道我的代码在这种情况下是否正确,如果是,那么得到 e = 2.71...,我应该将多少项视为 N?如果我的代码有误,请帮我解决这个问题。

4

1 回答 1

1

你用的是哪个版本的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

在或非常接近模块的开头。

于 2016-09-16T21:48:54.333 回答