1、 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 1 页 数值计算引论 学 院 机电工程学院 专 业 机械设计制造及其自动化 年级班别 2014 级( 6)班 学 号 3114000271 学生姓名 刘就杰 2016 年 11 月 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 2 页 一 编 写雅可比迭代法求解 线 性方程 组 的程序,要求附有算例( 20分)。 (可能的算例包括基本的 验证 性算例、方程系数随机生成的一般算例、用于算法 对比的比 较 性算例等, 对 各算例的 结 果 进 行分析。) 雅可比迭代法的 matlab 程序如下 function x=Jacob
2、i(A,b,x0,tol) %雅可比迭代法解 线 性方程 组 %A为 系数矩 阵 , b为 右端 项 , x0为 初始向量, tol为误 差精度 sprintf(USAGE:Jacobi(A,b,x0,tol) D=diag(diag(A);%diag(x) 返回 由向量 x的元素构成的 对 角矩 阵 U=triu(A,1);%triu(A)提取矩 阵 A的上三角部分生成上三角矩 阵 L=tril(A,-1);%tril(A)提取矩 阵 A的下三角部分生成下三角矩 阵 B=-D(L+U);%B为 迭代矩 阵 dl=Db; x=B*x0+dl; n=1; while norm(x-x0)=tol
3、 x0=x; x=B*x0+dl; n=n+1; end n %n为 迭代次数 高斯 -赛 德 尔 迭代法的 matlab 程序如下: function x=Guass_seidel(A,b,x0,tol) %高斯 -赛 德 尔 迭代法解 线 性方程 组 %A为 系数矩 阵 , b为 右端 项 , x0为 初始向量, tol为误 差精度 sprintf(USAGE:Guass_seidel(A,b,x0,tol) D=diag(diag(A);%diag(x) 返回由向量 x的元素构成的 对 角矩 阵 U=triu(A,1);%triu(A)提取矩 阵 A的上三角部分生成上三角矩 阵 L=tr
4、il(A,-1);%tril(A)提取矩 阵 A的下三角部分生成下三角矩 阵 G=-(D+L)U;%G为 迭代矩 阵 dl=(D+L)b; x=G*x0+dl; n=1; while norm(x-x0)=tol x0=x; x=G*x0+dl; n=n+1; end n %n为 迭代次数 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 3 页 调 用 编 好的程序求解方程 组 : 1 2 3 41 2 3 41 2 3 41 2 3 45 41 0 1 2581 0 3 4x x x xx x x xx x x xx x x x A=5 -1 -1 -1 ;-1 10 -1 -1;
5、-1 -1 5 -1;-1 -1 -1 10; b=-4;12;8;34; x0=0;0;0;0; tol=1e-6; x=Jacobi(A,b,x0,tol) x=Guass_seidel(A,b,x0,tol) 实验结果如下: ans = USAGE:Jacobi(A,b,x0,tol) n = 20 x = 1.0000 2.0000 3.0000 4.0000 ans = USAGE:Guass_seidel(A,b,x0,t) n = 12 x = 1.0000 2.0000 3.0000 4.0000 取相同的初始值 (0) 0,x 达到同样的精度 10-6,雅可 比迭代需要迭代
6、20 次,而高斯 -赛德尔迭代法只需 12 次。 实验总结 : 通 过这 次 实验 , 对 雅可比迭代法以及高斯 -赛 德 尔 迭代法求解 线 性方程 组 的基本原理有了 进 一步的理解,同 时 了解了雅可比和高斯 -赛 德 尔 迭代法的 优 点,即雅可比和高斯 -赛 德 尔 在求解 线 性方程 组 的 过 程中具有更快的收 敛 速度,而高斯 -赛 德 尔 比雅可比的收 敛 速度更快(即取相同的初始 值 ,达到同 样 精度所需的迭代次数 较 少)。 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 4 页 二 编 写分段二次拉格朗日插 值 的程序 ,要求附有算例( 20分) 。 ( 对
7、 错误 !未找到引用源。 在 节 点 0, 0.2, 0.4, 0.6, 0.8, 1.0上 进 行插 值 ,求 x=0.7处 的 值 , 绘 出被插 值 函数与插 值 函数的 图 形,予以 对 比。) 建立如下拉格朗日插 值 函数: function y=lagrange(x0,y0,x); n=length(x0); m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s; end 在
8、matlab中用拉格朗日插 值 求 0.7 处 的 值 exp(0.7) ans = 2.013752707470477 lagrange(x,y,0.7) ans = 2.013751960394443 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 5 页 绘 出被插 值 函数与插 值 函数的 图 形 x=0 0.2 0.4 0.6 0.8 1.0; y=exp(x); x0=-5:0.001:5; y0=lagrange(x,y,x0); y1=exp(x0); plot(x0,y0,r) hold on plot(x0,y1,g) 红线为 插 值 函数, 绿线 是被插 值 函
9、数,由 图 像可以知道,在区 间 ( -2, 2)是 较 好 拟合的,当超出 这 个范 围 后就会偏差越来越大。 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 6 页 三 编 写复化辛普森 积 分的程序 ,要求附有算例( 20分) 。 ( 对 定 积 分 错误 !未找到引用源。 ,计 算精度达到 错误 !未找到引用源。 ) 复化辛普森 积 分的程序 function S=bianfuhuasimpson(fx,a,b,eps,M) % 变 步 长 复合 simpson 求 积 公式 % fx - 求 积 函数(函数文件) % a, b - 求 积 区 间 % eps - 计 算精度
10、 % M-最大允 许输 出划分数 n=1; h=(b-a)/n; T1=h*(feval(fx,a)-feval(fx,b)/2; Hn=h*feval(fx,(a+b)/2); S1=(T1+2*Hn)/3; n=2*n; % 最好与倒数第三行保持一致( 变 步 长 ) while n=M T2=(T1+Hn)/2; Hn=0; h=(b-a)/n; for j=1:n x(j)=a+(j-1/2)*h; y(j)=feval(fx,x(j); Hn=Hn+y(j); end Hn=h*Hn; S2=(T2+2*Hn)/3; fprintf( n=%2d S2=%-12.9f S2-S1=%
11、-12.9fn,n,S2,abs(S2-S1); if abs(S2-S1)eps break; else T1=T2; S1=S2; n=2*n; end end S=S2; 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 7 页 程序 执 行情况 对 定 积 分 错误 !未找到引用源。 ,计 算精度达到 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 8 页 四 编 写欧拉法、 隐 式欧拉法求常微分方程初 值问题 的程序 ,要求附有算例( 20分) 。 ( 对 初 值问题 错误 !未找到引用源。 错误 !未找到引用源。 采用不同步 长 ( h=0.1, 0.01, 0.
12、001,0.0001),运行两种算法的程序,并将 结 果 绘 制成图 形, 进 行比 较 、分析。若要解的精度达到 错误 !未找到引用源。 , 应 采取什么措施?) 程序: %Euler法 F=x2+x-y; a=0; b=0.5; h=0.1; n=(b-a)/h; X=a:h:b; Y=zeros(1,n+1); Y(1)=0; for i=2:n+1 x=X(i-1); y=Y(i-1); Y(i)=Y(i-1)+eval(F)*h; end %隐 式 Euler法 Y1=zeros(1,n+1); 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 9 页 Y1(1)=0; fo
13、r i=2:n+1 x=X(i); y=Y1(i-1); Y1(i)=(y+x*h2+h*x)/(h+1); end %准确解 temp=; f=dsolve(Dy=x2+x-y,y(0)=0,x); df=zeros(1,n+1); for i=1:n+1 temp=subs(f,x,X(i); df(i)=double(vpa(temp); end disp( 步 长 Euler法 隐式 Euler法 准确 值 ); disp(X,Y,Y1,df); %画 图观 察效果 figure; plot(X,df,k-,X,Y,-r,X,Y1,.-b); grid on; title(Euler法和 隐式 Euler法 解常微分方程 ); legend(准确 值 ,Euler法 ,隐式 Euler法 ); 结 果 为 : 1.当 h=0.1 时 广 东 工 业 大学 试 卷用 纸 ,共 20 页 ,第 10 页 Euler法和 ,隐 式 Euler法与 实际值 相差 较 大, 误 差随 x增大而增大。由 图 可以看出 h=0.1 时 ,不能得到精确 结 果。 Euler法精度 为 101- , 隐 式 Euler法精度 为 101- 。 2.当 h=0.01 时
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。