还剩4页未读,继续阅读
文本内容:
二分法-学生解题答案上机课二参考算法二分法算法
1.输入求根区间[a,b],误差控制量£,定义函数fx;
2.判断f af b0则转下,否则从新输入a和b的值;
3.计算中点c=a+b/2,fc的值分为以下几种情况
①或者,停止计算,转向4;
②如果fafc V0,修正区间[a,b]为[a,c],重复3;
③如果fcfb0,修正区间[a,b]为[c,b〈重复3;
4.输出近似根c.题目一已知,取e=10-3,用二分法求fx在区间[0,1]上的根题目二已知,取e=10-5,用二分法求fx在区间[1,2]上的根二分法#include stdio.h^include math.h floatf float xfloat t;t=pow x,3+pow x,2-3*x-3;return t;void mainoofloata,b,c,d,eps;int i=0;printf〃输入求根区间的范围〃;scanf〃%f,〃,a,b;if fa*f b〉0oprintf〃重新输入求根区间的范围〃;scanf〃%f,%f〃,a,b;printf〃输入误差限e的值〃;scanf〃%f〃,eps;while b-aepsc=a+b/2;if fac0{b=c;i++;}if fc*fb0{a=c;i++;}d=a+b/2;printf\n方程的跟为:%f〃,d;printf〃\n二分次数为%d\n〃,i;臧科#includestdio.h#includemath.hfloat ffloat xofloat y;y=x*x*x+x*x—1;return y;}void mainofloata,b,e,x;printf〃请输入£〃;scanf〃%f〃,e;dooprintf〃请输入区间下限〃;scanf a;printf〃请输入区间上限“;scanf〃%f〃,b;}whilefa*fb=0;doox=a+b/2;iffabs fx e/2break;else iffa*fx0b=x;elsea=x;}while1;printf〃X的近似根为%.3f\n〃,x;孙晶#includestdio.h#includemath.hvoid mainofloat x,xl,x2;float Ffloatx,float xl,floatx2;printf〃请输入区间[xl,x2]\n〃;scanf C%f%f,z,xl,x2;printf〃x=%
0.3f\n〃,F x,xl,x2;}float Ffloatx,float xl,floatx2ofloat f,fl,f2;doof l=powxl,3+powxl,2-
1.0;f2=powx2,3+powx2,2-
1.0;while fl*f20;dox=xl+x2/2;f=powx,3+powx,2-
1.0;iffl*f0{xl=x;fl=f;}elseif f2*f0{x2=x;f2=f;}}whilefabs fle-6;return x;。