Р为了将微分方程离散,把[0,1]区间n等分,令h=1/n,,得到差分方程Р,从而得到迭代方程组的系数矩阵A。Р 对=1,a=1/2,n=100,分别用jacobi,G-S,超松弛迭代法分别求线性方程组的解,要求4位有效数字,然后比较与精确解的误差。Р对=0.1,=0.01,=0.001,考虑同样问题。Р1.方程的表示及存储Р由于本题中线性方程组的系数矩阵为三对角矩阵,所以可以采用紧缩方法存储,即Р然后在矩阵乘法时对下标处理一下即可。但是考虑到三种迭代方法的一般性,且本题中n=200并不是很大,所以实验中并没有采用紧缩存储,而是采用了直接存储。Р2.边值条件的处理Р由于差分得到的方程组的第一行和最后一行中分别出现了边值y(0)与y(1)作为常数项,因此要在常向量的第一项和最后一项作一些修改:Р3.迭代终止条件Р首先确定要求的精度tol ,我们希望当Р则停止迭代。Р对于迭代格式,若且,则迭代序列的Р第k 次近似解和精确解之间有估计式。Р由题目要求知我们需要有,而由上面的迭代估计,只要,即即可。而本题中q可近似取为,因此最后令迭代终止条件为Р4.SOR 迭代中最佳松弛因子的选取Р由于SOR 迭代法的效果和其松弛因子w的选取有关,所以有必要选取合适的松弛因子。当选择最佳松弛因子Р时,SOR 方法的迭代速度最快。РMatlab实现:Р迭代矩阵是n-1阶的,不是n阶;Р等号右端向量b的最后一项,不是ah^2,而是ah^2-eps-hР精确解:Р带入a=1/2,=1Р代码:Р>> clearР>> x=linspace(0,1);Рtruy=(1-0.5)/(1-exp(-1/1))*(1-exp(-x./1))+x.*0.5;Рfigure;Рplot(x,truy,'g','LineWidth',1.5);Рhold on;РGridР图:Р4测试结果与心得体会Р4、1程序运行情况