def _F_mk(Q_p, P, n_p, J, r_b, r_p, z, pikg, sigma):
"""
Complex matrix F_mk from Claesson and Hellstrom (2011), EQ. 34
"""
F = np.zeros((n_p, J), dtype=np.cfloat)
for m in range(n_p):
for k in range(J):
fmk = 0. + 0.j
for n in range(n_p):
# First term
if m != n:
fmk += Q_p[n]*pikg/(k+1)*(r_p[m]/(z[n] - z[m]))**(k+1)
# Second term
fmk += sigma*Q_p[n]*pikg/(k+1)*(r_p[m]*np.conj(z[n])/(
r_b**2 - z[m]*np.conj(z[n])))**(k+1)
for j in range(J):
# Third term
if m != n:
fmk += P[n,j]*binom(j+k+1, j) \
*r_p[n]**(j+1)*(-r_p[m])**(k+1) \
/(z[m] - z[n])**(j+k+2)
# Fourth term
j_pend = np.min((k, j)) + 1
for jp in range(j_pend):
fmk += sigma*np.conj(P[n,j])*binom(j+1, jp) \
*binom(j+k-jp+1, j)*r_p[n]**(j+1) \
*r_p[m]**(k+1)*z[m]**(j+1-jp) \
*np.conj(z[n])**(k+1-jp) \
/(r_b**2 - z[m]*np.conj(z[n]))**(k+j+2-jp)
F[m,k] = fmk
return F
评论列表
文章目录