迭代法与超松弛法求解线性方程组

迭代法与超松弛法求解线性方程组

ID:11307749

大小:48.50 KB

页数:5页

时间:2018-07-11

迭代法与超松弛法求解线性方程组_第1页
迭代法与超松弛法求解线性方程组_第2页
迭代法与超松弛法求解线性方程组_第3页
迭代法与超松弛法求解线性方程组_第4页
迭代法与超松弛法求解线性方程组_第5页
资源描述:

《迭代法与超松弛法求解线性方程组》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验名称高斯-赛德尔、超松弛迭代法求解线性方程组实验时间2012-5-30姓名班级学号成绩一实验目的[1]掌握Gauss顺序消去和选列主元消去解线性方程组基本原理和方法[2]用MATLAB编写程序实现Gauss顺序消去和选列主元消去解线性方程组二实验内容1.编写MATLAB程序实现雅可比迭代法、高斯-赛德尔、超松弛迭代法求解线性方程组2.编写MATLAB程序实现超松弛迭代法求解线性方程组,二程序代码1.(1)雅可比迭代法:>>function[x,n]=jacobi(A,b,x0,eps)ifnargin

2、==3eps=1.0e-6;M=1000;elseifnargin<3errorreturnelseifnargin==5M=1000;endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=D(L+U);f=Db;x=B*x0+f;n=0;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');retur

3、n;endend(2)高斯赛德尔法:1.functionx=gaussMethod(A,b)%高斯列主元消去法,要求系数矩阵非奇异的,n=size(A,1);ifabs(det(A))<=1e-8error('系数矩阵是奇异的');return;endfork=1:nak=max(abs(A(k:n,k)));index=find(A(:,k)==ak);iflength(index)==0index=find(A(:,k)==-ak);end%交换列主元temp=A(index,:);A(index,:

4、)=A(k,:);A(k,:)=temp;temp=b(index);b(index)=b(k);b(k)=temp;%消元过程fori=k+1:nm=A(i,k)/A(k,k);%消除列元素A(i,k+1:n)=A(i,k+1:n)-m*A(k,k+1:n);b(i)=b(i)-m*b(k);endend%回代过程x(n)=b(n)/A(n,n);fork=n-1:-1:1;x(k)=(b(k)-A(k,k+1:n)*x(k+1:n)')/A(k,k);endx=x';end2.超松弛法:functio

5、n[x,n]=SOR(A,b,x0,w,eps,M)ifnargin==4eps=1.0e-6;M=200;elseifnargin<4errorreturnelseifnargin==5M=200;endif(w<=0

6、

7、w>=2)error;return;endD=diag(diag(A));%求A的对角矩阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=inv(D-L*w)*((1-w)*D+w*U);f=w*inv((D-L*w))*b;x=B*x0+f;

8、n=1;%迭代次数whilenorm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:迭代次数太多,可能不收敛!');return;endend三数据结果A=[-0.98-0.05-0.02;-0.04-0.90.07;-0.020.090.94];x0=[000]';b=[111]';[x,n]=jacobi(A,b,x0)%雅克比迭代法求解线性方程组X1=inv(A)*b%原线性方程组的精确解x11=gaussMethod(A,b)%高斯赛德儿法

9、求解线性方程组x=-0.9937-0.97861.1364n=6X1=-0.9937-0.97861.1364x11=-0.9937-0.97861.1364B=[0.680.010.12;0.03-0.54-0.05;0.20.080.74];x=[000]';b=[111]';w=1.07;x2=Bb%原线性方程组的精确解[x22,n]=SOR(B,b,x0,w)%超松弛法求解线性方程组x2=1.2851-1.89241.2086x22=1.2851-1.89241.2086n=7四计算结果分析高斯

10、-赛德尔迭代和雅克比迭代的算法很类似。只不过,雅克比迭代的时候每次只用到上次迭代的值。而高斯-赛德尔则是算出分量后立即用于后面的运算五计算中出现的问题,解决方法及体会通过这次实验让我初步了解了怎样运用雅可比迭代法、高斯-赛德尔、超松弛迭代法求解线性方程组的基本算法,但还不够熟练还得加强练习才是。教师评语指导教师:年月日

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

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

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