计算方法上机作业集合(共28页).docx
《计算方法上机作业集合(共28页).docx》由会员分享,可在线阅读,更多相关《计算方法上机作业集合(共28页).docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一次&第二次上机作业上机作业:1.在Matlab上执行: 5.1-5-0.1和 1.5-1-0.5给出执行结果,并简要分析一下产生现象的原因。解:执行结果如下: 在Matlab中,小数值很难用二进制进行描述。由于计算精度的影响,相近两数相减会出现误差。2.(课本181页第一题)解:(1)n=0时,积分得I0=ln6-ln5,编写如下图代码从以上代码显示的结果可以看出,I20的近似值为0.7465(2)In=01xn5+xdx,可得01xn6dx01xn5+xdx01xn5dx,得 16(n+1)In15(n+1),则有1126I201105,取I20=1105,以此
2、逆序估算I0。代码段及结果如下图所示 结果是从I19逆序输出至I0,所以得到I0的近似值为0.0227。(3)从I20估计的过程更为可靠。首先根据积分得表达式是可知,被积函数随着n的增大,其所围面积应当是逐步减小的,即积分值应是随着n的递增二单调减小的,(1)中输出的值不满足这一条件,(2)满足。设Sn表示In的近似值,Sn-In=(-5)n(S0-I0)(根据递推公式可以导出此式),可以看出,随着n的增大,误差也在增大,所以顺序估计时,算法不稳定性逐渐增大,逆序估计情况则刚好相反,误差不断减小,算法逐渐趋于稳定。2.(课本181页第二题)(1)上机代码如图所示求得近似根为0.09058(2)
3、上机代码如图所示得近似根为0.09064;(3)牛顿法上机代码如下计算所得近似解为0.09091第三次上机作业上机作业181页第四题线性方程组为1.13483.83260.53011.78751.16513.40172.53301.54353.41294.93171.23714.99988.76431.67210.0147x1x2x3x4=9.53426.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,
4、0.0147;b=9.5342;6.3941;18.4231;16.9237;上机代码(函数部分)如下function b = gaus( A,b )%用b返回方程组的解B=A,b;n=length(b);RA=rank(A);RB=rank(B);dif=RB-RA;if dif0 disp(此方程组无解); returnendif 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); B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1); end end %顺序
5、消元形成上三角矩阵 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(此方程组有无数组解); endend上机运行结果为 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;1
6、6.9237; X=gaus(A,b)此方程组有唯一解X = 1.0000 1.0000 1.0000 1.0000(2) 列主元消元法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 = lieZhu(A,b )%用b返回方程组的解B=A,b;RA=rank(A);RB=rank(B);n=length(b);di
7、f=RB-RA;format long;if dif0 disp(该方程组无解); returnendif dif=0 if RA=n disp(该方程组有唯一解); c=zeros(1,n); for i=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.5342;6.3941;18.4231;16.9237;X=l
8、ieZhu(A,b)该方程组有唯一解X = 1.0000 1.0002 0.9999 0.9999根据两种方法运算结果,顺序消元法得到结果比列主元消元法得到的结果精度更高。(注:matlab使用的是2015b版本,不知道是保留小数位数太少,还是程序原因,顺序消元输出结果总是等于准确解,请老师指正)第四次上机作业7.分析用下列迭代法解线性方程组 4-1-1 4 0-1-1 0 0 0-1 0 0-1-1 0 4-1-1 4 0 -1-1 0 0-10 0 0-1-1 0 4-1-1 4 x1x2x3x4x5x6 = 0 5-2 5-2 6 的收敛性,并求出使X(k+1)-X(k)20.0001的
9、近似解及相应的迭代次数。(1) 雅可比迭代法解:上机编写的函数如下function = Jacobi(X,b)%雅可比迭代法D=diag(diag(X);%得到对角线元素组成的矩阵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);fprintf(迭代次数:%d次n,num); end上机运行,结果如下 A=4,-1,0,-1,0,0;-1,4,-1,0,-1
10、,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.4381 1.674 0.8368 1.674 0.8368 1.876迭代次数:28次满足要求的解如输出结果所示,总共迭代了28次(2) 高斯-赛德尔迭代法上机程序如下所示function =Gauss_Seidel( A,b )%高斯赛德尔迭代法D=diag(diag(A);L=D-tril(A);U=D-triu(A);B=inv(D-L)*U;f=inv(D-L)*b;b(:,:)=0;x
11、0=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);fprintf(迭代次数为:%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.0658 1.139 0.9833 1.874 0.9715 1.989迭代次数为:15次满足精度要
12、求的解如上述程序打印输出所示,迭代了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)0.0001) num=num+1; b=x0; x0=B*b+f;end;fprintf(结果为n);disp(x0);fprintf(迭代次数为%dn,num); end 上机运
13、行 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)结果为 1.009 1.858 1.068 2.053 0.3476 2.69迭代次数为13 SOR(A,b,1.95)结果为 0.8107 2.604 0.2729 2.06 1.697 1.446迭代次数为241 SOR(A,b,0.95)结果为 0.9351 1.231 0.8453 1.033 0.7589 1.78迭代次数为17由以上输出得
14、到w取值不同的情况下,得到的满足精度要求的结果,迭代次数分别如输出所示第五次上机作业8.从函数表x0.00.10.20.30.4010.5f(x)0.398940.396950.391420.381380.368120.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的个数不等 erro
15、r(数据输入有误,请重新输入); return;else fprintf(线性插值n); for t=1:m z=x(t); if(zx0(p) fprintf(x%d不在所给自变量范围内,无法进行插值,t); continue; else for i=1:p-1 if(z x0=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(x0,y0,x)线性插值ans = 0.39404 0.38007 0.35693即结果为f(0.15
16、)0.39404,f(0.31) 0.38007,f(0.47) 0.35693(2)分段二次插值编写的函数如下function R = div2line(x0,y0,x)%分段二次插值p=length(x0);m=length(y0);n=length(x);if(p=m) error(输入错误,请重新输入数据);end;for t=1:n if(x(t)x0(p) fprintf(x%d不在所给区间上,t); continue; end; tag=2; m=abs(x(t)-x0(1)+abs(x(t)-x0(2)+abs(x(t)-x0(3); for i=3:p-1 sum=abs(x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算方法 上机 作业 集合 28
限制150内