欢迎来到天天文库
浏览记录
ID:59203266
大小:475.50 KB
页数:3页
时间:2020-09-10
《工程常用算法作业一-45组.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《工程常用算法》综合实践作业一作业名称:非线性方程求根完成日期:2015年05月30日班级学号姓名主要工作说明自评成绩编写程序A排版,及总结绘制流程图题目:已知方程,请分别用二分法、牛顿法和割线法求此方程的根。误差限取:。注意先确定出方程的有根区间。(初步确定有根区间为[0,1])二、程序流程图三、完整的程序及简要的注释/******************程序一*****************//******************二分法****************/#include
2、tdio.h>#includevoidmain(){doublea=0,b=1,x,fx,fa;//初始区间为[0,1]intk=0;printf("二分法:初始区间为:[0,1]");while(((b-a)/2)>pow(10,-12))//终止条件{x=(a+b)/2;fx=x*x*x+2*x*x-exp(x);fa=a*a*a+2*a*a-exp(a);if(fa*fx<0)b=x;//变换区间elsea=x;k++;printf("k=%-3dx=%-.13ff
3、(x)=%.13f",k,x,fx);//输出次数,x值和函数值}getchar();//保持命令窗口始终打开}/********************程序二*************//********************牛顿法************/#include#includevoidmain(){doublex0=0,x1,fx,fd,fx1,e=pow(10,-12);//初始点为x0=0intk=0;printf("牛顿法:初始点为
4、x0=0");while(1){fx=x0*x0*x0+2*x0*x0-exp(x0);//计算x0处的函数值fd=3*x0*x0+4*x0-exp(x0);//计算x0处的导数值x1=x0-fx/fd;fx1=x1*x1*x1+2*x1*x1-exp(x1);k++;printf("k=%-3dx1=%-.13ff(x)=%-.13f",k,x1,fx1);//格式输出,x1和f(x)小数点后显示13位if(fabs(fx1)5、}getchar();//保持命令窗口始终打开}/*****************程序三*************//*****************割线法*************/#include#includevoidmain(){doublex0=1,x1=2,x2,fx0,fx1,fx2,fd,e=pow(10,-12);//初始点为x0=1,x1=2intk=0;printf("割线法:初始点:x0=1,x1=2");while(1){f6、x0=x0*x0*x0+2*x0*x0-exp(x0);//计算x0处函数值fx1=x1*x1*x1+2*x1*x1-exp(x1);//计算x1处函数值fd=(fx1-fx0)/(x1-x0);//用割线斜率代替切线斜率x2=x1-fx1/fd;//计算下一个迭代点fx2=x2*x2*x2+2*x2*x2-exp(x2);k++;printf("k=%-3dx=%-.13ff(x)=%-.13f",k,x2,fx2);//控制格式输出,x和f(x)小数点后显示13位if(fabs(fx2)7、
5、}getchar();//保持命令窗口始终打开}/*****************程序三*************//*****************割线法*************/#include#includevoidmain(){doublex0=1,x1=2,x2,fx0,fx1,fx2,fd,e=pow(10,-12);//初始点为x0=1,x1=2intk=0;printf("割线法:初始点:x0=1,x1=2");while(1){f
6、x0=x0*x0*x0+2*x0*x0-exp(x0);//计算x0处函数值fx1=x1*x1*x1+2*x1*x1-exp(x1);//计算x1处函数值fd=(fx1-fx0)/(x1-x0);//用割线斜率代替切线斜率x2=x1-fx1/fd;//计算下一个迭代点fx2=x2*x2*x2+2*x2*x2-exp(x2);k++;printf("k=%-3dx=%-.13ff(x)=%-.13f",k,x2,fx2);//控制格式输出,x和f(x)小数点后显示13位if(fabs(fx2)
7、
此文档下载收益归作者所有