Я хочу, чтобы решить уравнение, которое я должен решить рекурсивно, я загрузил фотографию формулы (К сожалению, я не знаю, как писать математические формулы здесь!) I написал код в Python, как показано ниже:Решая математическое уравнение рекурсивно в Python
import math
alambda = 1.0
rho = 0.8
c = 1.0
b = rho * c/alambda
P0 = (1 - (alambda*b))
P1 = (1-(alambda*b))*(math.exp(alambda*b) - 1)
def a(n):
a_n = math.exp(-alambda*b) * ((alambda*b)**n)/math.factorial(n)
return a_n
def P(n):
P(n) = (P0+P1)*a(n) + sigma(n)
def sigma(n):
j = 2
result = 0
while j <= n+1:
result = result + P(j)*a(n+1-j)
j += 1
return result
Очевидно, что я не смог закончить функцию P. Поэтому, пожалуйста, помогите мне с этим. , когда n = 1 Я должен извлечь P2, когда n = 2, я должен извлечь P3. Кстати, P0 и P1 записаны в строках 6 и 7. Когда я называю P (5), я хочу видеть P (0), P (1), P (2), P (3), P (4), P (5), P (6) на выходе.
Вам нужна интуитивная ценность. В противном случае эта серия будет бесконечно проходить. В принципе, скажите мне значения P (0) и P (1). –
Я бы сказал, что ваш лучший выбор будет заключаться в том, чтобы ваши «P-s» были списком, к которому добавлена ваша функция; 'p (n) = pvals [n]' зависит от 'p (n-1) = pvals [n-1]'. Не в буквальном смысле рекурсивный, но с использованием рекурсивной логики. – Schilcote
@MalikBrahimi, Thats right. Внутренние значения написаны в строках 6 и 7. –