[英]How can I write the Taylor Series for e^x using map and reduce functions in Python?
我需要一些帮助来用 Python 编写 e^x 的泰勒级数。 但是,我可以使用的功能类型非常有限:
任何指示或帮助将不胜感激。 我也试图更多地了解 Python。
到目前为止,这就是我所拥有的代码:
def taylorApproxE(lastIter):
'''approximates the value of e using Taylor Series.'''
L = range(lastIter + 1)
def sum(x,y):
return x + y
def iter(x,y):
return (x**y)/factorial(y)
return reduce(sum, map(iter, L))
每次我尝试在终端中使用此功能时,我都会得到
TypeError: iter() missing 1 required positional argument: 'y'
对于那些不知道泰勒级数是什么的人: https : //en.wikipedia.org/wiki/Taylor_series
但基本上我取的总和如下所示: e^x 的泰勒级数
当我使用该功能时应该发生什么
taylorApproxE(4) = 2.708333333333333
编辑:我很抱歉在这个问题的初稿中不够清楚。 我对这个网站非常陌生,还不太习惯发帖规则。 我希望我没有冒犯我在格式或措辞方面的违规行为。
您可以使用带有一两个参数的以下代码:
例如:
taylorApproxE(4) = 2.708333333333333
(e 表示 4+1 项)
taylorApproxE(4,2) = 7
(e^2 表示 4+1 项)
from math import factorial
from functools import reduce
def taylorApproxE(lastIter, x_in=1):
n_range = range(lastIter + 1)
return reduce(lambda y, z: y + z, map(lambda x: x_in ** x / factorial(x), n_range))
print(taylorApproxE(4))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.