工程常用算法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

哈尔滨工程大学机电工程学院综合实践大作业学年学期:2015-2016学年春季学期课程代号:0907322[1]课程名称:工程常用算法授课教师:郭健副教授小组成员班级学号姓名成绩201307162013071605郭俊杰201307162013071610凌泽宇201307162013071627张明旺2016年6月15日《工程常用算法》综合实践作业一作业名称:非线性方程求根完成日期:2015年3月26日组号:8班级学号姓名主要工作说明自评成绩201307162013071605郭俊杰程序流程图A201307162013071610凌泽宇C语言算法编程201307162013071627张明旺总结排版知方程,请分别用二分法、牛顿法和割线法求此方程的根。误差限取:。注意先确定出方程的有根区间。二、程序流程图二分法牛顿迭代法割线法三、完整的程序及简要的注释1.牛顿法#includestdio.h#includemath.hdoublef(doublex){returnx*x*x+2*x*x-exp(x);}doublefd(doublex){return3*x*x+4*x-exp(x);}voidNewtonRoot(doublex0,doubleex){doublex1,fx1,fdx0;intk=1;printf(牛顿法求根\n);while(1){fdx0=fd(x0);if(fdx0==0){printf(重新输入初始值!);break;}else{x1=x0-f(x0)/fdx0;fx1=f(x1);printf(k=%-3dx=%.12ff(x)=%.12f\n,k,x1,fx1);if(fabs(x1-x0)ex)break;elsex0=x1;}k++;}}intmain(void){//牛顿法NewtonRoot(0,1e-12);return0;}2.二分法#includestdio.h#includemath.hdoublef(doublex){returnx*x*x+2*x*x-exp(x);}doublefd(doublex){return3*x*x+4*x-exp(x);}voidBiPartition(doublea,doubleb,doubleex){printf(二分法求根\n);if(f(a)*f(b)0){printf(区间内无根!);return;}doublex,fx;intk=1;while(1){x=(a+b)/2;fx=f(x);printf(k=%-3dx=%.12ff(x)=%.12f\n,k,x,fx);if((b-a)ex)break;else{if(f(a)*fx0)b=x;elsea=x;}k++;}}intmain(void){//二分法计算BiPartition(-2,-1,1e-12);return0;}a=x;}k++;}}intmain(void){//二分法计算BiPartition(-2,-1,1e-12);return0;}3.割线法#includestdio.h#includemath.hdoublef(doublex){returnx*x*x+2*x*x-exp(x);}doublefd(doublex){return3*x*x+4*x-exp(x);}voidNewton(doublex0,doublex1,doubleex){printf(割线法求根\n);doublex2,fx;intk=1;while(1){x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));fx=f(x2);printf(k=%-3dx2=%.12ff(x)=%.12f\n,k,x2,fx);if(fabs(x2-x1)ex)break;else{x0=x1;x1=x2;}k++;}}intmain(void){//割线法计算Newton(0.1,0.5,1e-12);return0;}四、程序运行结果五、对不同实现方法的运行结果进行比较六、问题与总结一、计算公式及计算方法

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功