Приближение 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) я получаю 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))

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