Python 生成有限差分的初始条件矩阵
我想为这个有限差分关系建立一个初始条件矩阵: w{i+1,j}-4w{i,j}+w{i-1,j}+w{i,j+1}+w{i,j-1}=h^2g(x_i,y_j) 初始条件为:w{0,j}=w{N+1,j}=u0和w{i,0}=w{i,N+1}=u0(i,j=1,…,N+1) 在我的代码中,我使用for循环生成初始条件矩阵Python 生成有限差分的初始条件矩阵,python,matrix,boundary,Python,Matrix,Boundary,我想为这个有限差分关系建立一个初始条件矩阵: w{i+1,j}-4w{i,j}+w{i-1,j}+w{i,j+1}+w{i,j-1}=h^2g(x_i,y_j) 初始条件为:w{0,j}=w{N+1,j}=u0和w{i,0}=w{i,N+1}=u0(i,j=1,…,N+1) 在我的代码中,我使用for循环生成初始条件矩阵 ## N is number of interior points def BC(u0, N): for i in range(N): for j in
## N is number of interior points
def BC(u0, N):
for i in range(N):
for j in range(i+1):
if i==0:
U[i,j] = u0;
if i==(N-1):
U[i,j] = u0
if i==j:
U[i,j] = 0;
if j==0:
U[i,j] = u0;
if j==(N-1):
U[i,j] = u0;
else:
U[i,j] = 1;
return U.ravel(order = "F").reshape((N**2,1), order = "F"), U
我返回两个东西:一个是按行字典顺序存储的矩阵,另一个是初始条件大小为N×N的矩阵。我检查了N=3的情况,它没有给出预期的答案,在行字典顺序中应该是U=u0[2 1 2 | 1 0 1 | 2 1 2]。我如何生成这个矩阵?是否有一些我遗漏的步骤?我不熟悉数据结构、堆栈和队列