1
在numpy數組中取值的加權和的最簡單/最快的方法是什麼?numpy數組中相鄰值的加權和
實施例:用歐拉方法
length_l=10
time_l=10
u=zeros((length_l,length_l))# (x,y)
u[:, 0]=1
u[:,-1]=1
print(u)
def dStep(ALPHA=0.1):
for position,value in ndenumerate(u):
D2u= (u[position+(1,0)]-2*value+u[position+(-1, 0)])/(1**2) \
+(u[position+(0,1)]-2*value+u[position+(0,-1)])/(1**2)
value+=ALPHA*D2u()
while True:
dStep()
print(u)
D2u
求解熱方程應在兩個維度上的第二中心差。這將工作,如果我可以添加像(1,4)+(1,3)=(2,7)
索引。不幸的是,python將它們添加爲(1,4)+(1,3)=(1,4,1,3)
。
注意的是,計算D2u
相當於服用點積與此內核圍繞當前位置爲中心:
0, 1, 0
1,-4, 1
0, 1, 0
是否可以將其矢量化的點積?
嗯......我得到一個'ValueError異常:對象太深期望的數組 ' – Navin 2013-02-10 18:55:32
你確定你從'scipy.ndimage'導入'convolve'嗎?我相信我之前已經看到了這個錯誤,並帶有1d版的convolve。 – 2013-02-10 19:07:22
是的,切換到第二版修復它。 – Navin 2013-02-10 21:56:28