2016-zylzylzylzylzylzylzylzylzyl
(写在前面:Matlab相较于C来说界面更友好,操作起来也更方便,还可以直接做出好看的图,工科学生掌握一下可以避免跟C“苦苦纠缠”;迭代方法用的高斯赛德尔,其实还有其他一些数值计算方法,我还保存着一部分,会在后面文章中写一下;程序有注释,希望不要纯抄,看看注释很容易明白的;在编写过程中,我感觉节点微元怎么取很关键,取的不恰当结果会差很多,程序中的微元面积应该是扇形面积,请注意观察。)
正文:根据《传热学》中对导热方程的离散化,对离散方程进行进一步化简,可得:
(此处有图发不出来,其实是把离散方程同项合并一下,方便后面写成矩阵相乘的形式)
显然,可将离散方程表示为AΘ=b的形式,其中A为一个N×N的系数矩阵,Θ为一个1×N的解矩阵,b为一个1×N的右端项矩阵。这样做的目的是,利用矩阵的形式进行数值计算,较课本上的计算方法更有序,更容易从数值计算的角度理解。
以高斯-赛德尔迭代法为核心设计程序,程序设计框图如下:
(图发不出来)
高斯赛德尔迭代函数gaussseidel.m:
function[
x ] = gaussseidel( A,b,x0 )
format;%四位精度
%至少输入方程组的系数矩阵,方程组右端项,以及初始解向量。
D=diag(diag(A));
L=-tril(A,-1);