《用C语言实现雅可比迭代法.docx》由会员分享,可在线阅读,更多相关《用C语言实现雅可比迭代法.docx(6页珍藏版)》请在三一办公上搜索。
1、用C语言实现雅可比迭代法#include stdlib.h#include stdio.h#include conio.h#include string.h#include math.h#define N 100float Table(int n,float aNN,float bN) int i,j;float cNN;printf(请输入矩阵的行!n);for(i=0;i<n;i+)printf(请输入行 %d:,i+1);for(j=0;j<n;j+)scanf(%f,&aij); printf(请输入向量b:);for(i=0;i<n;i+)scanf(%f,&bi); f
2、or(i=0;i<n;i+)for(j=0;j<n;j+)if(i=j)cij=0;continue;cij=-aij/aii; printf(n矩阵A和向量b:n);for(i=0;i<n;i+)for(j=0;j<n;j+)printf(%10.5f,aij);printf(%10.5f,bi);printf(n);printf(n高斯-赛德尔迭代的方案:n);for(i=0;i<n;i+)for(j=0;j<n;j+)printf(%10.5f,cij);printf(%10.5f,bi/aii);printf(n);float init_vec(int n,fl
3、oat xN)int i;printf(请输入初始迭代向量x:);for(i=0;i<n;i+)scanf(%f,&xi); printf(n初始迭代向量x:n);for(i=0;i<n;i+)printf(%10.5f,xi);printf(n);float jacobi(int n,float aNN,float bN,float xN) int i,j,k;float tmp,x2N;for(k=0;k+)for(i=0;i<n;i+)x2i=xi;for(i=0;i<n;i+)tmp=0.0;for(j=0;j<n;j+)if(j=i) continue;tmp+=
4、aij*x2j;xi=(bi-tmp)/aii; for(i=0,j=0;i<n;i+)if(fabs(x2i-xi)<0.00001) j+; if(j=n) printf(n这个高斯-赛德尔迭代方案收敛!n);printf(迭代次数:%d,k+1); break;if(k=499) printf(n这雅可比迭代计划可能不收敛!);break; printf(n结果为:n);for(i=0;i<n;i+)printf(%12.7f,xi); int mainint n;float xN,aNN,bN;printf(请输入n:);scanf(%d,&n); Table(n,a,b); init_vec(n,x); jacobi(n,a,b,x); getch;