Zadanie python taylor / exp

0

Napisz funkcję, która wyznaczy wartość funkcji f podanej w zadaniu. Funkcja powinna przyjmować dwa argumenty - wartość x ustawioną domyślnie na 1 oraz dokładność obliczeń ( m ) ustawioną domyślnie na 2.

Wartość funkcji f(x)=e^x można obliczyć wykorzystując (zdjęcie niżej) . (por. TAYLOR). ![screenshot-20210125131038.png]

import math
def fun1(x=1, n=2):
    i = 0
    lista = []
    while i <= n:
        lista.append(x**i/math.factorial(i))
        i+=1
        
    return sum(lista)

print(fun1())

to moje rozwiązanie, ale wydaje mi się, że nie ma ono po prostu sensu i zwraca bezsensowne rzeczy, ktoś pomoże?

(https://4programmers.net/uploads/109749/J5qdMEagkKaMqOBVCjj76lUpU9FlothMaYcMw0vR.png)

0

W czym konkretnie tkwi problem? Kod jest może mało elegancki (list comprehention by wiele uładnił, albo po prostu sumowanie w tej samej pętli), ale robi co mu kazałeś.

0

@korneliuszburian:
Jak wyżej, kod wydaje sie liczyć co trzeba:

def fun1(x=1, n=2):
    i = 0
    lista = []
    while i <= n:
        lista.append(x**i/math.factorial(i))
        i+=1

    return sum(lista)



if __name__ == '__main__':
    print(fun1(1, 20))  # -> 2.7182818284590455
    print(math.e)  # -> 2.7182818284590455

https://docs.python.org/3/library/math.html#power-and-logarithmic-functions

1 użytkowników online, w tym zalogowanych: 0, gości: 1