实验课程名称:数值分析.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文档。上传文档
查看更多
实验课程名称:数值分析.doc

实验课程名称:数值分析 实验项目名称 运用二分法和迭代法 实验成绩实验者张伟专业班级软件0703组别26 同组者实验日期08年月日一、实验内容描述二、实验基本原理与设计   1 确定区间[a,b],验证f(a)·f(b)0,给定精确度.   2 求区间(a,b)的中点c.   3 计算f(c).   (1) 若f(c)=0,则c就是函数的零点;   (2) 若f(a)·f(c)0,则令b=c;   (3) 若f(c)·f(b)0,则令a=c. 4 判断是否达到精确度:即若a-b┃pr,则得到零点近似值a(或b),否则重复2-4.迭代法: 1 确定初始值a,给定精度pr,定义迭代函数x=f(x) 2 fa=a;a=f(a) 3判断是否达到精确度:即若a-fa┃pr,则得到零点近似值a,否则重复2-. Aitken迭代法 1 确定初始值a,给定精度pr,定义迭代函数x=f(x) 2 a1=a;fa=f(a); faa=f(fa);a=faa-(faa-fa)*(faa-fa)/(faa-fa*2+a); 3判断是否达到精确度:即若a-a1┃pr,则得到零点近似值a,否则重复2-. Newton迭代 1 确定初始值a,给定精度pr,定义迭代函数xk+1= xk-(xk*xk*xk-xk-1)/(3*xk*xk-1) 2 fa=a;a=f(a) 3判断是否达到精确度:即若a-fa┃pr,则得到零点近似值a,否则重复2-. 弦截法 1 确定初始值a,b给定精度pr,定义函数f()和弦截法函数g(a,b){return b-f(b)*(b-a)/(f(b)-f(a));} 2 b1=b;b=g(a,b); a=b1; 3判断是否达到精确度:即若pr,则得到零点近似值,否则重复2-. 三、主要仪器设备及耗材 Ubuntu8.10 g++ 第二部分:实验调试与结果分析 一、调试过程 #includeiostream using namespace std; double f(double); //申明函数 int main() { double a,b,c,i=0,fa,fb,pr; coutplease input the start number:; cina; coutplease input the last number:; cinb; //输入边界值 coutplease input precision:; cinpr; //输入精度 if(f(a)*f(b)0) {coutBetween a and b does not have a answer!endl;}//判断是否有根 else { do { c=(a+b)/2; fa=f(a); fb=f(c); if(fa*fb0) b=c; else a=c; i++; } while(b-apr); coutIterative Numbers is iendl; coutThe answer is cendl; //输出迭代次数和结果 } return 0; } double f(double x) //定义函数 { return (x*x*x-x-1); } 结果 简单迭代法 #includeiostream #includemath.h using namespace std; double f(double); //申明函数 int main() { double a,i=0,a1,pr; coutplease input the start number:; cina; coutplease input precision:; cinpr; //输入精度 do { a1=a; a=f(a); i++; if(i1000000) {coutIterative is defeated!;return 0;} } while((a-a1)pr||(a-a1)-pr); coutIterative Numbers is iendl; coutThe answer is aendl; //输出迭代次数和结果 } double f(doub

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档