下一次,請將您的原始問題中的腳本包含在一個很好的格式中。它使幫助更快。
我認爲這只是一個簡單的錯誤。你可以分別得到theta和phi gamma和psi,但是你永遠不會使用它們。你的意思是用g作爲你的參數嗎?如果是這樣,那麼就應該是這個樣子
from numpy import sin, cos, arange, linspace, pi, zeros
import scipy.optimize as opt
def dG(thetaf, psi, gamma):
return 0.35*(cos(psi))**2*(2*sin(3*thetaf/2+2*gamma)+(1+4*sin(gamma)**2)*sin(thetaf/2)-sin(3*thetaf/2))+sin(psi)**2*sin(thetaf/2)
nt = 100
np = 100
gamma = linspace(0, pi/2, nt)
psi = linspace(0, pi/2, np)
x = zeros((nt, np))
for i, theta in enumerate(gamma):
for j, phi in enumerate(psi):
print('i = %d, j = %d') %(i, j)
g = lambda thetaf: dG(thetaf,phi,theta)
x[i,j] = opt.brenth(g,-pi/2,pi/2)
相關,可能是:在Python中的數組計算餘弦值(http://stackoverflow.com/q/21043644/846892) –
只是爲了澄清它是參數標量還是數組? – cc7768