实验一非线性方程组求解实验报告..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文档。上传文档
查看更多
实验一非线性方程组求解实验报告.

计算方法实验报告 专业班级: 姓名: 学号: 实验成绩: 1.【实验题目】 非线性方程组求解 2.【实验目的】 (1).掌握二分法、迭代法、牛顿迭代法求方程近似根的基本思想与原理。 (2).掌握常用迭代算法的程序实现。 3.【实验内容】 迭代法是求解非线性方程的基本方法,其构造方法可以有多种多样,但关键 是怎样才能使迭代收敛且有较快的收敛速度。 考虑一个简单的代数方程 ,针对该方程,可以构造多种迭 代法,如: 取初始值 ,取 ,分别用以上迭代格式作实验,记录各算法的迭代过程 4. 【实验要求】 (1)取定某个初始值,按方案1~3对非线性方程求根,它们的收敛性如何? 重复选取不同的初始值, 反复实验。 请读者自行设计一种比较形象的记录方式 (如 利用Matlab的图形功能),分析三种迭代法的收敛性与初值选取的关系。 (2)对三个迭代格式的某一种,分别取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异? (3)对代数方程 ,分别用 方案1 用二分法求解; 方案2 用牛顿法求解; 5. 【算法描述】 二分法算法步骤 计算有根区间的端点a,b及预先给定的精度e。 计算中点(a+b)/2。 若f(x)f(a)0,则xb,转向4);否则,xa,转向4). 若b-ae,则输出满足精度的根x,结束;否则转向2)。 牛顿法迭代法的计算步骤 给出初始近根及精度e。 计算。 若|-|e,则转向4);否则转向2)。 输出满足精度的根,结束。 【源程序(带注释)】 二分法 #includestdio.h #includemath.h #includeconio.h #includewindows.h float f(float x) { float a; a=x*x*x-x-1; return a; } /*求函数值,如果求其它函数,只需改成其它函数即可*/ main() { float a,b,e,x; /* a,b 分别表示有根区间的左、右端点, e 是精度要求,x 区间中点值*/ system(CLS);//清屏 printf(对代数方程x^3-x-1=0,分别用\n方案1 用二分法求解\n); printf( \n please input data a =); scanf(%f,a); printf( \n please input data b=); scanf(%f,b); if(f(a)*f(b)0) { while(f(x)!=0) { x=(a+b)/2; if(f(x)*f(a)0) { b=x; if(fabs(b-a)0.000001) break; else continue; } else { a=x; if(fabs(b-a)0.000001)break; else continue; } } printf(\n); x=(b+a)/2; printf(the root of f(x)=0 is x=%f\n,x); } else printf(\ not root! afresh input\n); /*表示 [a,b] 区间无根,重新选择有根区间*/ getch(); return(x); } 牛顿法 #includestdio.h #includemath.h #includeconio.h #includewindows.h #define maxrept 1000 /*最大迭代次数*/ float f(float x) { float a; a=x*x*x-x-1; return a; /*函数f(x) */ } float df(float x) { return(1+exp(-x)); /* 函数f(x)的导数 ) (x f ′ */ } float iterate(float x) { float x1; x1=x-f(x)/df(x); /* 牛顿迭代函数 iterate(x)=x-f(x) / ) (x f ′ */ return(x1); } main() { float x0,x1,d; int k=0; // clrscr(); system(CLS); printf(对代数方程x^3-x-1=0

文档评论(0)

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

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

1亿VIP精品文档

相关文档