numpyを使って効率的に解きたい小さな線形方程式系がたくさんあります。基本的に、与えられたA[:,:,:]
と、私は与えられたb[:,:]
を見つけたいと思います。したがって、速度を気にしない場合は、次のように解決できます。x[:,:]
A[i,:,:].dot(x[i,:]) = b[i,:]
for i in range(n):
x[i,:] = np.linalg.solve(A[i,:,:],b[i,:])
しかし、これにはPythonでの明示的なループが含まれ、A
通常はのような形をしているため(1000000,3,3)
、このようなソリューションは非常に遅くなります。numpyがこれに達していない場合は、Fortranでこのループを実行できます(つまり、f2pyを使用)が、可能であればPythonのままにしておきたいと思います。