#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))