数值线性代数第二版徐树方高立张平文上机习题第一章实验报告

数值线性代数第二版徐树方高立张平文上机习题第一章实验报告

ID:26017349

大小:94.72 KB

页数:21页

时间:2018-11-24

数值线性代数第二版徐树方高立张平文上机习题第一章实验报告_第1页
数值线性代数第二版徐树方高立张平文上机习题第一章实验报告_第2页
数值线性代数第二版徐树方高立张平文上机习题第一章实验报告_第3页
数值线性代数第二版徐树方高立张平文上机习题第一章实验报告_第4页
数值线性代数第二版徐树方高立张平文上机习题第一章实验报告_第5页
资源描述:

《数值线性代数第二版徐树方高立张平文上机习题第一章实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、上机习题1.先用你所熟悉的的计算机语言将不选主元和列主元Gauss消去法编写成通用的子程序;然后用你编写的程序求解84阶方程组;最后将你的计算结果与方程的精确解进行比较,并就此谈谈你对Gauss消去法的看法。Sol:(1)先用matlab将不选主元和列主元Gauss消去法编写成通用的子程序,得到:不选主元Gauss消去法:得到满足列主元Gauss消去法:得到满足(2)用前代法解,得用回代法解,得求解程序为(可缺省,缺省时默认为单位矩阵)(3)计算脚本为ex1_1代码%算法1.1.3(计算三角分解:Gauss消去法)funct

2、ion[L,U]=GaussLA(A)n=length(A);fork=1:n-1A(k+1:n,k)=A(k+1:n,k)/A(k,k);A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);endU=triu(A);L=tril(A);L=L-diag(diag(L))+diag(ones(1,n));end%算法1.2.2(计算列主元三角分解:列主元Gauss消去法)function[L,U,P]=GaussCol(A)n=length(A);fork=1:n-1[s,

3、t]=max(abs(A(k:n,k)));p=t+k-1;temp=A(k,1:n);A(k,1:n)=A(p,1:n);A(p,1:n)=temp;u(k)=p;ifA(k,k)~=0A(k+1:n,k)=A(k+1:n,k)/A(k,k);A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);elsebreak;endendL=tril(A);U=triu(A);L=L-diag(diag(L))+diag(ones(1,n));P=eye(n);fori=1:n-1t

4、emp=P(i,:);P(i,:)=P(u(i),:);P(u(i),:)=temp;endend%高斯消去法解线性方程组functionx=Gauss(A,b,L,U,P)ifnargin<5P=eye(length(A));endn=length(A);b=P*b;forj=1:n-1b(j)=b(j)/L(j,j);b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j);endb(n)=b(n)/L(n,n);y=b;forj=n:-1:2y(j)=y(j)/U(j,j);y(1:j-1)=y(1:j-1)

5、-y(j)*U(1:j-1,j);endy(1)=y(1)/U(1,1);x=y;endex1_1clc;clear;%第一题A=6*eye(84)+diag(8*ones(1,83),-1)+diag(ones(1,83),1);b=[7;15*ones(82,1);14];%不选主元Gauss消去法[L,U]=GaussLA(A);x1_1=Gauss(A,b,L,U);%列主元Gauss消去法[L,U,P]=GaussCol(A);x1_2=Gauss(A,b,L,U,P);%解的比较subplot(1,3,1);pl

6、ot(1:84,x1_1,'o-');title('Gauss');subplot(1,3,2);plot(1:84,x1_2,'.-');title('PGauss');subplot(1,3,3);plot(1:84,ones(1,84),'*-');title('精确解');结果为(其中Gauss表示不选主元的Gauss消去法,PGauss表示列主元Gauss消去法,精确解为):由图,显然列主元消去法与精确解更为接近,不选主元的Gauss消去法误差比列主元消去法大,且不如列主元消去法稳定。Gauss消去法重点在于A的分

7、解过程,无论A如何分解,后面两步的运算过程不变。2.先用你所熟悉的的计算机语言将平方根法和改进的平方根法编写成通用的子程序;然后用你编写的程序求解对称正定方程组Ax=b。Sol:(1)先用matlab将平方根法和改进的平方根法编写成通用的子程序,得到L,(D):平方根法:L=Cholesky(A)改进的平方根法:[L,D]=LDLt(A)(2)求解得求解得求解程序为x=Gauss(A,b,L,U,P)(,此时缺省,缺省时默认为单位矩阵)(3)计算脚本为ex1_2代码%算法1.3.1(计算Cholesky分解:平方根法)fun

8、ctionL=Cholesky(A)n=length(A);fork=1:nA(k,k)=sqrt(A(k,k));A(k+1:n,k)=A(k+1:n,k)/A(k,k);forj=k+1:nA(j:n,j)=A(j:n,j)-A(j:n,k)*A(j,k);endendL=tril(A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。