Mit Python 2.7 Ich versuche, die folgenden ziemlich schwierigen Satz von Gleichungen zu berechnen.Wie berechne ich die folgende Gleichung richtig?
Ich habe erfolgreich die ersten beiden, aber mit dem dritten bin zu kämpfen. Hier ist mein Versuch,
def pi_tau(r):
return (1 - (1 - r)**(t + 1))/(2 - r)
def mean_field(r):
return 1 - (1 - r)**t
def pi_neighbour(r):
inside = []
for kappa_dash in range(0, kappa - 1):
Binomial_Coefficient = (math.factorial(kappa - 1))/(math.factorial(kappa - 1 - kappa_dash)*math.factorial(kappa_dash))
top = ((mean_field(r)*pi_tau(r))**kappa_dash)*(1 - mean_field(r)*pi_tau(r))**(kappa - 1 - kappa_dash)
bottom = kappa_dash + 1
fraction = top/bottom
inside.append(kappa_dash)
inside[kappa_dash] = inside[kappa_dash] + fraction*Binomial_Coefficient
return pi_tau*inside
ich dann versuchen, diese Funktion
# set parameters
r = 0.15
kappa = 2.1
T = 10
ppp_t = []
mmm_f = []
nnn_t = []
for t in range(0, T):
ppp_t.append(pi_tau(r))
mmm_f.append(mean_field(r))
nnn_t.append(pi_neighbour(r))
ich die folgende Fehlermeldung erhalten, rufen
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-41-9bcf462306f0> in <module>()
6 ppp_t.append(pi_tau(r))
7 mmm_f.append(mean_field(r))
----> 8 nnn_t.append(pi_neighbour(r))
<ipython-input-39-d9acdd7490f9> in pi_neighbour(r)
19 inside[kappa_dash] = inside[kappa_dash] + fraction*Binomial_Coefficient
20
---> 21 return pi_tau*inside
TypeError: can't multiply sequence by non-int of type 'function'
Ich suche einen Rat, wie die zur Umsetzung dritte Funktion und verbessere meine Methode.
Sie könnten die Namen der Gleichungen in den Titel und den Fragetext eingeben, damit andere die Suche leichter finden. Titel, zum Beispiel, "Compute name1, name, name3 in Python" oder so. –
'pi_tau' ist eine Funktion, keine Nummer. Wolltest du 'pi_tau' nennen? – Carcigenicate