数值计算上机程序.doc

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

2.用下列方法求方程e^x+10x-2=0的近似根,要求误差不超过0.5*10e-3,并比较计算量。 在区间[0.,1]上用二分法。 取初值x0=0并用迭代过程.(k=0,1,2,……) 取初值x0=0用牛顿法。 源程序: #includeiostream #includecmath #define e 2.71828 using namespace std; double f(double x) { return exp(x)+10*x-2; }; void Er() { double a,b,d,A,B,C; int n,p; cout输入X0,X1:要求输入的X0=0,X1=1endl; cinab; d=b-a; C=1,n=0,p=2; while((C!=0)(d/p)0.0001) { A=f(a); B=f(b); C=f((a+b)/2); if(A0C0||A0C0) a=(a+b)/2; else if(B0C0||B0C0) b=(a+b)/2; n++,p=p*2; coutan =a bn =bendl; } cout解为:(a+b)/2endl; }; double Diedai() { int i=1; double x=0.0,y,x1=0.0; while(1) { x1=x; y=2-exp(x); x=y/10; if(fabs(x-x1)0.00001){ cout第i次迭代得:endl; coutxi xendl; break; } else cout第i次迭代得:endl; coutxi xendl; i++; } return x; }; double Newton() { int i=1; double x1=0.0,x2,x3,x4,x5; while(1) { x5=x1; x2=exp(x1)+10*x1-2; x3=exp(x1)+10; x4=x2/x3; x1=x1-x4; if(fabs(x1-x5)0.00001){ cout第i次迭代得:endl; coutxi=x1endl; break; } else cout第i次迭代得:endl; coutxi=x1endl; i++; } return x1; }; int main() { coutf(x)=exp(x)+10*x-2的实根,准确到四位有效数字.endl; cout请输入相应的选择序号:endl; cout1:对二分法解题. 2:迭代法解题. 3:Newton法解题endl; int N; while(cinN) { if(N==1) { Er(); } else if(N==2) { Diedai(); } else if(N==3) { Newton(); } } return 0; } 运行结果: 1 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档