Пишу программу для расчета значения интегрального косинуса (функция стремится к 0 при x, стремящемся к бесконечности), а для этого нужно вычислить сумму сходящегося на всей оси x ряда. Если x меньше 67, то вроде всё нормально считает, даже график функции такой, какой и должен быть, но когда x превышает это значение, сумма ряда и, соответственно, значение функции начинает резко расти до неадекватных размеров, хотя так вроде быть не должно.
Почему так происходит?
Код для вычисления значения функции:
import math
from decimal import Decimal
EULER = Decimal(0.5772156649015328606)
def fact
:
factorial = Decimal(1)
while Decimal
> 1:
factorial *= n
n -= Decimal(1)
return Decimal(factorial)
def ryad(z):
x = Decimal(z)
EPS = Decimal(1e-10)
S = Decimal(0)
a = Decimal(1)
n = Decimal(1)
while Decimal(math.fabs(a)) > EPS:
e0 = Decimal((-1)**n)
e1 = Decimal(x**(2*n))
e2 = Decimal(2*n)
e3 = fact(2*n)
a = (e0*e1)/(e2*e3)
print(f"На {n} шаге a = {a}"
n += Decimal(1)
S += a
print(f"На {n} шаге S = {S}"
print(a)
print(f"Сумма ряда равна {S}"
return S
c = float(input("Введите значение x: "
)
print(f"Значение Ci(x)= {float(EULER)+float(ryad(c))+math.log(c)}"
Почему так происходит?
Код для вычисления значения функции:
import math
from decimal import Decimal
EULER = Decimal(0.5772156649015328606)
def fact
factorial = Decimal(1)
while Decimal
factorial *= n
n -= Decimal(1)
return Decimal(factorial)
def ryad(z):
x = Decimal(z)
EPS = Decimal(1e-10)
S = Decimal(0)
a = Decimal(1)
n = Decimal(1)
while Decimal(math.fabs(a)) > EPS:
e0 = Decimal((-1)**n)
e1 = Decimal(x**(2*n))
e2 = Decimal(2*n)
e3 = fact(2*n)
a = (e0*e1)/(e2*e3)
print(f"На {n} шаге a = {a}"
n += Decimal(1)
S += a
print(f"На {n} шаге S = {S}"
print(a)
print(f"Сумма ряда равна {S}"
return S
c = float(input("Введите значение x: "
print(f"Значение Ci(x)= {float(EULER)+float(ryad(c))+math.log(c)}"
![233698780_e8f844176b968409895436ba3d4de552_240x240.jpg](https://otvet.imgsmail.ru/download/233698780_e8f844176b968409895436ba3d4de552_240x240.jpg)
![233698780_388b40438c8e4b62ac7d7de6857f8932_240x240.jpg](https://otvet.imgsmail.ru/download/233698780_388b40438c8e4b62ac7d7de6857f8932_240x240.jpg)
![233698780_b91eab0648c7de53f9c11918404617e5_240x240.jpg](https://otvet.imgsmail.ru/download/233698780_b91eab0648c7de53f9c11918404617e5_240x240.jpg)