簡體   English   中英

如何使用 Python 中的 map 和 reduce 函數為 e^x 編寫泰勒級數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM