1、(注:各种方法均以精确到小数点后10位为标准)1、二分法设函数,显然f(h)关于h单调递减。易求f(1.5)0,f(2.5)es) if f(mid)=0 break; elseif f(mid)*f(low)es if f(poi)=0 elseif f(poi)*f(low) if f(x)=0 else temp=x; x=f(x); vx=vpa(x,11); disp(vx)迭代次数26次,最终计算结果为2.0269057283,与标准值吻合。函数和h的图像如下:(2)方式2:将方程变换为hf(h)=(9*h2-90/pi)(1/3);x=5;这种变换方式在所要求的值2.026905
2、7283处不收敛,而是收敛在方程的另一零点8.6139066566处,所以不管怎么变换初始点的取值,都不能得到所要的结果。具体的关于收敛性的判断准则在第3次上机作业中已描述,此处不再赘述。4、Newton-Raphson方法Newton-Raphson方法主要使用了泰勒级数的前两项近似来求根。,令,则,即将函数图像在当前点的切线与x轴的交点作为下一个迭代点。计算程序如下:df(h)=diff(f); %derived function of f(h) x=x-f(x)/df(x); vpa(x,11)该方法只迭代了5次,便得到最终值2.0269057283,收敛速度远优于之前的各种方法。下面用
3、line函数画出迭代过程示意图:line(temp,x,f(temp),0,hold online(temp,temp,0,f(temp),第2次迭代的局部放大图如下:第3,4,5次迭代之后的迭代图像太密,就不一一画出了。从图像中也可明显看出,在本例中,Newton-Raphson方法的收敛速度非常快,主要还是因为用泰勒级数前两项近似原函数具有很高的精度。5、割线法割线法的思想类似于Newton-Raphson方法,不过使用了差分来估计斜率,其迭代方法为,计算代码如下:x1=4;x2=3; %the initial estimate of zero point valuewhile abs(x
4、1-x2) if f(x2)=0 temp=x2; %store x2 x2=x2-f(x2)*(x2-x1)/(f(x2)-f(x1); x1=temp; vpoi=vpa(x2,11); disp(vpoi);迭代次数为5次,迭代次数也很快,最终值为2.0269057283,与标准值吻合。小结:1. 对于二分法和试位法,均属于划界法,但是试位法的收敛速度还是明显要快于二分法,结合前面的图形和分析,这是因为在根附近的位置,函数图像接近于直线,此时使用试位法可以很快地收敛到真值附近,而二分法并不考虑区间端点对应的函数值。即若函数在所求值附近的二阶导数越越接近于0,函数图像在所求值附近就越接近直线,收敛也就更快。2. 不动点迭代法的收敛性与收敛时的优劣性与所选取的变换方式相关。对于是否收敛可根据不动点定理判断,而不同的变换方法可能有不同的收敛速度,一般单调收敛优于振荡收敛,在不同的方法中可择优选取。3. Newton-Raphson方法在单根附近是二次收敛的,误差大致与前一次迭代的误差平方成正比,所有收敛速度远优于前面三种方法。4. 割线法使用了差分代替了Newton-Raphson方法中的导数,所以收敛速度稍弱于Newton-Raphson方法,但是还是很快。