matlab-线性方程组的迭代解法-GaussSeidel.doc

matlab-线性方程组的迭代解法-GaussSeidel.doc

ID:58676582

大小:62.00 KB

页数:4页

时间:2020-10-15

matlab-线性方程组的迭代解法-GaussSeidel.doc_第1页
matlab-线性方程组的迭代解法-GaussSeidel.doc_第2页
matlab-线性方程组的迭代解法-GaussSeidel.doc_第3页
matlab-线性方程组的迭代解法-GaussSeidel.doc_第4页
资源描述:

《matlab-线性方程组的迭代解法-GaussSeidel.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验1:线性方程组的迭代解法专业班级学号姓名实验日期1、实验环境MATLAB2009A2、实验目的和要求目的:利用Gauss-Seidel编程法求解方程组要求:代码能列出每一次迭代的中间值3、解题思路、代码3.1解题思路Gauss-Seidel迭代公式:xi(k+1)=(bi-aijxj(k+1)-aijxj(k))/aij(i=1,2,…,n)3.2代码functionx=GaussSeidel(A,b,es,maxit)%GaussSeidel:GaussSeidelmethod%x=GaussSeidel(A,b):GaussSeidelwithoutrelaxatio

2、n%input:%A=coefficientmatrix%b=righthandsidevector%es=stopcriterion(default=0.00001%)%maxit=maxiteration(default=50)%output:%x=solutionvectorifnargin<2,error('atleast2inputargumentsrequired'),endifnargin<4

3、isempty(maxit),maxit=50;endifnargin<3

4、isempty(es),es=0.00001;endk=0xk=[0000][m,n]=siz

5、e(A);ifm~=n,error('MatrixAmustbesquare');endC=A;fori=1:nC(i,i)=0;x(i)=0;endx=x';fori=1:nC(i,1:n)=C(i,1:n)/A(i,i);endfori=1:nd(i)=b(i)/A(i,i);enditer=0;while(1)xold=x;fori=1:nx(i)=d(i)-C(i,:)*x;ifx(i)~=0ea(i)=abs((x(i)-xold(i))/x(i))*100;endendk=k+1xk=x'%此行不打分号,并且转置,以便于输出每次迭代的结果iter=iter+1;i

6、f(max(ea)<=es

7、iter==maxit)break;endendend4、实验步骤4.1输入:4.2输出:……………….5、讨论和分析GaussSeidel迭代法是通过利用xi(k+1)=(bi-aijxj(k+1)-aijxj(k))/aij(i=1,2,…,n)这个公式,经过若干次运算,使结果越来越逼近方程的真实解。实验的重点是代码中如何实现迭代公式以及代码中控制好循环。GaussSeidel迭代法,是jacobi迭代法的改进,将刚算出来的xi(k+1)立即用于下一步的运算,因此,在两种方法同时收敛的情况下,GaussSeidel迭代法收敛速度更快。

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

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

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