资源描述:
《上机报告-二分法,史蒂芬森迭代,割线法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算方法上机实习报告[题目及目的要求]1.用二分法求方程,-6兀-1二°在[0,5]上根的近似值。用牛顿迭代法求x3-3x-1=0在x=2附近的实根。2.完成史蒂芬森迭代加速法和割线法的子程序,并利用方程%3-4x2-10=0对比对分法与一般迭代法。[方法原理说明]1•二分法和牛顿迭代法:二分法是逐次把冇根区间分半,舍弃无根区间而保留冇根区间的一种逼近根的方法。在这个过程屮有根区间的长度以2的幕次方减少,当何根区间的长度小于给定的精度时,其中点就作为根的近似值。牛顿迭代法的迭代格式为:初值%于(忑)f(")显然,牛顿迭代格
2、式能够迭代下去必须要求/(%,)的导数不能为0.当某个f'(xk)=0或很小时,迭代中断;当/(X,)满足一•定条件时,牛顿迭代具有平方收敛速度。该方法对初值勺要求较高,若选取不当,则可能发散,若选取的好,则收敛很快。2.史蒂芬森迭代加速法和割线法迭代法就是通过一个迭代格式进行反复迭代以产牛一个序列。若这个序列收敛于方程的根,就称这个迭代格式收敛。史蒂芬森迭代加速法的迭代格式为rr_r(儿一蘇『Jz&_2%+£Iyk=fM,zk=fM(k=o,i,2....)割线法与牛顿迭代法一样,即在根的某个邻域内,/(%,)有直至二阶
3、的连续导数,且f(兀JhO,则在邻域内选取初值无°,召,迭代均收敛。割线法的迭代格式为/(无)(k=2,3....)[计算步骤]1•二分法:1)给定a,b及梢度要求ep;2)计算x=(a+b)/2及/(xj;3)若b-ab,否则兀=>a;5)转2。牛顿迭代法:1)输入初始值兀o,精度要求ep,允许最人迭代次数N“诳;2)k=l,G=f(x());3)若
4、G
5、vep,贝怡;止计算,迭代中断,否则计算4)若兀]_兀。V印,则坷为近似解,返回主程序
6、。否则计算f(%))=>G,xl=>x0,k+1=>Z:5)若k>Nmax,则停止计算,迭代发散,否则转3。2•割线法:1)输入初始值兀°,旺,精度要求ep,允许的最大迭代次数“咖宀2)k=l,G=/'(x0);3)若
7、G
8、9、,x,cp);printf(Htherootoff(x)is%f”,x);)执行结果:therootoff(x)is2.528918Pressanykeytocontinue5)若k>A^max,则停止计算,迭代发散,否则转3。史蒂芬森加速迭代法:1)输入初始值%,精度要求cp,允许的最大迭代次数NmiW;2)计算西=/'(兀()),兀2=/("G=/'(X):3)若G10、+4)若x}-x(11、止计算,迭代发散,否则转3。[程序清单及运行结果]1•二分法和牛顿迭代法:1)二分法:#includedoublef(doublcx){doublefl;fl=x*x*x-6*x-l;retum(fl);}doubledf(doublea,doubleb,doublex,doubleep){doublec;c=b-a;while(c>=ep){x=(a+b)/2;if(f(a)*f(x)>0)a=x;elseb=x;2)牛顿迭代法:#includedoublef(doublex){dou
12、bleal;al=x*x*x-3*x-l;retum(al);}doublefl(doublex){doublebl;bl=3*x*x-3;return(bl);}doublent(doublex,doubleep,intflag,intnmax){intk;doublexO,g;flag=l;k=l;while((fabs(x-xO)>ep)&&(k13、{intflag,nmax;doublex,ep;ep=0.000001;nmax=200;x=2;x=nt(x,ep,flag,nmax);if(flag==0)printf("thenewtonmethodisfailure");elseprintf(Htherootoff(x)is%f",x)