2022年2022年计算方法上机作业集合 .pdf
《2022年2022年计算方法上机作业集合 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算方法上机作业集合 .pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一次 &第二次上机作业上机作业:1.在 Matlab 上执行: 5.1-5-0.1 和 1.5-1-0.5 给出执行结果,并简要分析一下产生现象的原因。解:执行结果如下:在 Matlab 中,小数值很难用二进制进行描述。由于计算精度的影响,相近两数相减会出现误差。2.(课本 181 页第一题)解: (1)n=0 时,积分得 ?0=ln6-ln5,编写如下图代码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 从 以 上 代 码
2、 显 示 的 结 果 可 以 看 出 , ?20的 近 似 值 为0.012712966517465 (2)?=?5+ ?10dx,可得?610dx?5+ ?10dx?510dx,得16( ? +1)?15(? +1),则有1126?201105, 取?20=1105,以此逆序估算 ?0。代码段及结果如下图所示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 结 果 是 从 ?19逆 序 输 出 至 ?0, 所 以 得 到 ?0
3、的 近 似 值 为0.088392216030227。(3)从 ?20估计的过程更为可靠。首先根据积分得表达式是可知,被积函数随着n 的增大,其所围面积应当是逐步减小的,即积分值应是随着n 的递增二单调减小的, (1)中输出的值不满足这一条件,(2)满足。设?表示 ?的近似值,?-?=(- 5)?(?0- ?0)(根据递推公式可以导出此式),可以看出,随着 n 的增大,误差也在增大,所以顺序估计时,算法不稳定性逐渐增大,逆序估计情况则刚好相反,误差不断减小,算法逐渐趋于稳定。2.(课本 181 页第二题)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、- - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - (1)上机代码如图所示求得近似根为0.09058 (2)上机代码如图所示得近似根为0.09064;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - (3)牛顿法上机代码如下计算所得近似解为0.09091 第三次上机作业上机作业 181 页第四题线性方程组为1.13483.83260.53011.7875
5、1.16513.40172.53301.54353.41294.93171.23714.99988.76431.314210.67210.0147? 1? 2? 3? 4=9.53426.394118.423116.9237(1)顺序消元法A=1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147; b=9.5342;6.3941;18.4231;16.9237; 上机代码(函数部分)如下function b = gaus(
6、A,b )% 用b返回方程组的解B=A,b; n=length(b); RA=rank(A); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - RB=rank(B); dif=RB-RA; ifdif0 disp(此方程组无解 ); return end if RA=RB if RA=n format long; disp(此方程组有唯一解 ); for p=1:n-1 for k=p+1:n m=B(k,p)/B(p,p);
7、 B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1); end end % 顺序消元形成上三角矩阵 b=B(1:n,n+1); A=B(1:n,1:n); b(n)=b(n)/A(n,n); for q=n-1:-1:1 b(q)=(b(q)-sum(A(q,q+1:n)*b(q+1:n)/A(q,q); end % 回代求解else disp(此方程组有无数组解 ); end end 上机运行结果为 A=1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.
8、2371,4.9998,10.6721,0.0147; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - b=9.5342;6.3941;18.4231;16.9237; X=gaus(A,b) 此方程组有唯一解X = 1.000000000000000 1.000000000000000 1.000000000000000 1.000000000000000 (2)列主元消元法A=1.1348,3.8326,1.1651,3.
9、4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147; b=9.5342;6.3941;18.4231;16.9237; 函数部分代码如下function b = lieZhu(A,b )% 用 b 返回方程组的解B=A,b; RA=rank(A); RB=rank(B); n=length(b); dif=RB-RA; format long; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
10、理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - ifdif0 disp(该方程组无解 ); return end ifdif=0 if RA=n disp(该方程组有唯一解 ); c=zeros(1,n); fori=1:n-1 max=abs(A(i,i); m=i; for j=i+1:n if max A=1.1348,3.8326,1.1651,3.4017;0.5301,1.7875,2.5330,1.5435;3.4129,4.9317,8.7643,1.3142;1.2371,4.9998,10.6721,0.0147; b=9.53
11、42;6.3941;18.4231;16.9237; X=lieZhu(A,b) 该方程组有唯一解X = 1.000000000000000 1.000000000000002 0.999999999999999 0.999999999999999 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 根据两种方法运算结果, 顺序消元法得到结果比列主元消元法得到的结果精度更高。(注:matlab 使用的是 2015b 版本,不知道是
12、保留小数位数太少,还是程序原因,顺序消元输出结果总是等于准确解,请老师指正)第四次上机作业7. 分析用下列迭代法解线性方程组 4- 1- 1 4 0- 1- 1 0 0 0- 1 0 0- 1- 1 0 4- 1- 1 4 0- 1- 1 00- 10 0 0- 1- 1 0 4- 1- 1 4?1?2?3?4?5?6= 0 5- 2 5- 2 6的收敛性,并求出使 ?(? +1)- ?(? )2 0.0001 的近似解及相应的迭代次数。(1)雅可比迭代法解:上机编写的函数如下function = Jacobi(X,b)% 雅可比迭代法D=diag(diag(X);% 得到对角线元素组成的矩阵
13、B=inv(D)*(D-X);f=inv(D)*b;b(:,:)=0;x1=B*b+f;num=1;while(norm(x1-b)0.0001)% 判断当前的解是否达到精度要求 b=x1;x1=B*b+f;num=num+1;end ; fprintf( 求得的解为: n);disp(x1);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - fprintf( 迭代次数: %d次n,num);end上机运行,结果如下 A=4,
14、-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4; b=0;5;-2;5;-2;6; Jacobi(A,b) 求得的解为: 0.999981765074381 1.99995018125674 0.999975090628368 1.99995018125674 0.999975090628368 1.99996353014876 迭代次数: 28 次满足要求的解如输出结果所示,总共迭代了28 次(2)高斯-赛德尔迭代法上机程序如下所示function =Gauss_Sei
15、del( A,b )% 高斯赛德尔迭代法D=diag(diag(A);L=D-tril(A);U=D-triu(A);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - B=inv(D-L)*U;f=inv(D-L)*b;b(:,:)=0;x0=B*b+f;num=1;while(norm(x0-b)0.0001)num=num+1; b=x0;x0=B*b+f;end ;fprintf( 结果为 n);disp(x0);fpr
16、intf( 迭代次数为: %d次n,num);end A=4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4; b=0;5;-2;5;-2;6; Gauss_Seidel(A,b) 结果为 0.999960143810658 1.99995676152139 0.999963508299833 1.99996662162874 0.999972527179715 1.99998400886989 迭代次数为: 15次名师资料总结 - - -精品资料欢迎下载 - - - -
17、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 满足精度要求的解如上述程序打印输出所示,迭代了15 次(3)SOR迭代法( w依次取 1.334,1.95,0.95)上机代码如下function = SOR(A,b,w )%SOR 迭代法 D=diag(diag(A);L=D-tril(A);U=D-triu(A);B=inv(D-w*L)*(1-w)*D+w*U);f=w*inv(D-w*L)*b;b(:,:)=0;x0=B*b+f;num=1;while(norm(x0-b)
18、0.0001)num=num+1; b=x0;x0=B*b+f;end ;fprintf( 结果为 n);disp(x0);fprintf( 迭代次数为 %dn ,num);end上机运行 A=4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,-1,0,-1;-1,0,-1,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4; b=0;5;-2;5;-2;6; SOR(A,b,1.334) 结果为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
19、 13 页,共 29 页 - - - - - - - - - 1.00001878481009 1.99998698322858 1.00001815013068 2.00000041318053 0.999991858543476 2.0000068413569 迭代次数为 13 SOR(A,b,1.95) 结果为 0.999984952088107 2.00000960832604 0.999959115182729 2.0000168426006 1.00000443526697 1.99997885113446 迭代次数为 241 SOR(A,b,0.95) 结果为 0.9999615
20、18309351 1.99995706825231 0.999963054838453 1.99996580572033 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 29 页 - - - - - - - - - 0.999971141727589 1.9999827300678 迭代次数为 17 由以上输出得到 w取值不同的情况下,得到的满足精度要求的结果,迭代次数分别如输出所示第五次上机作业8. 从函数表x 0.0 0.1 0.2 0.3 0.401 0.5 f(
21、x) 0.39894 0.39695 0.39142 0.38138 0.36812 0.35206 出发,用下列方法计算f(0.15),f(0.31)及 f(0.47)的近似值(1)分段线性插值(2)分段二次插值(3)全区间上拉格朗日插值解: (1)线性插值编写函数如下function R = div_line( x0,y0,x ) %线性插值p=length(x0); n=length(y0); m=length(x); if(p=n)%x的个数与y 的个数不等 error(数据输入有误,请重新输入); return; else fprintf(线性插值 n); for t=1:m z=x
22、(t); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - if(zx0(p) fprintf(x%d不在所给自变量范围内,无法进行插值,t); continue; else fori=1:p-1 if(zx0=0.0 0.1 0.195 0.3 0.401 0.5; y0=0.39894 0.39695 0.39142 0.38138 0.36812 0.35206; x=0.15 0.31 0.47; div_line(x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算方法上机作业集合 2022 计算方法 上机 作业 集合
限制150内