实验报告二 题目: Gauss列主元消去法 摘要:求解线性方程组的方法很多,主要分为直接法和间接法。本实验运用直接法的Guass消去法,并采用选主元的方法对方程组进行求解。 前言:(目的和意义) 1. 学习Gauss消去法的原理。 2. 了解列主元的意义。 3. 确定什么时候系数阵要选主元 数学原理: (k?1)由于一般线性方程在使用Gauss消去法求解时,从求解的过程中可以看到,若akk=0,(k?1)?0,则必须进行行交换,才能使消去过程进行下去。有的时候即使akk但是其绝对值非常小,由于机器舍入误差的影响,消去过程也会出现不稳定得现象,导致结果不正确。因此有必要进行列主元技术,以最大可能的消除这种现象。这一技术要寻找行r,使得 (k?1)并将第r行和第k行的元素进行交换,以使得当前的akk的数值比0要大的多。这种列主元的消去法的主要步骤如下: 1. 消元过程 对k=1,2,…,n-1,进行如下步骤。 1) 选主元,记 若|ark|很小,这说明方程的系数矩阵严重病态,给出警告,提示结果可能不对。 2) 交换增广阵A的r,k两行的元素。 arj?akj (j=k,…,n+1) 3) 计算消元 aij?aij?aikakj/akk (i=k+1,…,n; j=k+1,……,n+1) 2. 回代过程 对k= n, n-1,…,1,进行如下计算 至此,完成了整个方程组的求解。 程序设计: 本实验采用Matlab的M文件编写。 Gauss消去法源程序: clear a=input('输入系数阵:>>\\n') b=input('输入列阵b:>>\\n') n=length(b); A=[a b] x=zeros(n,1); %%%函数主体 for k=1:n-1; %%%是否进行主元选取 if abs(A(k,k))abs(t) p=r; else p=k; end end %%%交换元素 if p~=k; for q=k:n+1; s=A(k,q); A(k,q)=A(p,q); A(p,q)=s; end end end %%%判断系数矩阵是否奇异或病态非常严重 if abs(A(k,k))< yipusilong disp(‘矩阵奇异,解可能不正确’) end %%%%计算消元,得三角阵 for r=k+1:n; m=A(r,k)/A(k,k); for q=k:n+1; A(r,q)=A(r,q)-A(k,q)*m; end end end %%%%求解x x(n)=A(n,n+1)/A(n,n); for k=n-1:-1:1; s=0; for r=k+1:n; s=s+A(k,r)*x(r); end t=(A(k,n+1)-s) x(k)=(A(k,n+1)-s)/A(k,k) end 结果分析和讨论: ??26??x??22???y???34?。其中?为一小数,当??10?5,10?10,10?14,10?20时,分别575例:求解方程?????????321????z????10??采用列主元和不列主元的Gauss消去法求解,并比较结果。 记Emax为求出的解代入方程后的最大误差,按要求,计算结果如下: 当??10?5时,不选主元和选主元的计算结果如下,其中前一列为不选主元结果,后一列为选主元结果,下同。 Emax=,0 此时,由于?不是很小,机器误差就不是很大,由Emax可以看出不选主元的计算结果精度还可以,因此此时可以考虑不选主元以减少计算量。 当??10?10时,不选主元和选主元的计算结果如下 Emax=,0 此时由Emax可以看出不选主元的计算精度就不好了,误差开始增大。 当??10?14时,不选主元和选主元的计算结果如下 0000000 Emax=,0 此时由Emax可以看出,不选主元的结果应该可以说是不正确了,这是由机器误差引起的。 当??10?20时,不选主元和选主元的计算结果如下 NaN 1 NaN 2 NaN 3 Emax=NaN, 0 不选主元时,程序报错:Warning: Divide by zero.。这是因为机器计算的最小精度为10-15,所以此时的??10?20就认为是0,故出现了错误现象。而选主元时则没有这种现象,而且由Emax可以看出选主元时的结果应该是精确解。 结论: 采用Gauss消去法时,如果在消元时对角线上的元素始终较大(假如大于10-5),那么本方法不需要进行列主元计算,计算结果一般就可以达到要求,否则必须进行列主元这一步,以减少机器误差带来的影响,使方法得出的结果正确。 实验报告三 题目: Rung现象产生和克服 摘要:由于高次多项式插值不收敛,会产生Runge现象,本实验在给出具体的实例后,采用分段线性插值和三次样条插值的方法有效的克服了这一现象,而且还取的很好的插值效果。 前言:(目的和意义) 1. 深刻认识多项式插值的缺点。 2. 明确插值的不收敛性怎样克服。 3. 明确精度与节点和插值方法的关系。 数学原理: 在给定n+1个节点和相应的函数值以后构造n次的Lagrange插值多项式,实验结果表明(见后面的图)这种多项式并不是随着次数的升高对函数的逼近越来越好,这种现象就是Rung现象。 解决Rung现象的方法通常有分段线性插值、三次样条插值等方法。 分段线性插值: 设在区间[a, b]上,给定n+1个插值节点 a=x0