欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    线性方程组迭代解法.doc

    • 资源ID:3032127       资源大小:98.34KB        全文页数:12页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    线性方程组迭代解法.doc

    -/实验六:线性方程组迭代解法 1)实验目的 熟悉Matlab编程; 学习线性方程组迭代解法的程序设计算法2)实验题目1.研究解线性方程组Ax=b迭代法收敛速度。A为20阶五对角距阵 要求:(1)选取不同的初始向量x0 及右端向量b,给定迭代误差要求,用雅可比迭代和高斯-赛德尔迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。(2)用SOR迭代法求解上述方程组,松弛系数取1< <2的不同值,在 时停止迭代.记录迭代次数,分析计算结果并得出你的结论。2.给出线性方程组,其中系数矩阵为希尔伯特矩阵:,假设若取分别用雅可比迭代法及SOR迭代()求解,比较计算结果。3)实验原理与理论基础1.雅克比(Jacobi)迭代法算法设计: 输入矩阵a与右端向量b及初值x(1,i); 按公式计算得 2.高斯赛得尔迭代法算法设计:1. 输入矩阵a与右端向量b及初值x(1,i). 2. (i = 1, 2, n) 3.超松驰法算法设计:输入矩阵a与右端向量b及初值x(1,i)。 ,4)实验内容第一题实验程序:1.雅克比迭代法:function =yakebi(e)%输入矩阵a与右端向量b。for i=1:20 a(i,i)=3;endfor i=3:20 for j=i-2 a(i,j)=-1/4; a(j,i)=-1/4; endendfor i=2:20 for j=i-1 a(i,j)=-1/2; a(j,i)=-1/2; endendb=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2;k=1;n=length(a);for i=1:n x(1,i)=1;%数组中没有第0行。endwhile k>=1 for i=1:n m=0; %此步也可以用ifj=i条件判定一下。 for j=1:(i-1) m=m+a(i,j)*x(k,j); end for j=(i+1):n m=m+a(i,j)*x(k,j); end x(k+1,i)=(b(i)-m)/a(i,i); end l=0; %判定满足条件使循环停止迭代。 for i=1:n l=l+abs(x(k+1,i)-x(k,i); end if l<e break end k=k+1;end%输出所有的x的值。 x(k+1,:)k 2.高斯赛德尔迭代法:function =gaoshisaideer(e)for i=1:20 a(i,i)=3;endfor i=3:20 for j=i-2 a(i,j)=-1/4; a(j,i)=-1/4; endendfor i=2:20 for j=i-1 a(i,j)=-1/2; a(j,i)=-1/2; endendb=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2;k=1;n=length(a);for i=1:n x(1,i)=0;%数组中没有第0行。endwhile k>=1 for i=1:n p=0;q=0; for j=1:(i-1) p=p+a(i,j)*x(k+1,j); end for j=(i+1):n q=q+a(i,j)*x(k,j); end x(k+1,i)=(b(i)-q-p)/a(i,i); end l=0; %判定满足条件使循环停止迭代。 for i=1:n l=l+abs(x(k+1,i)-x(k,i); end if l<e break end k=k+1;end%输出所有的x的值。 x(k+1,:)k3.SOR迭代法程序:function =caosongci(e,w)for i=1:20 a(i,i)=3;endfor i=3:20 for j=i-2 a(i,j)=-1/4; a(j,i)=-1/4; endendfor i=2:20 for j=i-1 a(i,j)=-1/2; a(j,i)=-1/2; endendb=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2;k=1;n=length(a);for i=1:n x(1,i)=0;%数组中没有第0行。endwhile k>=1 if w>=2|w<=1 请重新输入w的值,w在1与2之间; break end for i=1:n p=0;q=0; for j=1:(i-1) p=p+a(i,j)*x(k+1,j); end for j=i:n q=q+a(i,j)*x(k,j); end x(k+1,i)=x(k,i)+w*(b(i)-q-p)/a(i,i); end l=0; %判定满足条件使循环停止迭代。 for i=1:n l=l+abs(x(k+1,i)-x(k,i); end if l<e break end k=k+1;end%输出所有的x的值。 x(k+1,:)k第二题实验程序:1.雅克比迭代法:function X = p211_1_JJ(n)Hn = GET_Hn(n);b = GET_b(n);temp = 0;X0 = zeros(1, n);X_old = zeros(1, n);X_new = zeros(1, n);disp(Now Jacobi method!);disp(Start with the vector that (0, 0, 0, .)T);for i = 1:n for k = 1:n X_old = X_new; temp = 0; for j = 1:n if(j = i) temp = temp + Hn(i, j) * X_old(j); end end X_new(i) = (b(i) - temp) / Hn(i, i); endendX = X_new;end2.SOR迭代法:function X = p211_1_SOR(n, w)Hn = GET_Hn(n);b = GET_b(n);temp01 = 0;temp02 = 0;X0 = zeros(1, n);X_old = zeros(1, n);X_new = zeros(1, n);disp(Now Successive Over Relaxtion method!);disp(Start with the vector that (0, 0, 0, .)T);for i = 1:n for k = 1:n X_old = X_new; temp01 = 0; temp02 = 0; for j = 1:n if(j < i) temp01 = temp01 + Hn(i, j) * X_new(j); end if(j > i) temp02 = temp02 + Hn(i, j) * X_old(j); end end end X_new(i) = w * (b(i) - temp01 - temp02) / Hn(i, i) + X_old(i);endX = X_new;end5)实验结果第一题实验结果:1.雅克比迭代法:输入:>> b=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2;yakebi(0.00001)结果:ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 122.高斯赛德尔迭代法:此时初值全取1;输入:>> b=2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2;>> gaoshisaideer(0.00001)结果:ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k =14此时初值全取1;输入:>> b=2.5 1.9 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.9 2.5;gaoshisaideer(0.00001)结果:ans = Columns 1 through 12 1.0969 1.0707 1.0219 1.0103 1.0039 1.0016 1.0006 1.0003 1.0001 1.0001 1.0001 1.0001 Columns 13 through 20 1.0003 1.0006 1.0016 1.0039 1.0103 1.0219 1.0707 1.0969k = 143.SOR迭代法:>> caosongci(0.00001,1.1)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 11>> caosongci(0.00001,1.2)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 12>> caosongci(0.00001,1.3)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 15>> caosongci(0.00001,1.4)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 19>> caosongci(0.00001,1.5)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 25>> caosongci(0.00001,1.6)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 34>> caosongci(0.00001,1.7)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 47>> caosongci(0.00001,1.8)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 73>> caosongci(0.00001,1.9)ans = Columns 1 through 12 0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 Columns 13 through 20 0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793k = 150第二题实验结果:1.雅克比迭代法: >> p211_1_JJ(6) Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans = 2.4500 1.1036 0.6265 0.4060 0.2831 0.2071>> p211_1_JJ(8)Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans =2.7179 1.4101 0.8524 0.5809 0.4221 0.3198 0.2497 0.1995 >> p211_1_JJ(10)Now Jacobi method!Start with the vector that (0, 0, 0, .)Tans = Columns 1 through 9 2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445 0.2807 0.2325 Column 10 0.19512.SOR迭代法:n=6, =1,1.25,1.5的时候>> p211_1_SOR(6, 1)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = 2.4500 1.1036 0.6265 0.4060 0.2831 0.2071>> p211_1_SOR(6, 1.25)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = 3.0625 0.2310 0.8704 0.3389 0.3141 0.2097>> p211_1_SOR(6, 1.5)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = 3.6750 -1.1009 2.0106 -0.3994 0.7670 -0.0384与n=8, =1,1.25,1.5的时候>> p211_1_SOR(8, 1)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans =2.7179 1.4101 0.8524 0.5809 0.4221 0.3198 0.2497 0.1995>> p211_1_SOR(8, 1.25)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans =3.3973 0.4887 1.0898 0.5062 0.4501 0.3203 0.2573 0.2042>> p211_1_SOR(8, 1.5)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans =4.0768 -0.9424 2.2923 -0.2753 0.9252 0.0578 0.4071 0.1275与n=10, =1,1.25,1.5的时候>> p211_1_SOR(10, 1)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = Columns 1 through 9 2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445 0.2807 0.2325 Column 10 0.1951>> p211_1_SOR(10, 1.25)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = Columns 1 through 9 3.6612 0.7098 1.2835 0.6617 0.5807 0.4299 0.3506 0.2844 0.2363 Column 10 0.1984>> p211_1_SOR(10, 1.5)Now Successive Over Relaxtion method!Start with the vector that (0, 0, 0, .)Tans = Columns 1 through 9 4.3935 -0.7958 2.5326 -0.1523 1.0720 0.1565 0.5050 0.2041 0.2819 Column 10 0.17666)实验结果分析与小结本次实习主要是学会应用雅克比迭代法、高斯赛德尔迭代法、SOR迭代法三种迭代法,并且了解三种迭代法的性质以及迭代精度等。 第一题中取的b对于雅克比迭代法、高斯赛得尔迭代法都是收敛的,对于相同的初值与右端向量明显可以看出高斯赛得尔迭代法比雅克比迭代法快。由第二题可得出对于SOR迭代方法选择不同的松弛因子,收敛次数大大不同,而当松弛因子为1.1时,在同等条件下迭代最快。

    注意事项

    本文(线性方程组迭代解法.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开