现代数值计算方法实验一.doc_第1页
现代数值计算方法实验一.doc_第2页
现代数值计算方法实验一.doc_第3页
现代数值计算方法实验一.doc_第4页
现代数值计算方法实验一.doc_第5页
全文预览已结束

下载本文档

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

文档简介

实验报告实验一线性方程组迭代法实验 班级:15软件本 学号:38381115117 姓名:张宏 一、实验目的1、通过本实验学习线性方程组的迭代解法。掌握高斯 - 赛德尔迭代法、雅可比迭代法、 SOR 迭代法的编程与应用,对比分析在不同条件下三种迭代法的收敛情况并得出一般结论。2、 培养编程与上机调试能力。二、实验题目1、迭代法的收敛速度实验题目:用迭代法分别对n=20, n=200 解方程组 Ax=b 其中4-1/3-1/5-1/34-1/3-1/5-1/5-1/34-1/3-1/5A=.-1/5-1/34-1/3-1/5-1/34n * n(1)选取不同的初值x 0 和不同的右端向量 b,给定迭代误差,用两种迭代法计算,观测得到的迭代向量并分析计算结果给出结论;(2)取定初值 x 和右端向量 b,给定迭代误差,将 A 的主对角元成倍放大,0其余元素不变, 用 Jacobi 迭代法计算多次, 比较收敛速度, 分析计算结果给出结论 .2、 SOR 迭代法松弛因子的选取实验题目:用超松弛 (SOR)迭代法解方程组 Ax=b, 其中1221x1521221x 25121221x 35A.121221 x 198512122 x 19951212 x 2005(1) 给定迭代误差,选取不同的超松弛因子1进行计算,观测得到的近似解向量并分析计算结果,给出你的结论;(2) 给定迭代误差,选取不同的超松弛因子1进行计算,观测得到的近似解向量并分析计算结果,给出你的结论. 3、 实验原理 1、 算法原理:Jacobi迭代法: function x=majacobi(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); %用途:用Jacobi迭代法解线性方程组Ax=b %格式:x=majacobi(A,b,x0,ep,N) A为系数矩阵,b为右端向量 % x0为初始向量(默认零向量)ep为精度(默认1e-6)N为 %(默认500次),x返回近似解向量 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) 2、 算法原理:Seidl迭代法 %maseidel.m function x=majacobi(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 %用途:用Jacobi迭代法解线性方程组Ax=b %格式:x=majacobi(A,b,x0,ep,N) A为系数矩阵,b为右端向量, % x0为初始向量(默认零向量),ep为精度(默认1e-6),N为 %(默认500次),x返回近似解向量 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) 3、 算法原理:SOR迭代法 %masor.m function x=masor(A,b,omega,x0,ep,N) %用途:用SOR法解线性方程组Ax=b %格式:x=masor(A,b,omega,x0,ep,N) A为系数矩阵,b为右端向量, % omega为松弛因子(默认1.5), x0为初始向量(默认零向量), % ep为精度(默认1e-6),N为(默认500次),x返回近似解向量 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)=(b(1)-A(1,2:n)*x0(2:n)/A(1,1); else if i=n X1(n)=(b(n)-A(n,1:n-1)*x(1:n-1)/A(n,n); else x1(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 x(i)=(1-omega)*x0(i)+omega*x1(i); end if norm(x0-x,inf)ep, break; end k=k+1;x0=x; end if k=N,Warning(已达到迭代次数上限); end disp(k= ,num2str(k) 4、 矩阵程序 第一题: function A,b=matrix(n) clc; A=zeros(n,n); b=zeros(n,1); for i=1:n A(i,i)=4; b(i)=2; end for i=1:n-1 A(i,i+1)=-1./3; A(i+1,i)=-1./3; end for i=1:n-2; A(i,i+2)=-1./5; A(i+2,i)=-1./5; end 第二题: function A,b=matrix1(n) %n=200; clc; %clear; A=zeros(n,n); for i=1:n A(i,i)=12; b(i)=5; end for i=1:n-1 A(i,i+1)=-2; A(i+1,i)=-2; end for i=1:n-2; A(i,i+2)=1; A(i+2,i)=1; end 5、 运行程序 第一题 n=20; A,b=matrix(n); x1=majacobi(A,b) x2=maseidel(A,b) %0.45*ones(n,1) 第二题: n=200; A,b=matrix1(n); omega=0.99; x=masor(A,b,omega)4、 实验内容 1、 迭代法的收敛速度 当n=20,右端向量b不变,初值x0改变时 输入运行程序: n=20; A,b=matrix(n); x1=majacobi(A,b,0.25*ones(n,1) x2=maseidel(A,b,0.25*ones(n,1) x3=majacobi(A,b,0.50*ones(n,1) x4=maseidel(A,b,0.50*ones(n,1) x5=majacobi(A,b,0.75*ones(n,1) x6=maseidel(A,b,0.75*ones(n,1) x7=majacobi(A,b,ones(n,1) x8=maseidel(A,b,ones(n,1) 输出结果中的k值:k1= 10 k2= 7 k3= 9 k4= 7 K5= 9 k6= 7 k7= 10 k8= 7 当n=200,右端向量b不变,初值x0改变时 输入运行程序: n=200; A,b=matrix(n); x1=majacobi(A,b,0.25*ones(n,1)x2=maseidel(A,b,0.25*ones(n,1) x3=majacobi(A,b,0.50*ones(n,1) x4=maseidel(A,b,0.50*ones(n,1) x5=majacobi(A,b,0.75*ones(n,1) x6=maseidel(A,b,0.75*ones(n,1) x7=majacobi(A,b,ones(n,1) x8=maseidel(A,b,ones(n,1) 输出结果中的k值:k1= 10 k2= 7 k3= 9 k4= 7 K5= 9 k6= 7 k7= 10 k8= 7 当n=20,初值x0不变为0向量,右端向量b改变时 b(i)=1; k1= 9 k2= 7 b(i)=2; k1= 10 k2= 7 b(i)=100; k1= 13 k2=10 b(i)=1000; k1= 15 k2= 11 b(i)=1000000 k1= 20 k2= 14 当n=200,初值x0不变为0向量,右端向量b改变时 b(i)=1; k1= 9 k2= 7 b(i)=2; k1= 10 k2= 7 b(i)=100; k1= 13 k2=10 b(i)=1000; k1= 15 k2= 11 b(i)=1000000 k1= 20 k2= 15 将A的主对角元成倍放大,其余元素不变,用Jacobi迭代法计算多次 当n=20,b(i)=1;x0=zeros(n,1) 取主对角元a=4 ,k= 10 取主对角元a=8,k= 7 取主对角元a=16,k=6 取主对角元a=32,k=5 取主对角元a=512,k=3 当n=200, b(i)=1;x0=zeros(n,1) 取主对角元a=4 ,k= 10 取主对角元a=8,k= 6 取主对角元a=16,k=5 取主对角元a=32,k=4 取主对角元a=512,k=2 2. SOR迭代法松弛因子的选取 当SOR迭代法松弛因子w1时 1、 w=1.5 K=26 2、2、 W=1.75 K=64 3、 W=1.25 K=14 4、 W=1.03 K=8 5、 W=1.01 K=8 当SOR迭代法松弛因子w1时,w越大时,迭代法的迭代次数越大,收敛速度越慢,w越趋近于1时,迭代法的迭代次数越小,收敛越快. 2、当SOR迭代法松弛因子w1时,w越小时,迭代法的迭代次数越大,收敛速度越慢,w越趋近于1时,迭代法的迭代次数越小,收敛越快. 六、实验结果分析 1、当右端向量b不变,初值x0改变时对Jacobi迭代法的迭代次数影响较大,对Seidel迭代法的迭代次数影响较小。当初值x0不变为0向量,右端向量b改变时对Jacobi和Seidel迭代法

温馨提示

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

评论

0/150

提交评论