高斯-赛德尔迭代.doc

高斯-赛德尔迭代.doc

ID:60847669

大小:222.00 KB

页数:10页

时间:2020-12-22

 高斯-赛德尔迭代.doc_第1页
 高斯-赛德尔迭代.doc_第2页
 高斯-赛德尔迭代.doc_第3页
 高斯-赛德尔迭代.doc_第4页
 高斯-赛德尔迭代.doc_第5页
资源描述:

《 高斯-赛德尔迭代.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2012-2013(1)专业课程实践论文高斯-赛德尔迭代张禹廷,,R数学08-1班一、算法理论高斯-赛德尔迭代是计算的第个分量的方法,利用了已经计算出得最新分量.高斯-赛德尔迭代法可以看作雅克比迭代法的一种改进.高斯-赛德尔迭代法没迭代一次只需计算一次矩阵与向量的乘法选取分裂矩阵为的下三角部分,即选取(下三角矩阵),,于是得到解的高斯-赛德尔(Gauss-Seidel)迭代法(1)其中称为解的高斯-赛德尔迭代法的迭代矩阵.下面给出高斯-赛德尔迭代法的分量计算公式.记由(1)式有或即于是解的高斯-赛德尔迭代法计算公式为二、算法框图开始输入数据输出错误结束三、算法

2、程序#include"stdio.h"#include"math.h"#definem3floata[m][m];floatc[m];voidgaosi();voidmain(){inti,j;floatx[m],x1[m],eps[m];floats=0;floatt=0;intp=1;intq=1;intk=0;floateps1;gaosi();for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++){s=float(s+fabs(a[i][j]));t=float(t+fabs(a[j][i]));}q=q&&(s<2*fabs(

3、a[i][i]));p=p&&(t<2*fabs(a[i][i]));s=0;t=0;}if((p+q)==0)printf("ERROR!");else{for(i=0;i<=m-1;i++){x[i]=0;x1[i]=0;}do{eps1=x[0]-x1[0];for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++)s=s+a[i][j]*x[j];x[i]=(c[i]+a[i][i]*x[i]-s)/a[i][i];s=0;eps[i]=float(fabs(x[i]-x1[i]));x1[i]=x[i];eps1=(eps1>ep

4、s[i])?eps1:eps[i];printf("x%d=%f",i,x[i]);printf("");}k=k+1;}while(eps1>1e-3);printf("迭代%d次",k);}}voidgaosi(){inti,j;floatb[m*m];printf("请输入一个矩阵a:");for(i=0;i<=m-1;i++){for(j=0;j<=m-1;j++){scanf("%f",&b[j+i*m]);a[i][j]=b[j+i*m];}}printf("请输入矩阵b");for(i=0;i<=m-1;i++)scanf("%f",

5、&c[i]);}四、算法实现例1.利用高斯-赛德尔法迭代解方程解:运行程序(1)显示出请输入一个矩阵:输入,回车。(2)显示出请输入矩阵:输入,回车。(3)显示结果:例2.利用高斯-赛德尔法迭代解方程解:运行程序(1)显示出请输入一个矩阵a:输入,回车。(2)显示出请输入矩阵b:输入,回车。(3)显示结果:

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

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

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