[英]Generate the initial conditions matrix for a finite difference
我想为这个有限差分关系制作一个初始条件矩阵:
w_{i+1,j} - 4w_{i,j} + w_{i-1,j} + w_{i,j+1} + w_{i,j-1} = h^2 g(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 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] 在行词典中。 我怎么能生成这个矩阵? 有没有我遗漏的步骤? 我不熟悉堆栈和队列的数据结构。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.