Вычислить сумму ряда

Дано условие задания:

описание

Решение:

import math

x = int(input("Введите значение Х > 1: "))
if x < 1: print("Недопустимое значение Х")
n = int(input('Введите значение N: '))
if n < 0: print("Недопустимое значение N")
for n1 in range(n+1):
    a = 2*n1+1
    b = n1 + 1 #степень
    if b % 2 == 0:
        y = math.pi/2 +(1)/(a * x**a)
    elif b % 2 != 0:
        y = math.pi/2 +(-1)/(a * x**a)
print(y)

Вводя х = 5 и n = 6 ответ выходит 1.5707963267318812, что, к сожалению, неверно. Верный ответ при таких вводимых числах — 1.3734007669429056. В чём ошибка?


Ответы (1 шт):

Автор решения: Mikhailo

Мне кажется, что Harry прав, и задаваться должно не количество членов ряда, а точность.

А считать просто:

x = int(input("Введите значение Х: "))
e = float(input("Введите точность: "))

s = 1
t = -x
k = -1

while abs(t) > e:
    s += t
    k -= 1
    t *= x/k

print(s)
→ Ссылка