Pythonを使用する2.7次のやや難しい方程式を計算しようとしています。次の式を正しく計算するにはどうすればよいですか?
私が成功した最初の二つを実装しているが、第三に苦しんでいます。ここで私の試み、
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
は、私はその後、私は実装する方法上の任意のアドバイスを探しています私は、次のエラーメッセージ
---------------------------------------------------------------------------
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'
を取得
# 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))
この関数を呼び出そうです私の方法で改善します。
タイトルと質問テキストの中に方程式の名前を入れて、他の人が検索しやすいようにするかもしれません。たとえば、「Pythonでname1、name、name3を計算する」などのタイトル。 –
'pi_tau'は関数であり、数値ではありません。 'pi_tau'と呼ぶのですか? – Carcigenicate