最新数值线性代数第二版徐树方高立张平文上机习题试验报告资料_第1页
最新数值线性代数第二版徐树方高立张平文上机习题试验报告资料_第2页
最新数值线性代数第二版徐树方高立张平文上机习题试验报告资料_第3页
最新数值线性代数第二版徐树方高立张平文上机习题试验报告资料_第4页
最新数值线性代数第二版徐树方高立张平文上机习题试验报告资料_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档上机习题1先用你所熟悉的的计算机语言将不选主元和列主元Gauss消去法编写成通用的子程序;后用你编写的程序求解 84阶方程组;最后将你的计算结果与方程的精确解进行比较,并就 此谈谈你对Gauss消去法的看法。Sol:(1)先用matlab将不选主元和列主元 Gauss消去法编写成通用的子程序,得到L,U,PL,U 】=GaussLA(A)得到L,U满足A= LU不选主元 Gauss消去法:列主元Gauss消去法:L,U , P】=GaussCol (A)得到L ,U , P满足PA= LU(2)用前代法解Ly =b(or Pb ,得国用回代法解Ux =y,得X求解程序为|x=Gauss

2、(A,b, L,U,P (回可缺省,缺省时默认为单位矩阵)(3)计算脚本为ex1_1代码%|法1.1.3 (计算三角分解: Gauss消去法)fun ctio nL,U=GaussLA(A)n=len gth(A);for k=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( 计算列主元三角分解:列主元 G

3、auss 消去法)function L,U,P=GaussCol(A)n=length(A);for k=1:n-1s,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;if A(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)

4、;P=eye(n);for i=1:n-1temp=P(i,:);P(i,:)=P(u(i),:);P(u(i),:)=temp;endend%高斯消去法解线性方程组function x=Gauss(A,b,L,U,P)if nargin<5P=eye(length(A);endn=length(A);b=P*b;for j=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;for j=n:-1:2y(j)=y(j)/U(j,j);y(1:j-1)=y(1:j-1)-y(j)*U

5、(1:j-1,j);endy(1)=y(1)/U(1,1);x=y;end ex1_1 clc;clear;%第一题A=6*eye(84)+diag(8*o nes(1,83),-1)+diag(o nes(1,83),1);b=7;15*o nes(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);%解的比较'o-' );title('Gauss');'.-');title(&

6、#39;PGauss');'*-' );title('精确解');subplot(1,3,1);plot(1:84,x1_1,subplot(1,3,2);plot(1:84,x1_2,subplot(1,3,3);plot(1:84,o nes(1,84),结果为(其中Gauss表示不选主元的Gauss消去法,PGauss表示列主元Gauss 消去法,精确解为1,1鳥4):精品文档精品文档x 10 8 GaussPGauss精确解050100(2)求解得求解得21.81.61.41.210.80.60.40.20由图,显然列主元消去法与精确解更为接近,

7、不选主元的Gauss消去法误差比列主元消去法大,且不如列主元消去法稳定。Gauss消去法重点在于 A的分解过程,无论 A如何分解,后面两步的运算过程不变。2.先用你所熟悉的的计算机语言将平方根法和改进的平方根法编写成通用的子程序;然后用你编写的程序求解对称正定方程组Ax=b。Sol:(1)先用matlab将平方根法和改进的平方根法编写成通用的子程序,得到L, (D):平方根法:L=Cholesky(A) 改进的平方根法:L,D=LDLt(A)求解程序为x=Gauss(A,b,L,U,P)(U = LT or U = DLT|,回此时缺省,缺省时默认为单位矩阵)(3)计算脚本为ex1_2代码精品

8、文档%算法 1.3.1 (计算 Cholesky 分解:平方根法) function L=Cholesky(A) n=length(A);for k=1:nA(k,k)=sqrt(A(k,k);A(k+1:n,k)=A(k+1:n,k)/A(k,k);for j=k+1:nA(j:n,j)=A(j:n,j)-A(j:n,k)*A(j,k);endendL=tril(A);end%十算LDL '分解:改进的平方根法function L,D=LDLt(A) n=length(A);for j=1:nfor i=1:nv(i,1)=A(j,i)*A(i,i);endA(j,j)=A(j,j)

9、-A(j,1:j-1)*v(1:j-1,1);A(j+1:n,j)=(A(j+1:n,j)-A(j+1:n,1:j-1)*v(1:j-1,1)/A(j,j);endL=tril(A);D=diag(diag(A);精品文档精品文档L=L-diag(diag(L)+diag(ones(1,n);end%高斯消去法解线性方程组function x=Gauss(A,b,L,U,P)if nargin<5P=eye(length(A);endn=length(A);b=P*b;for j=1:n-1b(j)=b(j)/L(j,j);b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j

10、);endb(n)=b(n)/L(n,n);y=b;for j=n:-1:2y(j)=y(j)/U(j,j);y(1:j-1)=y(1:j-1)-y(j)*U(1:j-1,j);endy(1)=y(1)/U(1,1);x=y;endex1_2%第二题%第一问A=10*eye(100)+diag(ones(1,99),-1)+diag(ones(1,99),1);b=round(100*rand(100,1);%平方根法L=Cholesky(A);x1_2_1_1=Gauss(A,b,L,L');%改进的平方根法L,D=LDLt(A);x1_2_1_2=Gauss(A,b,L,D*L&#

11、39;);%第二问A=hilb(40);b=sum(A);b=b'%平方根法L=Cholesky(A);x1_2_2_1=Gauss(A,b,L,L');%改进的平方根法L,D=LDLt(A);x1_2_2_2=Gauss(A,b,L,D*L');结果分别为x1_2_1_1 =7.25868.4143-0.40138.59845.41770.22492.33364.43898.27728.7890-0.16678.87848.38243.29787.64010.30143.34578.24186.23688.39065.8575-0.96567.79817.98425.

12、36016.41436.49662.62016.30240.35637.1342-0.69852.85060.19270.22277.58015.97621.65839.4409-1.06774.23622.70606.70377.25700.72654.47783.49595.56375.86756.76141.51806.05825.90020.93970.70314.02949.00321.93825.61500.91207.26521.43604.37495.81467.47918.39424.57890.81691.25231.66038.14480.89157.94010.7075

13、8.98492.44371.57771.77905.63193.90182.35067.59254.72454.16278.64831.35436.80876.55892.60275.41400.25770.00904.65226.46858.6626-0.09485.28564.2385-0.67063.4671x1_2_1_2 =7.25868.4143-0.40138.59845.41770.22492.33364.43898.27728.7890-0.16678.87848.38243.29787.64010.30143.34578.24186.23688.39065.8575-0.9

14、6567.79817.98425.36016.41436.49662.62016.30240.35637.1342-0.69852.85060.19270.22277.58015.97621.65839.4409-1.06774.23622.70606.70377.25700.72654.47783.49595.56375.86756.76141.51806.05825.90020.93970.70314.02949.00321.93825.61500.91207.26521.43604.37495.81467.47918.39424.57890.81691.25231.66038.14480

15、.89157.94010.70758.98492.44371.57771.77905.63193.90182.35067.59254.72454.16278.64831.35436.80876.55892.60275.41400.25770.00904.65226.46858.6626-0.09485.28564.2385-0.67063.4671x1_2_2_1 =1.0e+07 *0.0000-0.00000.0001-0.0004-0.00140.0424-0.29801.1419-2.73354.2539-4.30182.7733-1.19890.5406-0.36880.3285-0

16、.44380.4621-0.25130.05650.0000-0.00510.0071-0.0027-0.00310.0036-0.00190.00090.0002-0.0002-0.00060.00040.0001-0.00020.00010.0000-0.00000.0000-0.0000-0.0000x1_2_2_2 =1.00001.00000.99981.00111.00640.86811.8034-1.56935.5763-2.5315-1.769310.4883-6.28070.5882-4.715722.8299-19.91348.703210.3265-25.214010.0

17、28212.3882-1.9425精品文档精品文档14.1891-12.0552-0.5803-12.47918.56529.8724-10.550216.3871-5.813213.421611.1767-64.315446.383712.6957-21.755612.1204-1.9342然后评价各个方法的优Gauss消去法3.用第 1 题的程序求解第 2题的两个方程组并比较所有的计算结果, 劣。Sol:Gauss表示不选主元的Gauss消去法,PGauss表示列主元计算脚本为:%第三题%第一问A=10*eye(100)+diag(ones(1,99),-1)+diag(ones(1,99

18、),1);b=round(100*rand(100,1);精品文档精品文档%不选主元 Gauss 消去法L,U=GaussLA(A); x1_3_1_1=Gauss(A,b,L,U);%列主元 Gauss 消去法 L,U,P=GaussCol(A); x1_3_1_2=Gauss(A,b,L,U,P);%第二问A=hilb(40);b=sum(A);b=b'%不选主元 Gauss 消去法L,U=GaussLA(A); x1_3_2_1=Gauss(A,b,L,U);%列主元 Gauss 消去法L,U,P=GaussCol(A); x1_3_2_2=Gauss(A,b,L,U,P);ex

19、1_2;y1=1:100;y2=1:40;subplot(4,2,1);plot(y1,x1_2_1_1);title(' 平方根法 1' );subplot(4,2,2);plot(y1,x1_2_1_2);title(' 改进的平方根法 1' );subplot(4,2,3);plot(y1,x1_3_1_1);title('Gauss1' );subplot(4,2,4);plot(y1,x1_3_1_2);title('PGauss1' );subplot(4,2,5);plot(y2,x1_2_2_1);title(&#

20、39; 平方根法 2' );精品文档精品文档改进的平万根法2');subplot(4,2,6);plot(y2,x1_2_2_2);title(subplot(4,2,7);plot(y2,x1 3 2 1);title('Gauss2');10-510-5200平万根法11020304050Gaussl607080901005010203040506070809010050107平方根法25101520Gauss2253035400-5-20005101520-50101050改进的平万根法11020304050PGauss160708090100500 10

21、2030405060708090改进的平方根法2100-505005101520PGauss22530354025303540-50000510152025303540'PGauss2');subplot(4,2,8);plot(y2,x1_3_2_2);title(平方根法和改进的平法根法计算量更小,计算过程稳定,但使用范围窄;不选主元和列主元的 Gauss消去法计算量较大,但适用范围广。例题1.3.2考虑对称正定线性方程组Ax=b,其中向量b是随机生成的,其元素是服从区间0,1上均匀分布的随机数,矩阵上均匀分布的随机数。A 二 LLT,这里L是随机生成的一个下三角矩阵,其元素是服从区间1,2对n=10, 20,.,500分别应用 Gauss消去法、列主元Gauss消去法和Cholesky分解法求解该 方程组,

温馨提示

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

评论

0/150

提交评论