数值分析JacobiGaussSeidel法教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析JacobiGaussSeidel法教程

课 程 实 验 报 告 课程名称 《数值分析》 专 业 信息与计算科学 班 级 学 号 姓 名 指导教师 2016年 12 月12日 实验一 实验内容: 用迭代法求方程在区间[1,1.2]内的实根,对方程进行三种变形: 分别按以上三种形式建立迭代,初值;流程图为: 实验目的:熟悉并掌握迭代法求解一元方程的根。 迭代算法原理::对于给定的 HYPERLINK /lemma/ShowInnerLink.htm?lemmaId=179854 \t /_blank 线性方程组x=Bx+f(这里的x、B、f同为矩阵,任意线性方程组都可以变换成此形式),用公式x(k+1)=Bx(k)+f(括号中为上标,代表迭代k次得到的x,初始时k=0)逐步带入求近似解的方法称为迭代法(或称一阶定常迭代法)。如果k趋向无穷大时limx(k)存在,记为x*,称此迭代法收敛。显然x*就是此方程组的解,否则称为迭代法发散。 C程序程序代码: #includestdio.h #includemath.h #define N 20 int main() { int num; while(1) { printf(请选择形式); printf(\n); printf(1.x=pow(3+x-2*x*x,1/4)\t\n2.x=pow(pow((x+4),1/2)-1,1/2)\t\n3.x=pow(x,4)+2*pow(x,2)-3\t\n); scanf(%d,num); float x0,x,e,f0,s; int i; if(num==1) { printf(输入初始值x0\n); scanf(%f,x0); printf(请输入精度e\n); scanf(%f,e); for (i=0;i=N;i++) { f0=pow((3+x0-2*x0*x0),1.0/4); if(fabs(f0)=1) { s=fabs(f0-x0); } else { s=fabs(f0-x0)/fabs(f0); } if(se) { printf(i=%d\t,i); printf(x%d=%f\t,i,x0); printf(s:%f\n,s); printf(此函数收敛\n); break; } else { printf(i=%d\t,i); printf(x%d=%f\t,i,x0); printf(s:%f\n,s); x0=f0; } } if( i==20) { printf(输出失败迭代信息:); printf(i=%d\t,i); printf(x%d=%f\t,i,x0); printf(f%d=%f\t,i,f0); } } else if(num==2) { printf(输入初始值x0\n); scanf(%f,x0); printf(请输入精度\n); scanf(%f,e); for (i=0;i=N;i++) { f0=pow(pow((x0+4),1.0/2)-1,1.0/2); if(fabs(f0)=1) { s=fabs(f0-x0); } else { s=fabs(f0-x0)/fabs(f0); } if(se) { printf(i=%d\t,i); printf(x%d=%f\t,i,x0); printf(s:%f\n,s); printf(此函数收敛\n); break; } else { printf(i=%d\t,i); printf(x%d=%f\t,i,x0); printf(s:%f\n,s); x0=f0; } } if( i==20) { printf(输出失败迭代信息:); printf(i=%d\n,i); printf(x%d=%f\n

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档