
1.exitflag>0---算法收敛=0---达到最大迭代次数而停止<0---算法收敛你这里出现=0,不见得是不收敛,但是至少肯定此迭代公式收敛速度过慢。初值的选择固然非常重要,但是要不断尝试显然不是办法。2.我想说一说,如何构造迭代函数使之具有较快的收敛速度,只说方程,方程组同理。把求解方程g(x)=0转化为求不动点问题,从不动点方程f(x)=x自然引出迭代公式xn+1=f(xn).显然,f的构造方法不同,导致的收敛性(收敛或发散)及收敛速度均有不同。从你目前的f出发,构造一族新的函数h(a,x)=af(x)+(1-a)x, .........(*)其中,a取[0,1]间的常数。注意到h(0,x)=x,h(1,x)=f(x),即y=x,y=f(x)都包含在该函数族中。取定某a,对于h(a,x)的不动点,有:x=h(a,x)=af(x)+(1-a)x,移项,ax=af(x),即x=f(x),故h的不动点也是f的不动点。这样,可选择一组a的值来观察函数族(*)的变化,最后选定某a值做迭代。3.关于迭代y=f(x)的收敛性,可使用下面定理以加以验证:y=f(x)在[a,b]上连续,且a<=y<=b, 如果存在L<1,使得|f'(x)|<=L,则x=f(x)在[a,b]上有唯一解。
