Возвращает n-й член математической последовательности

#python-3.x #math #sequence

#python-3.x #математика #последовательность

Вопрос:

Я хочу создать определение, в котором вы предоставляете положительное целое n число и число x , и оно возвращает n-й член следующей последовательности:

x - x^3/3 x^5/5 - x^7/7 x^9/9 - x^11/11..... где:

первый член: a1 = x

второй член равен : a2 = x - x^3/3

третий член: a3 = x - x^3/3 x^5/5 etc

Это то, что я придумал, но, похоже, оно не возвращает постоянных результатов по сравнению с вычислением значений вручную. Пожалуйста, скажите мне, если я что-то упускаю! Большое вам спасибо!

 def madh(n, x):
    if n == 1:
        return x
    else:
        result = (((-1)**n) * (x ** (2*n-1)) / (2*n - 1))   madh((n - 1), x)
        return result
  

Комментарии:

1. Вам нужен n-й член или сумма до n-го члена?

2. @AbhinavMathur n-й член! Я обнаружил, что это следующее! a(n) = a(n-1) ((-1)^( n-1))*(x ^(2 * n-1)/2 * n-1) Спасибо за ваш ответ!

Ответ №1:

Ваша ошибка в знаке элемента. Например, второй член отрицательный, но в вашем случае он положительный ( (-1) ** 2 = 1 ) . Итак, исправленная версия:

 def madh(n, x):
    if n == 1:
        return x
    else:
        # change n to (n 1) in the power of -1
        result = (((-1)**(n 1)) * (x ** (2 * n - 1)) / (2 * n - 1))   madh((n - 1), x)
        return result
  

Кстати, ваша функция возвращает сумму рядов с точностью до n -го члена, а не n -го члена ряда.

Комментарии:

1. Спасибо за ответ @peter ! (Кстати, извините за то, что не совсем понятно, но я впервые задаю здесь вопрос!). Последовательность, которую я хочу, выглядит следующим образом: a1 = x a2 = x — x ^ 3/3 или a2 = a1 — x ^ 3/3 a3 = x — x ^ 3/3 x ^ 5/5 или a3 = a2 x ^ 5/5 a4 = x — x ^ 3/3 x ^ 5/5 x ^ 7/7или a4 = a3 — x ^ 7/7, так что a(n) = a(n-1) ((-1)^( n-1)) *(x ^(2 * n-1) / 2 * n-1) Я думаю, я понял, def madh(n, x): if n == 1: return x else: result = madh(n-1, x) ((-1)**(n-1)) * (x**(2*n-1))/(2*n-1) return result КСТАТИ, ПОЧЕМУМОЙ ОТВЕТ В ЭТОМ ФОРМАТЕ XD

Ответ №2:

nth Член ряда равен ((x^n)/n)*(-1^(n 1)) . Простая функция для этого будет

 def nth_num(n,x):
    if n==1:
        return x
    return nth_num(n-1,x)   ((x**n)/n)*(-1**(n 1))