数值线性代数第二版徐树方高立张平文上机习题第四章实验报告

上传人:E**** 文档编号:118410407 上传时间:2019-12-15 格式:DOC 页数:7 大小:103.84KB
返回 下载 相关 举报
数值线性代数第二版徐树方高立张平文上机习题第四章实验报告_第1页
第1页 / 共7页
数值线性代数第二版徐树方高立张平文上机习题第四章实验报告_第2页
第2页 / 共7页
数值线性代数第二版徐树方高立张平文上机习题第四章实验报告_第3页
第3页 / 共7页
数值线性代数第二版徐树方高立张平文上机习题第四章实验报告_第4页
第4页 / 共7页
数值线性代数第二版徐树方高立张平文上机习题第四章实验报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数值线性代数第二版徐树方高立张平文上机习题第四章实验报告》由会员分享,可在线阅读,更多相关《数值线性代数第二版徐树方高立张平文上机习题第四章实验报告(7页珍藏版)》请在金锄头文库上搜索。

1、第四章上机习题1考虑两点边值问题容易知道它的精确解为为了把微分方程离散化,把0,1区间n等分,令h=1/n,得到差分方程简化为从而离散化后得到的线性方程组的系数矩阵为对分别用Jacobi迭代法,G-S迭代法和SOR迭代法求线性方程组的解,要求有4位有效数字,然后比较与精确解得误差。对考虑同样的问题。解 (1)给出算法:为解,令,其中,- 7 -利用Jacobi迭代法,G-S迭代法,SOR迭代法解线性方程组,均可以下步骤求解:step1给定初始向量x0=(0,0,.,0),最大迭代次数N,精度要求c,令k=1step2令x=B*x0+gstep3若|x-x0|2=N,算法停止,迭代失败,否则,令

2、x0=x,转step2在Jacobi迭代法中,B=D-1*(L+U),g=D-1*b在G-S迭代法中,B=D-1*(L+U),g=D-1*b在SOR迭代法中,B=(D-w*L)-1*(1-w)*D+w*U,g=w*(D-w*L)-1*b另外,在SOR迭代法中,上面算法step1中要给定松弛因子w,其中0w=0.00001 x0=x; x=B*x0+g; k=k+1; if k=N break endendend2 G-S迭代法编成的函数 x,k=GaussSeidel(A,b,c,N)function x,k=GaussSeidel(A,b,c,N)U=diag(diag(A)-triu(A)

3、;x0=zeros(length(A),1);B=tril(A)(-1)*U;g=tril(A)(-1)*b;x=B*x0+g;k=1;while norm(x-x0,2)=0.00001 x0=x; x=B*x0+g; k=k+1; if k=N break endendend 3 SOR迭代法编成的函数 x,k=SOR(A,b,w,c,N)function x,k=SOR(A,b,w,c,N)D=diag(diag(A);L=D-tril(A);U=D-triu(A);x0=zeros(length(A),1);B=(D-w*L)(-1)*(1-w)*D+w*U);g=w*(D-w*L)(

4、-1)*b;x=B*x0+g;k=1;while norm(x-x0,2)=0.00001 x0=x; x=B*x0+g; k=k+1; if k=N break endendend4 问题1求解 ex4_1clear;clc;%c=1;%c=0.1%c=0.01;c=0.0001;a=1/2;n=100;h=1/n;w=1/2;N=1000000;A=-(2*c+h)*eye(n-1);for i=2:n-1w A(i-1,i)=c+h; A(i,i-1)=c;endb=a*h2*ones(n-2,1);a*h2-(c+h);for i=1:n-1 x(i)=i*h; y(i)=(1-a)/

5、(1-exp(-1/c)*(1-exp(-x(i)/c)+a*x(i);endy1,n1=Jacobi(A,b,c,N);y2,n2=GaussSeidel(A,b,c,N);y3,n3=SOR(A,b,w,c,N);disp(c=,num2str(c),时);disp(Jacobi迭代与精确解的差为,num2str(norm(y-y1,inf);disp(迭代次数为,num2str(n1);disp(G-S迭代与精确解的差为,num2str(norm(y-y2,inf);disp(迭代次数为,num2str(n2);disp(SOR迭代与精确解的差为,num2str(norm(y-y3,in

6、f);disp(迭代次数为,num2str(n3);计算结果为(1)c=1时Jacobi迭代与精确解的差为0.0021999迭代次数为11796G-S迭代与精确解的差为0.0017027迭代次数为6227SOR迭代与精确解的差为0.004511迭代次数为15367(2)c=0.1时Jacobi迭代与精确解的差为0.0094349迭代次数为5353G-S迭代与精确解的差为0.0093007迭代次数为2797SOR迭代与精确解的差为0.010279迭代次数为7300(3)c=0.01时Jacobi迭代与精确解的差为0.066098迭代次数为532G-S迭代与精确解的差为0.066089迭代次数为3

7、18SOR迭代与精确解的差为0.06615迭代次数为834(4)c=0.0001时Jacobi迭代与精确解的差为0.0049526迭代次数为116G-S迭代与精确解的差为0.0049507迭代次数为108SOR迭代与精确解的差为0.0049789迭代次数为267结果分析三种迭代法的误差基本相同,且G-S迭代法的收敛速度明显小于Jacobi迭代法,但SOR迭代法收敛速度较慢,原因是收敛因子非最佳。2 考虑偏微分方程其中边界条件为u=1.沿x方向和y方向均匀剖分为N等份,令h=1/N,并设应用中心差分离散化后得到差分方程的代数方程组为取g(x,y)和f(x,y)分别为exp(xy)和x+y,用G-

8、S迭代法求解上述方程组,并请列表比较N=20,40,80时收敛所需要的迭代次数和所用的CPU时间。迭代终止条件为|xk+1-xk|21 A(i-1,i)=-1; A(i,i-1)=-1; end if in(m)-1 A(i,i-n(m)+1)=-1; A(i-n(m)+1,i)=-1; end ii=ceil(i/(n(m)-1); if mod(i,n(m)-1)=0 jj=mod(i,n(m)-1); else jj=n(m)-1; end A(i,i)=4+exp(ii*jj*h2); b(i)=h3*(ii+jj); if ii=1|ii=n(m)-1 b(i)=b(i)+1; end if jj=1|jj=n(m)-1 b(i)=b(i)+1; end end disp(n=,num2str(n(m) tic y,k=GaussSeidel(A,b,c,N); toc disp(迭代次数为,num2str(k);end结果为n204080CPU time0.080063 seconds1.941715 seconds112.580604 seconds迭代次数242627

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号