Python:如何使用scipy sparce矩阵实现包含2D数组的隐式表达式?

Python:如何使用scipy sparce矩阵实现包含2D数组的隐式表达式?,python,numpy,matrix,scipy,Python,Numpy,Matrix,Scipy,我试图在python中实现以下隐式方程,以求解u(n+1): 我将(δt/δx^2)组合成一个常数alpha,并使用术语“u”表示u(n+1)和“u0”表示u(n) u[i,j]-u0[i,j]=alpha*(u[i+1,j]+u[i-1,j]+u[i,j+1]+u[i,j-1]-4*u[i,j])+h[i,j] 然后将该方程调整为Ax=b的形式 -alpha*u[i+1,j]+(1+4*alpha)u[i,j]-alpha*u[i-1,j]-alpha*u[i,j+1]-alpha*u[i,

我试图在python中实现以下隐式方程,以求解u(n+1):

我将(δt/δx^2)组合成一个常数alpha,并使用术语“u”表示u(n+1)和“u0”表示u(n)

u[i,j]-u0[i,j]=alpha*(u[i+1,j]+u[i-1,j]+u[i,j+1]+u[i,j-1]-4*u[i,j])+h[i,j]

然后将该方程调整为Ax=b的形式

-alpha*u[i+1,j]+(1+4*alpha)u[i,j]-alpha*u[i-1,j]-alpha*u[i,j+1]-alpha*u[i,j-1]=u0[i,j]-h[i,j]

在这一点上,我陷入了困境,因为我以前只学习/求解了一维隐式矩阵,其中只有u[i-1]、u[i]和u[i+1]填充了三条对角线,以便使用scipys spdiags函数进行计算

我如何用二维来代替


编辑:对于将来想知道这一点的人,我最终将数组重塑为u[i*j]并使用它。

从稀疏矩阵格式后退一步,使用密集的numpy数组可能会有所帮助-至少对于一个小测试用例是这样。例如,您可能必须使用3d数组,这可能有助于从稀疏矩阵格式后退一步,并使用密集的numpy数组-至少对于一个小测试用例是这样。例如,您可能必须使用三维阵列。