我試圖定義阿基米德螺線:當我試圖定義切向量的傾斜角度(含)的軌道(即:棕褐色(含))阿基米德螺旋
我越來越一個錯誤
'numpy.ufunc' object does not support item assignment" and "can't assign to function call"
當我想計算cos(含)和sin(含)時出現同樣的錯誤。 任何建議和幫助。
我的代碼是:
T=100
N=10000
dt=float(T)/N
D= 2
DII=10
a= 2.
v= 0.23
omega = 0.2
r0 = v/omega
t=np.linspace(0,T,N+1)
r= v*t
theta = a + r/r0
theta = omega*t
x=r* np.cos(omega*t)
y=r* np.sin(omega*t)
dxdr = np.cos(theta) - (r/r0)*np.sin(theta)
dydr = np.sin(theta) + (r/r0)*np.cos(theta)
dydx = (r0*np.sin(theta) + r*np.cos(theta))/r0*np.cos(theta) - r*np.sin(theta)
np.tan[incl]= dydx
incl = np.arctan((dydx))
### Calculate cos(incl) ,sin(incl) :
np.sin[np.incl] = np.tan(np.incl)/np.sqrt(1+ np.tan(np.incl)*2)
np.cos[incl] = 1/np.sqrt(1+ np.tan(incl)*2)
p1, = plt.plot(xx, yy)
i= 0 # this is the first value of the array
Bx= np.array([np.cos(i), -np.sin(i)])
By= np.array([np.sin(i), np.cos(i)])
n= 1000
seed(2)
finalpositions=[]
for number in range(0, 10):
x=[]
y=[]
x.append(0)
y.append(0)
for i in range(n):
s = np.random.normal(0, 1, 2)
deltaX= Bx[0]*np.sqrt(2*DII*dt)*s[0] + Bx[1]*np.sqrt(2*D*dt)*s[1]
deltaY= By[0]*np.sqrt(2*DII*dt)*s[0] + By[1]*np.sqrt(2*D*dt)*s[1]
x.append(x[-1] + deltaX)
y.append(y[-1] + deltaY)
finalpositions.append([x[-1], y[-1]])
p2,= plt.plot(finalpositions[:,0],finalpositions[:,1],'*')
plt.show()
我不認爲'np.tan [含]'或'np.sin [np.incl]'做什麼你認爲它 –
我曾嘗試寫它像np.sin(np.incl),但我得到一個錯誤:不能分配給函數調用 –
這是因爲'np.sin(np.incl)'是一個函數調用,*返回一個值。你不能分配任何東西 –