种迭代法_雅克比高斯赛贝尔超松弛求解方程组_实验报告.docVIP

  • 23
  • 0
  • 约3.6千字
  • 约 9页
  • 2017-03-30 发布于江苏
  • 举报

种迭代法_雅克比高斯赛贝尔超松弛求解方程组_实验报告.doc

种迭代法_雅克比高斯赛贝尔超松弛求解方程组_实验报告

大连民族学院 数 学 实 验 报 告 课程: 数值分析与软件 实验题目: 分别用Jacobi、Gauss-Seidel、SOR迭代法求解线性方程组 系别: 理学院 专业: 数学与应用数学 姓名: 赵英翠 班级: 数学101 指导教师:牛大田 完成学期: 2012 年 4 月 14 日 实验目的: 熟悉matlab上机环境,掌握matlab相关知识; 掌握求解线性方程组的三种迭代法:Jacobi、Gauss-Seidel、SOR迭代法; 比较三种迭代法的差异; 实验内容:(问题、数学模型、要求、关键词) 1.分别运用Jacobi、Gauss-Seidel、SOR迭代法求解如下线性方程组 取初始点精度要求;SOR迭代法中松弛因子。 2.求解上述方程组准确解,与上述三种方法的结果进行比较。 关键词:Jacobi、Gauss-Seidel、SOR迭代法 线性方程组 实验方法和步骤(包括数值公式、算法步骤、程序): 利用Jacobi迭代majacobi.m的文件,内容如下: function x=majacobi(A,b,x0,ep,N) n=length(b); if nargin5,Warning(传递的参数个数错误);end if nargin5,N=500;end if nargin4,ep=1e-6;end if nargin3,x0=zeros(n,1);end x=zeros(n,1);k=0; while kN for i=1:n x(i)=(b(i)-A(i,[1:i-1,i+1:n])*x0([1:i-1,i+1:n]))/A(i,i); end if norm(x-x0,inf)ep,break;end x0=x;k=k+1; end if k==N,Warning(已达到迭代次数上限);end disp([迭代次数k=,num2str(k)]) 利用Gauss-Seidel迭代法求解: 编制名为maseidel.m的文件,内容如下: function x=maseidel(A,b,x0,ep,N) n=length(b); if nargin5,N=500;end if nargin4,ep=1e-6;end if nargin3,x0=zeros(n,1);end x=zeros(n,1);k=0; while kN for i=1:n if i==1 x(1)=(b(1)-A(1,2:n)*x0(2:n))/A(1,1); else if i==n x(n)=(b(n)-A(n,1:n-1)*x(1:n-1))/A(n,n); else x(i)=(b(i)-A(i,1:i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n))/A(i,i); end end end if norm(x-x0,inf)ep,break;end x0=x;k=k+1; end if k==N,Warning(已达到迭代次数上限);end disp([迭代次数k=,num2str(k)]) 利用SOR迭代法求解: 编制名为masor.m的文件,内容如下: function x=masor(A,b,omega,x0,ep,N) n=length(b); if nargin6,N=500;end if nargin5,ep=1e-6;end if nargin4,x0=zeros(n,1);end if nargin3,omega=1.5;end x=zeros(n,1);k=0; while kN for i=1:n if i==1 x1(1)=(

文档评论(0)

1亿VIP精品文档

相关文档