数值分析上机题_第1页
数值分析上机题_第2页
数值分析上机题_第3页
数值分析上机题_第4页
数值分析上机题_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值分析上机题目3实验一1根据Matlab语言特点,描述Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法。2编写Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的M文件。3给定为五对角矩阵(1)选取不同的初始向量及右端面项向量b,给定迭代误差要求,分别用编写的Jacobi迭代法和Gauss-Seidel迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。(2)用编写的SOR迭代法程序, 对于(1)所选取的初始向量及右端面项向量b进行求解,松驰系数取1<<2的不同值,在时停止迭代,通过迭代次数分析计算结果并得出你的结

2、论。实验11、 根据MATLAB语言特点,描述Jacobi迭代法,Gauss-Seidel迭代法和SOR迭代法。2、 编写Jacobi迭代法,Gauss-Seidel迭代法和SOR迭代法的M文件。Jacobi迭代法function x1,k=GS_2(A,b)n=length(A);D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);x1=zeros(n,1);x0=3*ones(n,1);k=0;while norm(x1-x0,1)>10(-7)&k<100 k=k+1; x0=x1; x1=D(L+U)*x0+b);endk=kx=x1

3、Gauss-Seidel迭代法function x1,k=GS_h(A,b)n=length(A);D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);x1=zeros(n,1);x0=3*ones(n,1);k=0;while norm(x1-x0,1)>10(-7)&k<100 k=k+1; x0=x1; x1=(D-L)U*x0-Db;endk=kx=x1SOR迭代法function x1,k=SOR_h(A,b)n=length(A);D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);x1=zeros

4、(n,1);x0=3*ones(n,1);k=0;w=0.96;while norm(x1-x0,1)>10(-7)&k<100 k=k+1; x0=x1; x1=(D-w*U)(1-w)*D+w*L)*x0+w*b);endk=kx=x13、采用Jacobi迭代法,Gauss-Seidel迭代法求解五对角矩阵clear,clcA=diag(3*ones(20,1)+diag(-0.5)*ones(19,1),-1)+diag(-0.5)*ones(19,1),1)+diag(-0.25)*ones(18,1),-2)+diag(-0.25)*ones(18,1),2);b

5、=sum(A')'x1,k1=Jacob_h(A,b)x2,k2=GS_h(A,b)运行结果:两种方法都收敛,k1=27,k2=13。说明Gauss-Seidel迭代速度比Jacobi迭代速率快4、采用SOR迭代法程序对五对角矩阵进行求解clear,clcA=diag(3*ones(20,1)+diag(-0.5)*ones(19,1),-1)+diag(-0.5)*ones(19,1),1)+diag(-0.25)*ones(18,1),-2)+diag(-0.25)*ones(18,1),2);b=sum(A')'x3,k3=SOR_h(A,b)运行结果当w

6、=0.5时,k3=53,当w=0.96时,k3=19,当w=1.1时,k3=14,当w=1.5时,k3=33。该结果说明,当w选取合适时,可以大大加快运算速率。实验二题目: 多项式最小二乘法摘要:对于具体实验时,通常不是先给出函数的解析式,再进行实验,而是通过实验的观察和测量给出离散的一些点,再来求出具体的函数解析式。又因为测量误差的存在,实际真实的解析式曲线并不一定通过测量给出的所有点。最小二乘法是求解这一问题的很好的方法,本实验运用这一方法实现对给定数据的拟合。数学原理:对于给定的测量数据(xi,fi)(i=1,2,,n),设函数分布为特别的,取为多项式 (j=0, 1,,m)则根据最小二

7、乘法原理,可以构造泛函令 (k=0, 1,,m)则可以得到法方程求该解方程组,则可以得到解,因此可得到数据的最小二乘解程序设计:编写求解多项式拟合的Matlab函数子程序实验要求:用最小二乘法处理下面的实验数据.xi3456789fi2.012.983.505.025.476.027.05并作出的近似分布图。分别采用一次,二次、五次和偶数次多项式来拟合数据得到相应的拟合多项式,并分别作出它们的曲线图。实验2clcclearn=input('请输入多项式拟合次数:');syms tfor i=1:n f(i)=t(i);endx=3 4 5 6 7 8 9'y=2.01

8、2.98 3.50 5.02 5.47 6.02 7.05'm=length(x);for i=1:m for j=1:nhs=inline(f(j),'t'); A(i,j)=hs(x(i); endendh=ones(m,1);A=h A;A1=A'*A;y1=A'*y;x1=A1y1;f=0;for i=1:n+1 f=f+x1(i)*t(i-1);endplot(x,y,'*');hold on x1=flipud(x1);x2=linspace(min(x),max(x);y2=polyval(x1,x2);tt=poly2st

9、r(x1,'x')text(5,7,0, tt)plot(x2,y2)实验三实验名称:非线性方程组数值求解的Newton类方法试验。实验目的:用Newton类方法求解线性方程组 F(x)=0,理解其解的复杂性、初始点选择策略、减少算法工作量的方法等。实验内容与要求:分别用Newton法用Broyden秩1校正法求解下面非线性方程组 (1) 写出MATLAB源代码;(2) 给出迭代五次以上的结果;(3) 尝试不同的初值,如可取);(4) 计算两种方法的用时。实验31、2、采用Newton法·¨clear,clcx0=0,0,0'y0=f(x0);yy0

10、=df(x0);x1=x0-yy0y0;k=1;format longwhile norm(x1-x0,1)>10(-5) & k<100 k=k+1; x0=x1; y0=f(x0); yy0=df(x0); x1=x0-yy0y0;endx=x1k=k运行结果:x= 0.499997120040332 -0.007962547035047 -0.523798234912383k =45Broyden 秩1法clear,clcx0=0,0,0'y0=f(x0);A0=df(x0);x1=x0-A0y0;y1=f(x1);k=1;format longwhile n

11、orm(x1-x0,1)>10(-2) & k<100000 k=k+1; g=y1-y0; y=x1-x0; A1=A0+(g-A0*y)/(y'*y)*y' x0=x1; x1=x0-A1y1; A0=A1; y0=f(x0); y1=f(x1);endx=x1k=k运行结果,x = 0.499997036123973 -0.008051039053592 -0.523800456021240k = 53.尝试不同初值。x0=0.1,0.1,0.1采用Newton法·¨x = 0.499997123882459 -0.007958473536348 -0.523798132670848k = 68Broyden 秩1法x = 0.4999970375

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论