南京邮电大学数值代数实验.doc

上传人:李司机 文档编号:1180105 上传时间:2022-07-14 格式:DOC 页数:5 大小:102.50KB
返回 下载 相关 举报
南京邮电大学数值代数实验.doc_第1页
第1页 / 共5页
南京邮电大学数值代数实验.doc_第2页
第2页 / 共5页
南京邮电大学数值代数实验.doc_第3页
第3页 / 共5页
南京邮电大学数值代数实验.doc_第4页
第4页 / 共5页
南京邮电大学数值代数实验.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《南京邮电大学数值代数实验.doc》由会员分享,可在线阅读,更多相关《南京邮电大学数值代数实验.doc(5页珍藏版)》请在三一办公上搜索。

1、数值代数实验数值线性代数实验一一、 实验名称:矩阵的LU分解.二、 实验目的:用不选主元的LU分解和列主元LU分解求解线性方程组 A*=b, 并比拟这两种方法.三、 实验容与要求1用所熟悉的计算机语言将不选主元和列主元LU分解编成通用的子程序,然后用编写的程序求解下面的84阶方程组将计算结果与方程组的准确解进展比拟,并就此谈谈你对Gauss消去法的看法.(2) 写出追赶法求解三对角方程组的过程,并编写程序求该实验中的方程组Gauss消去法:用消去法解方程组的根本思想是用逐次消去未知数的方法把原来方程组A*=b化为与其等价的三角方程组,而求解三角方程组就容易了。换句话说,上述过程就是用行的初等变

2、换将原方程组系数矩阵化为简单形式,从而将求解原方程组的问题转化为求解简单方程组的问题。利用Gauss消去法对线性方程组A*=b进展求解。用MATLAB建立m文件DelGauss.m,程序如下:function *=DelGauss(a,b) n,m=size(a);nb=length(b);det=1;*=zeros(n,1);for k=1:n-1for i=k+1:nif a(k,k)=0returnend m=a(i,k)/a(k,k);for j=k+1:n a(i,j)=a(i,j)-m*a(k,j);end b(i)=b(i)-m*b(k);end det=det*a(k,k);

3、enddet=det*a(n,n);for k=n:-1:1 for j=k+1:n b(k)=b(k)-a(k,j)*(j);end *(k)=b(k)/a(k,k);End在matlab中输入如下:结果如下:方程组的准确解为*1=*2=*84=1.0000,与Gauss消去法求得的解差距很大,所得结果不够准确,计算简单但其消元过程有时不能进展到底而使求解出现解失真的情况。数值线性代数实验二一、 实验名称:实对称正定矩阵的的Cholesky分解.二、 实验目的:用平方根法和改良的平方根方法求解线性方程组 A*=b.三、 实验容与要求用所熟悉的计算机语言将Cholesky分解和改良的Chole

4、sky分解编成通用的子程序,然后用编写的程序求解对称正定方程组A*=b,其中(1) b随机的选取,系数矩阵为100阶矩阵(2) 系数矩阵为40阶Hilbert矩阵,即系数矩阵A的第i行第j列元素为,向量b的第i个分量为(3) 用实验一的程序求解这两个方程组,并比拟所有的计算结果,然后评价各个方法的优劣。平方根法:平方根法就是利用对称正定矩阵的三角分解而得到的求解对称正定方程组的一种有效方法。平方根法递推公式可以证明对于对称正定矩阵A,可以唯一地分解成A=LLT,其中L是非奇异下三角形矩阵。模型二:利用平方根法对线性方程组A*=b进展求解。 用MATLAB建立m文件pingfg.m,程序如下:f

5、unction *=pingfg(A,b) %Cholesky分解n,n=size(A);L=zeros(n,n);%实际上不用为 L 申请空间,使用 A 即可L(1,1)=sqrt(A(1,1);for k=2:n L(k,1)=A(k,1)/L(1,1);endfor k=2:n-1 L(k,k)=sqrt(A(k,k)-sum(L(k,1:k-1).2);for i=k+1:n L(i,k)=(A(i,k)-sum(L(i,1:k-1).*L(k,1:k-1)/L(k,k);endendL(n,n)=sqrt(A(n,n)-sum(L(n,1:n-1).2);%解下三角方程组Ly=by=

6、zeros(n,1);for k=1:n j=1:k-1; y(k)=(b(k)-L(k,j)*y(j)/L(k,k);end%解上三角方程组L*=y*=zeros(n,1);U=L;for k=n:-1:1 j=k+1:n; *(k)=(y(k)-U(k,j)*(j)/U(k,k);End模型三:利用改良的平方根法对线性方程组A*=b进展求解。用MATLAB建立m文件ave.m,程序如下:function *=ave(A,b,n) %用改良平方根法求解A*=bL=zeros(n,n); %L为n*n矩阵D=diag(n,0); %D为n*n的主对角矩阵S=L*D;for i=1:n %L的主

7、对角元素均为1L(i,i)=1;endfor i=1:n for j=1:n %验证A是否为对称正定矩阵if (eig(A)=0)|(A(i,j)=A(j,i) %A的特征值小于0或A非对称时,输出wrongdisp(wrong);break;endendendHilbert矩阵用MATLAB建立m文件Hil.m,程序如下:function b=Hil()for k=1:40for m=1:40 s=0; t=s+1/(k+m-1); s=t;end b(k,1)=s;end在matlab中输入如下:输出结果如下:在输入:输出为:.问题3:.Gauss消去法所得的结果与平方根法和改良的平方根法

8、求得的结果差距很大,而且Gauss消去法所得的结果大局部为零,显然平方根法和改良的平方根法求得的结果与方程的准确解比Gauss消去法的更接近,更准确。但不管是哪一类算法都只能在预定的计算步骤或给定的精度得到近似解,有一定的误差。数值线性代数实验三一、 实验名称:矩阵的分解二、 实验目的:应用改良的GramSchmidt方法和Householder变换的方法计算矩阵A的分解. 其中 rank =三、 实验容与要求输入:的各列输出:的各列元素存放在的相应位置上以及的元素数值线性代数实验四一、 实验名称:用迭代法求解方程组及超松弛迭代和最正确松弛因子确实定.二、 实验目的:应用Jacobi迭代法、G

9、aussSeidel迭代法和超松弛迭代方法求解线性方程组 A*=b, 并选择不同的松弛因子,观察松弛因子对松弛迭代法计算效果的影响.三、 实验容与要求 将常微分方程离散化得到差分方程A*=b,取,应用Jacobi迭代法、GaussSeidel迭代法和超松弛迭代方法求解线性方程组,分别取,用SOR迭代法计算对应的数值解,并与准确解进展比拟. 写出这三种迭代法求解线性方程组的步骤,并对计算结果进展分析.四、 实验原理 将0,1区间n等分,方程离散化得差分方程 差分方程对应的系数矩阵和右端项分别为其中SOR迭代法的迭代矩阵和常数项分别为SOR迭代法的迭代公式: 五、 实验过程 利用Matlab语言实现SOR迭代公式的计算,分别对于,松弛因子在1,2围,先按步长0.1搜索,在最少迭代步数附近按步长0.01再搜索.算法终止准则: 或者或者迭代次数.记录四种情况下的计算结果,并找出最正确松弛因子的值,并观察松弛因子与间的关系.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号