有限差分线性化.pdf
将求解区域划分为m行n列
方程化为a*p(I,j-1)+b*p(i-1,j)+c*p(I,j)+d*p(i+1,j)+e*p(I,j+1)=f(i,j)
以其中的某一个点(i,j)为例
K2
i-1,j
i,j-1i,ji,j+1
i+1,j
K1
图(1)
K1+K2=m-1,K表示中间的点数,不是格数
图(2)
1234
1234
图(3)
将这个m*n的求解区域每一列作为一个单元总共有n列,将每一列逆时针旋转90°然后从
左到右依次排列得到一个具有m*n个元素的行向量,然后将这个m*n向量视为一个单元向
下排成一个m*n的列向量,这样就得到一个(m*n)*(m*n)的矩阵,
这里只重点介绍化简为线性方程组之后系数矩阵K中的元素分布,K就为(m*n)*(m*n)的矩
阵。按照图(1)所示可以知道将(i,j)和(i,j+1)所在的这两列旋转之后接在一起,这
两个元素之间总共就像个m-1个元素也即是说系数c和系数e相隔m-1,同理系数a也就和
系数c相隔m-1,系数b,d紧紧挨着c按照b,c,d排列着。
通过自己在草稿纸上描点发现这五个系数最后排列之后的结构图如下
两个点中间构成m个空格
总共有m*(n-1)
个点
两个点相邻构成一个空格
中间的几条断线没总共有n+n条,也就是没一斜行都有n条短线,每条短线中有m-1个元
素,两条短线之间间隔一个元素0,每一斜线总共含有m*n-1个元素。
五条长斜线从左往右一次分别对应系数a,b,c,d,e
这样一来系数矩阵K的元素布局就完成了(图中出来这五条长斜线意外的其他部分的元素全
为0)
由于K为一个m*n阶的方阵,所以所有的元素P也应该化为含有m*n个元素的纵向量。还
是按照图(2)和图(3)所示的方法化简就可以了。同时f(i,j)也应该这样化简。
这样就构成了AX=b的线性方程组的形式。
剩下的就是写代码来完成这个矩阵K的定义,然后选择合适的迭代方法来完成迭代。