繁体   English   中英

生成有限差分的初始条件矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM