线性代数方程组的数值解法.docx_第1页
线性代数方程组的数值解法.docx_第2页
线性代数方程组的数值解法.docx_第3页
线性代数方程组的数值解法.docx_第4页
线性代数方程组的数值解法.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

线性代数方程组的数值解法【实验目的】1. 学会用matlab 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2. 通过实例学习用线性代数方程组解决简化的实际问题。【实验内容】【题目1】通过求解线性方程组和,理解条件数的意义和方程组的性态对解的影响。其中是n阶范德蒙矩阵,即=,是n阶希尔伯特矩阵,分别是,的行和。(1)编程构造(可直接用命令产生)和,;你能预先知道方程组和的解吗?令n=5,用左除命令求解(用预先知道的解可检验程序)。(2)令n=5,7,9,,计算,的条件数。为观察它们是否病态,做以下试验:,不变,和的元素,分别加扰动后求解;和 不变,的分量,分别加扰动求解。分析a和b的微小扰动对解的影响。取,。(3)经扰动得到的解记做,计算误差,与用条件数估计的误差相比较。1.1构造,和,首先令n=5,构造出,和,。首先运行以下程序,输出。function a1=fdm(n)k=;n=5o=ones(n,1);for i=1:n a(i)=1+0.1*(i-1); endfor i=1:n k=k,a(i);endk=k;for i=1:n-1 o=o,k.*o(:,i);enda1=o;直接由命令产生a2:n=5;a2=hilb(n);得到a2:a2 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111运行以下程序对a1,a2求行和:b1=sum(a1,2)b2=sum(a2,2)输出以下结果:b1 = 5.0000 6.1051 7.4416 9.0431 10.9456b2 = 2.2833 1.4500 1.0929 0.8845 0.7456由于,分别是,的行和,所以可以预知。运行下列程序,用左除命令对,进行求解:x1=a1b1x2=a2b2得到以下结果:x1 = 1.0000 1.0000 1.0000 1.0000 1.0000x2= 1.0000 1.0000 1.0000 1.0000 1.0000可知,得到的x1,x2与预想结果相同。1.2 计算条件数并观察是否为病态1. 不加扰动,计算条件数。运行以下程序:c1=cond(a1)c2=cond(a2)得到以下结果:c1 = 3.5740e+005c2 = 4.7661e+005由此可知,a1,a2的条件数分别是3.574*105, 4,766*105。2. ,不变,分别加扰动(1)n=5时设x11,x12,x13分别为a1添加扰动10-10,10-8, 10-6后的解。x21,x22,x23分别为a2添加扰动后的解。运行以下程序,输出添加扰动后的解:a10=sparse(n,n,10(-10),n,n);a8=sparse(n,n,10(-8),n,n);a6=sparse(n,n,10(-6),n,n);a11=a10+a1;a12=a8+a1;a13=a6+a1;a21=a10+a2;a22=a8+a2;a23=a6+a2;x11=a11b1;x12=a12b1;x21=a21b1;x22=a22b2;x23=a23b2;x13=a13b2;x1,x11,x12,x13,x2,x21,x22,x23得到以下解:x1x11x12x13x2x21x22x231.00001.00001.00000.99931.00001.00001.00000.99941.00001.00001.00001.00251.00001.00001.00011.01211.00001.00001.00000.99671.00001.00000.99940.94571.00001.00001.00001.00191.00001.00001.00091.08451.00001.00001.00000.99961.00001.00000.99960.9578 (2)n=7时得到如下结果:x1x11x12x13x2x21x22x231.00001.00000.99990.99501.00001.00000.99990.99901.00001.00001.00021.02451.00001.00011.00451.04171.00001.00000.99950.95031.00000.99950.95460.58301.00001.00001.00051.05361.00001.00201.18162.66791.00001.00000.99970.96761.00000.99620.6594-2.12731.00001.00001.00011.01041.00001.00331.29973.75201.00001.00001.00000.99861.00000.99890.90010.0827(3)n=9时得到如下结果:x1x11x12x13x2x21x22x231.00001.00000.99980.97581.00001.00000.99990.99991.00001.00001.00151.14811.00001.00121.00541.00561.00001.00000.99610.60621.00000.97850.90550.90211.00001.00011.00601.59581.00001.15771.69331.71771.00000.99990.99440.43891.00000.4084-1.6000-1.69141.00001.00001.00341.33671.00002.23046.40796.59801.00001.00000.99870.87431.0000-0.4355-5.3093-5.53101.00001.00001.00031.02671.00001.87894.86284.99861.00001.00001.00000.99751.00000.78030.03430.00043.和 不变,的分量,分别加扰动设x11,x12,x13分别为b1添加扰动10-10,10-8, 10-6后的解。x21,x22,x23分别为b2添加扰动后的解。(1)n=5时运行以下程序:b10=sparse(n,1,10(-10),n,1);b8=sparse(n,1,10(-8),n,1);b6=sparse(n,1,10(-6),n,1);b11=b10+b1;b12=b8+b1;b13=b6+b1;b21=b10+b2;b22=b8+b2;b23=b6+b2;x11=a1b11;x12=a1b12;x13=a1b13;x21=a2b21;x22=a2b22;x23=a2b23;x1,x11,x12,x13,x2,x21,x22,x23得到以下结果:(1)n=5时x1x11x12x13x2x21x22x231.00001.00001.00001.00071.00001.00001.00001.00061.00001.00001.00000.99751.00001.00000.99990.98741.00001.00001.00001.00331.00001.00001.00061.05671.00001.00001.00000.99811.00001.00000.99910.91181.00001.00001.00001.00041.00001.00001.00041.0441(2)n=7时x1x11x12x13x2x21x22x231.00001.00001.00011.00501.00001.00001.00011.01201.00001.00000.99980.97551.00000.99990.99500.49551.00001.00001.00051.04971.00001.00051.05056.04501.00001.00000.99950.94641.00000.99800.7982-19.18021.00001.00001.00031.03241.00001.00381.378438.83781.00001.00000.99990.98961.00000.99670.6670-32.29731.00001.00001.00001.00141.00001.00111.111012.0991(3)n=9时1.0000 1.0000 1.0002 1.0243 1.0000 1.0000 1.0022 1.2188 1.0000 1.0000 0.9985 0.8516 1.0000 0.9984 0.8425 -14.75 1.0000 1.0000 1.0039 1.3948 1.0000 1.0276 3.7568 276.68 1.0000 0.9999 0.9940 0.4027 1.0000 0.7978 -19.22 -2021 1.0000 1.0001 1.0056 1.5624 1.0000 1.7581 76.81 7582 1.0000 1.0000 0.9966 0.6625 1.0000 -0.5768 -156.69 -15768 1.0000 1.0000 1.0013 1.1260 1.0000 2.8396 184.97 18398 1.0000 1.0000 0.9997 0.9732 1.0000 -0.1263 -111.63 -11262 1.0000 1.0000 1.0000 1.0025 1.0000 1.2816 29.16 2817 比较观察可以看出,扰动位于a与位于b的差别并不大,即同一方程中将同一扰动加在a上与加在b上的结果近似相同,差别大致不超过1%。同一方程扰动同一元素时,扰动越大,对结果的影响越大,而且在许多项上,解的变化与扰动的大小有近似线性的关系。对同一元素进行相同扰动时,第二个方程的解受到的影响更大。另外,对于同一n值,a2比a1更病态。n越大,两个矩阵的病态都越大。在n=9时与n=5,7时有较大的不同。尤其是在解的变化值不大于1时,没有明显的规律上的变化。与之前的值进行比较,在第一个方程中,解的变化并没有随着n的增大而明显增大(与第二个方程相比)。但不同的是,此时在第二个方程中,出现了很多变化值大于1的解的点,这些点的变化出现了新的规律:一方面,当扰动在a时,扰动的大小不仅与解的变化没有线性关系,甚至不再有单调关系,扰动的增大不一定会引起解的变化;另一方面,扰动位于b时,扰动的大小与解的变化仍有很好地线性关系,但此时系数已经较大。由此可见,a1的病态性不太严重,而a2已经十分病态,并且在一些情况下,解的误差已经没有规律。1.3 计算误差1. ,不变,分别加扰动(1)n=5时设w11,w12,w13分别为a1添加扰动10-10,10-8, 10-6后的解。w21,w22,w23分别为a2添加扰动后的解。在上一步扰动a的基础上,运行以下程序:w11=abs(x11-x1)./abs(x1);w12=abs(x12-x1)./abs(x1);w13=abs(x13-x1)./abs(x1);w21=abs(x21-x1)./abs(x2);w22=abs(x22-x1)./abs(x2);w23=abs(x23-x1)./abs(x2); w11,w12,w13,w21,w22,w23得到以下数据:w11w12w13w21w22w230.00000.00000.00070.00000.00000.00060.00000.00000.00250.00000.00010.01210.00000.00000.00330.00000.00060.05430.00000.00000.00190.00000.00090.08450.00000.00000.00040.00000.00040.0422(2)n=7时w11w12w13w21w22w230.00000.00010.00500.00000.00010.00100.00000.00020.02450.00010.00450.04170.00000.00050.04970.00050.04540.41700.00000.00050.05360.00200.18161.66790.00000.00030.03240.00380.34063.12730.00000.00010.01040.00330.29972.75200.00000.00000.00140.00110.09990.9173(3)n=9时w11w12w13w21w22w230.00000.00020.02420.00000.00010.00010.00000.00150.14810.00120.00540.00560.00000.00390.39380.02150.09450.09790.00010.00600.59580.15770.69330.71770.00010.00560.56110.59162.60002.69140.00000.00340.33671.23045.40785.59780.00000.00130.12571.43566.30956.53130.00000.00030.02670.87893.86273.99850.00000.00000.00250.21970.96570.99972.和 不变,的分量,分别加扰动设x11,x12,x13分别为b1添加扰动10-10,10-8, 10-6后的解。x21,x22,x23分别为b2添加扰动后的解。(1)n=5时在上一步扰动b的基础上,运行以下程序:w11=abs(x11-x1)./abs(x1);w12=abs(x12-x1)./abs(x1);w13=abs(x13-x1)./abs(x1);w21=abs(x21-x1)./abs(x2);w22=abs(x22-x1)./abs(x2);w23=abs(x23-x1)./abs(x2); w11,w12,w13,w21,w22,w23(1)n=5时w11w12w13w21w22w230.00000.00000.00070.00000.00000.00060.00000.00000.00250.00000.00010.01260.00000.00000.00330.00000.00060.05670.00000.00000.00190.00000.00090.08820.00000.00000.00040.00000.00040.0441(2)n=7时w11w12w13w21w22w230.00000.00010.00500.00000.00010.01200.00000.00020.02450.00010.00500.50450.00000.00050.04970.00050.05055.04500.00000.00050.05360.00200.201820.18020.00000.00030.03240.00380.378437.83780.00000.00010.01040.00330.333033.29730.00000.00000.00140.00110.111011.0991(3)n=9时w11w12w13w21w22w230.0000 0.0002 0.0243 0.0000 0.0022 0.2188 0.0000 0.0015 0.1484 0.0016 0.1575 15.7529 0.0000 0.0039 0.3948 0.0276 2.7568 275.6765 0.0001 0.0060 0.5973 0.2022 20.2162 2021.62 0.0001 0.0056 0.5624 0.7581 75.8123 7581.23 0.0000 0.0034 0.3375 1.5768 157.681 15768.10 0.0000 0.0013 0.1260 1.8397 183.976 18397.57 0.0000 0.0003 0.0268 1.1263 112.631 11263.06 0.0000 0.0000 0.0025 0.2816 28.1585 2815.85 由此可知,n=5,a1与a2都不太病态;n=7时,a1不太病态,a2已经比较病态;n=9时,a1具有一个比较大的条件数,但实际误差并没有太大,仍然不太病态,a2已经很病态。【题目3】已知方程组ax=b,其中ar2020,定义为试通过迭代法求解此方程组,认识迭代法收敛的含义以及迭代初值和方程组系数矩阵性质对收敛速度的影响。实验要求:(1)选取不同的初始向量x(0)和不同的方程组右端项向量b ,给定迭代误差要求,用雅可比迭代法和高斯-赛德尔迭代法计算,观测得到的迭代向量序列是否均收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论;(2)取定右端向量b和初始向量x(0),将a的主对角线元素成倍增长若干次,非主对角线元素不变,每次用雅可比迭代法计算,要求迭代误差满足x(k+1)-x(k)tol & ktol & km %设置精度要求 k=k+1; %记录迭代次数 xg=bg*xg+fg;end1) 对不同的初始向量x0和不同的方程组右端项向量b进行实验(误差要求10(-5))编写程序生成矩阵aa1=sparse(1:20,1:20,3,20,20);a2=sparse(1:19,2:20,-1/2,20,20);a3=sparse(1:18,3:20,-1/4,20,20);a=a1+a2+a3+a2+a3;选取初始向量x(0) =(1,1,1)t ,b=(1,1,1)t,迭代要求为误差满足x(k+1)-x(k)10-5,程序代码如下:b=ones(20,1); %输入初始右端向量bm=100; %最高迭代100次tol=1e-5; %输入误差范围xj,k=jacdd(a,b,m,tol); %输出雅可比迭代结果xg,k=gsdd(a,b,m,tol); %输出高斯赛德尔迭代结果x=ab; %用左除得到的精确结果x,xj,xg得到如下结果:精确值x雅可比迭代结果xj高斯赛德尔迭代结果xg0.48160.48160.48160.57340.57340.57340.63280.63280.63280.65210.65210.65210.66090.66090.66100.66430.66430.66430.66570.66570.66570.66630.66630.66630.66650.66650.66650.66660.66660.66660.66660.66660.66660.66650.66650.66650.66630.66630.66630.66570.66570.66570.66430.66430.66430.66090.66090.66090.65210.65210.65210.63280.63280.63280.57340.57340.57340.48160.48160.4816k = 17g =10由以上数据可知,两种迭代方法得到的结果均收敛到精确解。采用雅可比迭代共需17次迭代,高斯赛德尔共需10次迭代。2) 固定b=(1,1,1) t,x0为随机生成的列向量,输出如下结果:精确值x雅可比迭代结果xj高斯赛德尔迭代结果xg0.48160.48160.48160.57340.57340.57340.63280.63280.63280.65210.65210.65210.66090.66090.66090.66430.66430.66430.66570.66570.66570.66630.66630.66630.66650.66650.66650.66660.66660.66660.66660.66660.66660.66650.66650.66650.66630.66630.66630.66570.66570.66570.66430.66430.66430.66090.66090.66090.65210.65210.65210.63280.63280.63280.57340.57340.57340.48160.48160.4816k = 15g =10由此可见,初始向量的选取并不影响最终结果,两种迭代方法得到的结果、依然收敛到精确解。采用雅可比迭代共需15次迭代,高斯赛德尔共需10次迭代。3) 固定b=(2,2,2)t,在随机生成一个列向量x0,输出如下结果:k = 5g = 44) 固定x(0) =(1,1,1)t,再随机生成一个列向量b,输出结果如下:精确值x雅可比迭代结果xj高斯赛德尔迭代结果xg0.22520.22520.22520.26850.26850.26850.41030.41030.41030.42470.42470.42480.24930.24930.24930.32860.32860.32860.32740.32740.32740.40540.40540.40540.42900.42900.42900.43850.43860.43850.29560.29560.29560.38920.38920.38920.35830.35830.35830.20510.20510.20510.19470.19470.19470.31580.31580.31580.46080.46080.46080.27980.27980.27980.30490.30490.30490.14870.14870.1487k = 17g =11由上表可知,右端向量的选取并不影响其最终结果的收敛性。采用雅可比迭代共需17次,采用高斯赛德尔迭代共需10次。通过上述结果可知:(1)改变右端向量b和初始向量x0并不改变迭代方法是否收敛的结果;(2)其它条件相同的情况下,高斯-赛德尔迭代法的收敛速度要比雅可比迭代法快;(3)此外一个显而易见的结论是初始向量x0与精确解的误差会影响迭代次数。3.2 将主对角元素成倍增长固定x(0) =(1,1,1)t ,b=(1,1,1)t,依次设置主对角元素为3,6,12,24.48,采用高斯迭代法,按照上述程序进行迭代,输出迭代次数,可得下表:主对角元素36122448迭代次数1610765通过上述结果可知:在右端变量b和初始向量x0固定的情况下, 运用同一种迭代方法,迭代收敛的速度有系数矩阵a决定,其主对角元素越大,迭代矩阵的谱半径越小,迭代次数越少。【题目5】设国民经济由农业、制造业和服务业三个部门构成,已知某年它们之间的投入产出关系、外部需求、初始投入等如表所示.国

温馨提示

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

评论

0/150

提交评论