如何使用Python中的map和reduce函数编写e^x的泰勒级数?

2024-04-24 16:54:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助来用Python编写e^x的泰勒级数。但是,我只能使用以下功能:

  • 地图
  • 减少
  • 射程
  • 阶乘
  • “helper”函数是您自己编写的

任何指点或帮助将不胜感激。我也在尝试更多地了解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

但基本上我取的总和如下所示: Taylor Series for e^x

当我使用函数时应该发生的是

taylorApproxE(4) = 2.708333333333333

编辑:我很抱歉在这个问题的初稿中不够清楚。我是一个非常新的网站,并没有很好地习惯的规则张贴。我希望我没有冒犯我在格式或措辞上的违规行为。你知道吗


Tags: 函数功能helperreturndef地图seriessum
1条回答
网友
1楼 · 发布于 2024-04-24 16:54:56

您可以将以下代码与一个或两个参数一起使用:

例如:

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))

相关问题 更多 >