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

下载本文档

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

文档简介

1、数值代数实验数值线性代数实验一一、 实验名称:矩阵的LU分解.二、 实验目的:用不选主元的LU分解和列主元LU分解求解线性方程组 Ax=b,并比较这两种方法三、实验内容与要求(1 )用所熟悉的计算机语言将不选主元和列主元LU分解编成通用的子程序,然后用编写的程序求解下面的 84阶方程组/ (i 1 / -ri / 7 S 618 61+151.58 6 1+:如158 6 1158 6 /斶/ 14 /将计算结果与方程组的精确解进行比较,并就此谈谈你对Gauss消去法的看法(2 )写出追赶法求解三对角方程组的过程,并编写程序求该实验中的方程组Gauss消去法:用消去法解方程组的基本思想是用逐次

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

3、: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);enddet=det*a(n,n);for k=n:-1:1for j=k+1:nb(k)=b(k)-a(k,j)*x(j);endx(k)=b(k)/a(k,k);End在 matlab 中输入如下:结果如下: 方程组的精确解为xi=x 2=二乂 84=1.0000,与Gauss消去法求得的解差距很大, 所得结果不够准确, 计算简单但其消元过程有时不能进行到底而使求解出现解失 真的情况。数值线性代数实验二、实验名称:实对称正定矩阵的 A的Cholesky分解.、

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

5、正定方程组的一种有效方法。平方根法递推公式可以证明对于对称正定矩阵A,可以唯一地分解成A=LLt,其中L是非奇异下三角形矩阵。模型二:利用平方根法对线性方程组Ax=b进行求解。用MATLAB建立m文件pingfg.m,程序如下:fun cti on 凶=p in gfg(A,b)%Cholesky 分解n,n =size(A);L=zeros(n,n); %实际上不用为 L申请空间,使用 A即可L(1,1)=sqrt(A(1,1);for k=2:nL(k,1)=A(k,1)/L(1,1);endfor k=2:n-1L(k,k)=sqrt(A(k,k)-sum(L(k,1:k-1)A2);f

6、or i=k+1:nL(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:门-1).人2);% 解下三角方程组 Ly=by=zeros(n,1);for k=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;for k=n:-1:1j=k+1:n;x(k)=(y(k)-U(k,j)*x(j)/U(k,k);End模型三:利用改进的平方根法对线性方程组 Ax=b 进行求解用 MAT

7、LAB 建立 m 文件 ave.m, 程序如下:function x=ave(A,b,n)%用改进平方根法求解 Ax=bL=zeros(n,n);%L 为 n*n 矩阵 D=diag(n,0); %D 为 n*n 的主对角矩阵 S=L*D;for i=1:n %L 的主对角元素均为 1L(i,i)=1;endfor i=1:nfor j=1:n% 验证 A 是否为对称正定矩阵if (eig(A)=0)|(A(i,j)=A( j,i) %A 的特征值小于 0 或 A 非对称时,输出 wrong disp( wrong );break ;endendendHilbert 矩阵用 MATLAB 建立

8、 m 文件 Hil.m, 程序如下:function b=Hil()for k=1:40for m=1:40s=0;t=s+1/(k+m-1);s=t;endb(k,1)=s;end在 matlab 中输入如下:输出结果如下:实用文档在输入:输出为:实用文档实用文档问题 3 :实用文档Gauss 消去法所得的结果与平方根法和改进的平方根法求得的结果差距很 大,而且 Gauss 消去法所得的结果大部分为零,显然平方根法和改进的平方根 法求得的结果与方程的精确解比 Gauss消去法的更接近,更准确。但不管是哪 一类算法都只能在预定的计算步骤内或给定的精度内得到近似解,有一定的误 差。数值线性代数实

9、验三、实验名称:矩阵 A的QR分解二、实验目的:应用改进的Gram Schmidt方法和Householder 变换的方法计算矩阵A的QR分解.其中A(aj)m n z、R (m n),rank A = n三、实验内容与要求输入:A的各列印月2,an(ajT a1j ,amj, j1, ,n)输出:Q的各列元素(存放在A的相应位置上)以及R的元素 rj (i 1, ,n,j i, ,n)数值线性代数实验四一、实验名称:用迭代法求解方程组及超松弛迭代和最佳松弛因子的确定二、 实验目的: 应用Jacobi迭代法、Gauss Seidel迭代法和 超松弛迭代方法求解 线性方程组Ax=b,并选择不同的

10、松弛因子,观察松弛因子对松弛迭代法计算效果的 影响.三、实验内容与要求d2y dy _将常微分方程dx2 dx a ( 0 a 1 )离散化得到差分方程Ax=b ,取y(0) o,y(1) 11a 0.5,n 100,h,应用Jacobi迭代法、Gauss Seidel迭代法和超松弛迭代n方法求解线性方程组,分别取1,0.1,0.01,0.0001,用SOR迭代法计算对应的数值解,并与精确解进行比较写出这三种迭代法求解线性方程组的步骤,并对计算结果进行分析四、实验原理将0,1区间n等分,方程离散化得差分方程2(h)% 1 (2h)yj% 1 ah差分方程对应的系数矩阵和右端项分别为(2 h)h(2 h)hA(2 h) OOO其中y。y(0), yny(1).ah2目0ah2bMhah2(2h) (n 1) (n 1)2ah (h)yn (n1)1SOR迭代法的迭代矩阵和常数项分别为1 1B (D L) U (1)D, f (D L) bk 1ksor迭代法的迭代公式:y B y f五、实验过程

温馨提示

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

评论

0/150

提交评论