Приближение e ^ x с использованием Маклорена в Python

Вопрос: Я пытаюсь аппроксимировать e ^ x, используя ряд Maclaurin в функции my_exp(x), я считаю, что все, что я сделал до сих пор, правильно, но я получаю неправильные приближения ко всему количеству, которое я пробовал. import math for i in range (x): exp = 1 + ((x**i)/math.factorial(i)) print(exp) Например, всякий раз, когда я пытаюсь my_exp(12)

Вопрос:

Я пытаюсь аппроксимировать e ^ x, используя ряд Maclaurin в функции my_exp(x), я считаю, что все, что я сделал до сих пор, правильно, но я получаю неправильные приближения ко всему количеству, которое я пробовал.

import math for i in range (x): exp = 1 + ((x**i)/math.factorial(i)) print(exp)

Например, всякий раз, когда я пытаюсь my_exp(12) я получаю 18614.926233766233 вместо 162754.79141900392 Help?

Лучший ответ:

Ваша проблема в том, что ряд e ^ x является бесконечным рядом, поэтому нет смысла только суммировать первые х членов ряда.

def myexp(x): e=0 for i in range(0,100): #Sum the first 100 terms of the series e=e+(x**i)/math.factorial(i) return e

Вы также можете определить точность вашего результата и получить лучшее решение.

def myexp(x): e=0 pres=0.0001 s=1 i=1 while s>pres: e=e+s s=(x**i)/math.factorial(i) i=i+1 return e Ответ №1

Чтобы скопировать термины серии, вам нужно заменить назначение на exp линейкой, такой как:

exp = exp + ((x**i)/math.factorial(i))

Оцените статью
Добавить комментарий