网站大量收购独家精品文档,联系QQ:2885784924

牛顿下山法.doc

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

2012-2013(1)专业课程实践论文 牛顿下山法 高广洲,0818180211,R数学08-2班 一、算法理论 牛顿法的一种变形.它是为减弱牛顿法对初始近似x0的限制而提出的一种算法....x0为迭代参数,并由条件|f(xk+1)||f(xk)|确定,计算时可先选ωk=1,逐次减半,直到条件|f(xk+1)||f(xk)|满足为止。 算法: 下山因子从t=1开始,逐次将t减半进行试算,直到能使下降条件 | f(xk+1) || f(xk) | 成立为止。再将得到的x0= xk+1,运用牛顿迭代法 ,求的方程根。 二、算法框图 三、算法程序 #includestdio.h #includeconio.h #includemath.h #includestdlib.h #define Et 1e-3 #define E1 1e-3 #define E2 1e-3 double f(double x){return x*x*x-x-1;} double f1(double x){return 3*x*x-1;} void errormess(int b){ char *mess; switch(b){ case -1:mess=f(x)的导数为0!;break; case -2:mess=下山因子已越界,下山处理失败;break; default: mess=其他类型错误!; } printf(The method has failed!because %s,mess); } int newton(double(*f)(double),double(f1)(double),double x0){ double F0,F1,a,h,x1,t; int k,i; printf(k t xk f(xk)\n); printf(-------------------------------------------------\n); printf(0 %f %f\n,x0,f(x0)); F0=f(x0); for(k=1;k=100;k++){ t=1; a=f1(x0); if(a==0) {i=-1;break;} h=F0/a; for(t=1;t=Et;t=t/2){ x1=x0-t*h; printf(%d %f %f %f,k,t,x1,f(x1)); F1=f(x1); // if(fabs(F1)=E2) {break;} if(fabs(F1)fabs(F0)) {break;} printf(\n); } printf( 下山成功\n); //if(fabs(F1)=E2) {break;} if(fabs(x1-x0)E1) {break;} x0=x1; F0=F1; i=1; if(k==100) { i=-2;} } printf(-------------------------------------------------\n); x0=x1; return i; } void main(){ int b; double x0=0.6; b=newton(f,f1,x0); if(b==1) printf(\nThe root of is x=%f\n,x0); else errormess(b); } 四、算法实现 1. 采用牛顿下山法求方程x3-x-1=0的一个根。 解:(1)首先根据方程求出其导数3x2-1,然后令 X0=0.6 . (2)运行程序 (3) 显示出结果:x=1.324718 2. 采用牛顿下山法求方程2x3-5x-1=0的一个根。 解:(1)首先根据方程求出其导数6x2-5,然后令 X0=0.8 (2) 运行程序。 (3)显示出结果:x=1.469617 N |F1|E2? N Y ? 开始 Et E1 E2 f f1 t=,k+1 X1=X0-t 退出 Y |X1|-|X0|E1? Y 根X1 结束 N

文档评论(0)

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

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

1亿VIP精品文档

相关文档