南京邮电大学 数值代数实验_第1页
南京邮电大学 数值代数实验_第2页
南京邮电大学 数值代数实验_第3页
南京邮电大学 数值代数实验_第4页
南京邮电大学 数值代数实验_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值代数实验数值线性代数实验一、实验名称:矩阵的LU分解.二、实验目的:用不选主元的LU分解和列主元LU分解求解线性方程组Ax=b,并比较这两种方法.三、实验内容与要求(1)用所熟悉的计算机语言将不选主元和列主元LU分解编成通用的子程序,然后用编写的程序求解下面的84阶方程组5(7215念3153*8215831584)(14丿16186/6186186186将计算结果与方程组的精确解进行比较,并就此谈谈你对Gauss消去法的看法.(2)写出追赶法求解三对角方程组的过程,并编写程序求该实验中的方程组Gauss消去法:用消去法解方程组的基本思想是用逐次消去未知数的方法把原来方程组Ax=b化为与其

2、等价的三角方程组,而求解三角方程组就容易了。换句话说,上述过程就是用行的初等变换将原方程组系数矩阵化为简单形式,从而将求解原方程组的问题转化为求解简单方程组的问题。利用Gauss消去法对线性方程组Ax=b进行求解。用MATLAB建立m文件DelGauss.m,程序如下:functionx=DelGauss(a,b)n,m=size(a);nb=length(b);det=1;x=zeros(n,1);fork=1:n-1fori=k+1:nifa(k,k)=0returnendm=a(i,k)/a(k,k);forj=k+1:na(i,j)=a(i,j)-m*a(k,j);endb(i)=b(

3、i)-m*b(k);enddet=det*a(k,k);enddet=det*a(n,n);fork=n:-1:1forj=k+1:nb(k)=b(k)-a(k,j)*x(j);endx(k)=b(k)/a(k,k);End在matlab中输入如下:A=ones83);BGonestl,84);C=8*ones(lj83);D=diag(Aj1)+diag(E,0)+diag(C-1)b=7;lSonestSS,1);14:DelGauss(Djb)结果如下:ans=1.Oe+08*0.00000.00000.00000.00000.00000.00000.00000.00000.00000.

4、00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.0000X0.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.0000u.uuuu0.00000.00000.00000.00000.00000.0000-0.00000.0000-0.00000.0000-0.00

5、000.0000-0.00000.0000-0.00000.0000-0.00000.0000-0.00010.0002-0.00030.0007-0.00130.0026-0.00520.0105-0.02090.0419-0.08360.1665-0.33030.6501-1.25822.3487-4.02635.3684方程组的精确解为X=x2=X84=1.0000,与Gauss消去法求得的解差距很大,所得结果不够准确,计算简单但其消元过程有时不能进行到底而使求解出现解失真的情况。数值线性代数实验二一、实验名称:实对称正定矩阵的A的Cholesky分解.二、实验目的:用平方根法和改进的平

6、方根方法求解线性方程组Ax=b.三、实验内容与要求用所熟悉的计算机语言将Cholesky分解和改进的Cholesky分解编成通用的子程序,然后用编写的程序求解对称正定方程组Ax=b,其中(1)b随机的选取,系数矩阵为100阶矩阵/1011101110111011101110)(2)系数矩阵为40阶Hilbert矩阵,即系数矩阵A的第i行第j列元素为I;I,向量b的第i个分量为一1;I(3)用实验一的程序求解这两个方程组,并比较所有的计算结果,然后评价各个方法的优劣。平方根法:平方根法就是利用对称正定矩阵的三角分解而得到的求解对称正定方程组的一种有效方法。平方根法递推公式可以证明对于对称正定矩阵

7、A,可以唯一地分解成A=LLT,其中L是非奇异下三角形矩阵。模型二:利用平方根法对线性方程组Ax=b进行求解。用MATLAB建立m文件pingfg.m,程序如下:functionx=pingfg(A,b)%Cholesky分解n,n=size(A);L=zeros(n,n);%实际上不用为L申请空间,使用A即可L(1,1)=sqrt(A(1,1);fork=2:nL(k,1)=A(k,1)/L(1,1);endfork=2:n-1L(k,k)=sqrt(A(k,k)-sum(L(k,1:k-1).八2);fori=k+1:nL(i,k)=(A(i,k)-sum(L(i,1:k-1).*L(k,

8、1:k-1)/L(k,k);endendL(n,n)=sqrt(A(n,n)-sum(L(n,1:n-1).八2);%解下三角方程组Ly=by=zeros(n,1);fork=1:nj=1:k-1;y(k)=(b(k)-L(k,j)*y(j)/L(k,k);end%解上三角方程组Lx=yx=zeros(n,1);U=L;fork=n:-1:1j=k+1:n;x(k)=(y(k)-U(k,j)*x(j)/U(k,k);End模型三:利用改进的平方根法对线性方程组Ax=b进行求解。用MATLAB建立m文件ave.m,程序如下:functionx=ave(A,b,n)L=zeros(n,n);D=d

9、iag(n,0);S=L*D;fori=1:nL(i,i)=1;endfori=1:nforj=1:nif(eig(A)A=ones【199);B=10*ones(lj100);C=diag(Aj1)+diag(E,0)+diag(A,-1)b=ones(IDO,1);pingfg(C3b)输出结果如下:0.09180.08250.08340.08330.08330.08330.08330.08330.08330.08330.08330.0833Xans0.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.083

10、30.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.0833X0.08330.08330i;08330.08330.08330.08330i;08330.08330.08330.08330i;08330.0833U

11、.UdJJ0.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08340.08250.0918在输入:A=ones(1,99);B=10*ones(lj100);C=diag(扎1)+diag(Bj0)+diag(Aj-1)b=ones(100j1);输出为:ave(C?100Jans=0.09180.08250.08340,08330.08330.08330,08330.08330.08330,0833

12、0.08330.08330,08330.0833U.屈30.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330,08330.08330.08330.08330.08330.08330,08330.08330.08340.08250.0918A=hilb(40);b=Hil();pingfg(A;,b)ans1.0e+07*0.0000-0.00000.0001-0.00190.0171-0.09390.3305-0.76851.1892-1.20770.7761-0.

13、30260.06840.0135-0.0220-0.04500.0954-0.06750.0217-0.0032-0.00060.0013-0.00090.00020.0001-0.00010.00000.Q000-0.0000-0.00000.0000-0.0000-0.00000.0000A=hilb(dO);b=Hil();ave(Ajbj40)0.00000.0000-0,00010.0010-0.00880.04590.14160.2546-025990.2041-0.28120.26800.10590.5017-0.7878-0.13990.36920.5230-0.23950.0

14、245-0.4819-0.20150.6467-0.2634-0.02930.4175-0.43350.4124-04021-0.14970.15800.5615-0.2600-0.72070.34570.09950.27410.2579-0.79171.3333问题3:A=ones99);B=10*ones(lj100);C=diag(Aj1)+diag(乩0)+diag(扎-1)b=ones(1001);DelGauss(C3b)ans=0.09180.08250.08340.08330.08330.08330.08330.08330.08330.08330.08330.08330.083

15、30.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.08330.083301.08330.08330.08330.083301.08330.08330.08330.083301.08330.08330.0833608330.08330.08330.0833608330.08330.08340.08250,0918A=hilb(40);b=Hil();DelGauss(Ajb)ans=0Gauss消去法所得的结果与平方根法和改进的平方根法求得的结果差距很大,而且Gauss消去法所得的结果大部分为零,

16、显然平方根法和改进的平方根法求得的结果与方程的精确解比Gauss消去法的更接近,更准确。但不管是哪一类算法都只能在预定的计算步骤内或给定的精度内得到近似解,有一定的误差。数值线性代数实验三一、实验名称:矩阵A的QR分解二、实验目的:应用改进的GramSchmidt方法和Householder变换的方法计算矩阵A的QR分解.其中A=(a)gRmxn(mn),rankA=nij三、实验内容与要求输入:A的各列a,a,,a(a=a,,aT,j=1,n)12nj1jmj输出:Q的各列元素(存放在A的相应位置上)以及R的元素r(i=1,,n,j=i,,n)ij数值线性代数实验四一、实验名称:用迭代法求解

17、方程组及超松弛迭代和最佳松弛因子的确定.二、实验目的:应用Jacobi迭代法、GaussSeidel迭代法和超松弛迭代方法求解线性方程组Ax=b,并选择不同的松弛因子,观察松弛因子对松弛迭代法计算效果的影响.三、实验内容与要求d2ydy将常微分方程dx2dx(0a1)离散化得到差分方程Ax=b,取y(0)=0,y(1)=1a=0.5n=10h丄,应用Jacobi迭代法、GaussSeidel迭代法和超松弛迭代方n法求解线性方程组,分别取8=1,0.1,0.01,0.0001,用SOR迭代法计算对应的数值解,并与精确解进行比较.写出这三种迭代法求解线性方程组的步骤,并对计算结果进行分析.四、实验原理将0,1区间n等分,方程离散化得差分方程(8+h)y-(28+h)y+8y=ah2i+1ii-1差分方程对应的系数矩阵和右端项分别为厂(28+h)8+h8-(28+h)8+h(28+h)8b=8+h(28+h)丿(n1)x(n1)ah28y0ah2ah2ja

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论