我尝试在每个循环中对numpy数组x_new
执行此操作。有什么方法可以让它更快吗?
for i in range(nup):
for j in range(nup):
if j==i+1:
x_new[i]=x_new[i]-U1[i]*x_old[j]
elif j==i-1:
x_new[i]=x_new[i]-L1[j]*x_old[j]
elif j==i+nf:
x_new[i]=x_new[i]-U2[i]*x_old[j]
elif j==i-nf:
x_new[i]=x_new[i]-L2[j]*x_old[j]
当nup
很大时,它需要太长的时间。
1条答案
按热度按时间polhcujo1#
你可以通过删除内部循环并将
j
值替换为条件中使用的表达式来优化循环。这样,你可以直接访问所需的索引,而无需迭代j
的所有可能值:这种优化将时间复杂度从
O(nup^2)
降低到O(nup)
,这将显著加快循环速度。