迭代法解线性方程组(C语言描述).docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Gauss-Seidel迭代法解线性方程组的C语言源代码: #includestdio.h #includemath.h #includestdlib.h struct Line{ int L; struct Row *head; struct Line *next; }; struct Row{ int R; float x; struct Row *link; }; //建立每次迭代结果的数据存储单元 struct Term{ float x; float m; }; struct Line *Create(int Line,int Row){ struct Line *Lhead=NULL,*p1=NULL,*p2=NULL; struct Row*Rhead=NULL,*ptr1,*ptr2=NULL; int i=1,j=1; float X; while(i=Line){ while(j=Row+1){ scanf(%f,X); if(X!=0||j==Row+1){ ptr1=(struct Row*)malloc(sizeof(Row)); if(ptr1==NULL){ printf(内存分配错误!\n); exit(1); } ptr1-x=X; ptr1-R=j; if(ptr2==NULL){ ptr2=ptr1; Rhead=ptr1; } else{ ptr2-link=ptr1; ptr2=ptr1; } } j++; } if(ptr2!=NULL){ ptr2-link=NULL; ptr2=NULL; } if(Rhead!=NULL){ p1=(struct Line*)malloc(sizeof(Line)); if(p1==NULL){ printf(内存分配错误!\n); exit(1); } p1-L=i; p1-head=Rhead; if(p2==NULL){ Lhead=p1; p2=p1; } else{ p2-next=p1; p2=p1; } } i++; Rhead=NULL; j=1; } if(p2!=NULL) p2-next=NULL; return Lhead; } struct Line *Change(struct Line*Lhead,int n){ struct Line*p1,*p2,*p3,*p; struct Row*ptr; int i=1,k,j; float max,t; if(Lhead==NULL){ printf(链表为空!\n); exit(1); } p2=Lhead; while(i=n){ max=0; k=0; t=0; ptr=p2-head; while(ptr!=NULL){ if(ptr-R!=n+1){ t+=fabs(ptr-x); if(maxfabs(ptr-x)){ max=fabs(ptr-x); k=ptr-R; } } ptr=ptr-link; } t=t-max; if(max=t){ printf(系数矩阵A不具有严格对角优势,该程序不能用Gauss-Jacobi迭代法解该方程组!\n); return NULL; } if(p2-L==k) p2=p2-next; else if(p2-Lk){ printf(系数矩阵A不具有严格对角优势,该程序不能用Gauss-Jacobi迭代法解该方程组!\n); exit(0); } else{ p3=Lhead; while(p3-L!=k) p3=p3-next; ptr=p3-head; p3-head=p2-head; p2-head=ptr; } i++; } return Lhead; } void Deal(struct Line *Lhead,float e,int N,int n){ struct Term*ptr; struct Line*p1; struct Row*current; float m=0,a,b,c=0; int k=0; if(Lhead==NULL){ printf(链表为空\n); exit(1); }

文档评论(0)

anma + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档