微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决生成有限差分的初始条件矩阵

我想为此有限差分关系建立一个初始条件矩阵:

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]在行词典中。如何生成此矩阵?有没有我错过的一些步骤?我对数据结构堆栈和队列不熟悉。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。