【问题标题】:How can I write the Taylor Series for e^x using map and reduce functions in Python?如何在 Python 中使用 map 和 reduce 函数为 e^x 编写泰勒级数?
【发布时间】:2019-09-17 03:48:16
【问题描述】:

在用 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

编辑:对于这个问题的初稿不够清楚,我深表歉意。我对这个网站非常陌生,还不太习惯发帖规则。我希望我在格式或措辞上的过错没有冒犯。

【问题讨论】:

  • 好主意,开始吧,你会学到东西的!
  • @rdacier,Stack 是一个问答网站。您的帖子没有实际问题,看起来您是在要求人们为您编写代码。那不行...如果您需要帮助,这里有一些提示: 1 - 尝试编写一些代码;如果这不起作用,请发布关于不起作用的特定问题; 2 - 不是每个人都知道“泰勒系列”是什么,包括许多本来愿意提供帮助的人。添加一个指向 Wikipedia 文章的链接,并快速总结它是什么。祝你好运
  • 您已将“iter”定义为两个参数的函数,但在表达式“map(iter, L)”中您只提供了一个输入。

标签: python python-3.x syntax


【解决方案1】:

你可以使用下面的代码和一个或两个参数:

例如:

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

【讨论】:

    猜你喜欢
    • 2016-01-24
    • 2017-09-01
    • 2014-03-27
    • 2021-12-26
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    相关资源
    最近更新 更多