数值逼近上机练习答案.docx

数值逼近上机练习答案.docx

ID:35745875

大小:107.77 KB

页数:32页

时间:2019-04-16

数值逼近上机练习答案.docx_第1页
数值逼近上机练习答案.docx_第2页
数值逼近上机练习答案.docx_第3页
数值逼近上机练习答案.docx_第4页
数值逼近上机练习答案.docx_第5页
资源描述:

《数值逼近上机练习答案.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一1.分别用循环型Arnoldi算法和循环型GMRES算法求解线性方程组。取,初始值,迭代终止条件为。要求输出数值近似解和迭代步数。M-文件Arnoldi算法functionX=Arnoldi(X0,m,A,b,ep)nk=0;while(max(abs(A*X0-b))>=ep)r0=b-A*X0;n=length(b);v=zeros(n,m+1);h=zeros(m,m);p=sqrt(sum(r0.^2));v(:,1)=r0./p;fork=2:m;tmp=0;fori=1:k-1h(i,k-1)=(A*v(:,k-1))'*v(:,i);tmp=

2、tmp+h(i,k-1)*v(:,i);endvk=A*v(:,k-1)-tmp;h(k,k-1)=sqrt(sum(vk.^2));v(:,k)=vk/h(k,k-1);endtmp=0;fori=1:mh(i,m)=(A*v(:,m))'*v(:,i);tmp=tmp+h(i,m)*v(:,i);endvm1=A*v(:,m)-tmp;hm1=sqrt(sum(vm1.^2));v(:,m+1)=vm1/hm1;e1=zeros(m,1);e1(1)=1;y=inv(h)*p*e1;z=v(:,1:m)*y;X0=X0+z;nk=nk+1;endnkX=X0

3、;Commandwindows:A=[1000;1100;1110;1111]b=[1111]'m=2x0=[0000]'ep=1.0e-8结果:Arnoldi(X0,m,A,b,ep)nk=23ans=1.00000.0000-0.0000-0.0000GMRES算法functionX=GMRES(X0,m,A,b,ep)nk=0;while(max(abs(A*X0-b))>=ep)r0=b-A*X0;n=length(b);v=zeros(n,m+1);h=zeros(m,m);p=sqrt(sum(r0.^2));v(:,1)=r0./p;fork=2:

4、m;tmp=0;fori=1:k-1h(i,k-1)=(A*v(:,k-1))'*v(:,i);tmp=tmp+h(i,k-1)*v(:,i);endvk=A*v(:,k-1)-tmp;h(k,k-1)=sqrt(sum(vk.^2));v(:,k)=vk/h(k,k-1);endtmp=0;fori=1:mh(i,m)=(A*v(:,m))'*v(:,i);tmp=tmp+h(i,m)*v(:,i);endvm1=A*v(:,m)-tmp;hm1=sqrt(sum(vm1.^2));v(:,m+1)=vm1/hm1;H=[h;[zeros(1,m-1),hm1

5、]];e1=zeros(m+1,1);e1(1)=1;y=pinv(H)*p*e1;z=v(:,1:m)*y;X0=X0+z;nk=nk+1;endnkX=X0;CommandwindowsA=[1000;1100;1110;1111]b=[1111]'m=2x0=[0000]'ep=1.0e-8结果:GMRES(X0,m,A,b,ep)nk=12ans=1.00000.0000-0.0000-0.00001.用追赶法、线性插值法和双参数法求解阶三对角方程组。其中,要求分别输出当时的计算误差和计算时间。M文件双参数法function[X,deta]=sdjscs

6、(a,b,c,n,f)if(length(f)>=n&length(f)<=n)s=zeros(n,1);t=zeros(n,1);tics(1)=0;s(2)=f(1)/c(1);t(1)=1;t(2)=-b(1)/c(1);fori=3:ns(i)=(f(i-1)-b(i-1)*s(i-1)-a(i-1)*s(i-2))/c(i-1);t(i)=-(b(i-1)*t(i-1)+a(i-1)*t(i-2))/c(i-1);endx=zeros(n,1);x(1)=(f(n)-a(n)*s(n-1)-b(n)*s(n))/(a(n)*t(n-1)+b(n)*t(

7、n));fori=2:nx(i)=t(i)*x(1)+s(i);endX=x;A=[zeros(1,n);[diag(a(2:end))zeros(n-1,1)]]+diag(b)+[[zeros(n-1,1)diag(c(1:end-1))];zeros(1,n)];deta=norm(f-A*X,2);tocelseX='youarewrong!';end窗口:n=1000;a=ones(1,n-1);b=-4*ones(1,n);c=2*ones(1,n-1);A=diag(b)+diag(a,-1)+diag(c,1);f=ones(n,1);f(1)=

8、3;f(end)=-3;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。