1、% xa 解区间上限% xb 解区间下限% n 最多循环步数,防止死循环。%delta 为允许误差x=xa;fa=eval(fx);x=xb;fb=eval(fx);disp( n xa xb xc fc );for i=1:n xc=(xa+xb)/2;x=xc;fc=eval(fx); X=i,xa,xb,xc,fc; disp(X), if fc*fa xb=xc; else xa=xc; end if (xb-xa)delta,break,endend二、简单迭代法程序:function x0,k=iterate (f,x0,eps,N)if nargineps & k fplot(x
2、5-3*x3-2*x2+2,-3,3);grid 得如下图:由上图可得知:方程在-3,3区间有根。2、二分法输出结果 f=x5-3*x3-2*x2+2f =x5-3*x3-2*x2+2 bisect(f,-3,3,20,10(-12)2、迭代法求方程:迭代法输出结果: f=inline( x0,k=iterate(fun1,2)x0 = 2k = 1 x0,k=iterate(fun1,1.5) NaN 6 x0,k=iterate(fun1,2.5) 53、误差分析:由二分法和迭代法输出结果可知,通过定点迭代法得出方程的解误差比二分法大,而利用二分法求出的结果中,可以清楚看出方程等于零时的解
3、,其误差比迭代法小。b、g(x)=cos(sin(x)cos(sin(x),-4,4);方程在-4,4区间无根。f=cos(sin(x)cos(sin(x) bisect(f,-4,4,20,10(-12) x0,k=iterate(f,0.5) 15 x0,k=iterate(f,1) x0,k=iterate(f,1.5) 16 x0,k=iterate(f,2) x0,k=iterate(f,2.5)14(3)、由于该方程无解,所以无法比拟误差。c、g(x)=x2-sin(x+0.15)x2-sin(x+0.15),-10,10);x2-sin(x+0.15)x2-sin(x+0.15)
4、 bisect(f,-3,3,30,10(-12) x0,k=iterate(f,1.96) 12 x0,k=iterate(f,0,2) x0,k=iterate(f,0.2) 500 x0,k=iterate(f,0.3) x0,k=iterate(f,0.001)(3)、误差分析:由二分法和迭代法输出结果可知,利用二分法求出的结果中,可以清楚看出方程等于零时的解,其误差比迭代法小。d、g(x)=xx-cos(x)x(x-cos(x),-1,1);方程在-1,1区间有根。x(x-cos(x)x(x-cos(x) bisect(f,-0.1,0.1,20,10(-12) 1.0000 -0.1000 0.1000 0 Inf 1.0e+002 * 1.0e+003 * 1.0e+004 * 1.0e+005 * 1.0e+006 * x0,k=iterate(f,0.01) x0,k=iterate(f,0.81) x0,k=iterate(f,0.61)