第六章非线性方程近似解一元二次方程是你早已学过的,恐怕也是你能够手到擒来解出的唯一的一类非线性方程。对于3、4次的方程虽然可以在数学手册上查到求解公式,但是太复杂,至于5次以上的方程就没有现成的求解公式了。三角函数、指数函数等超越函数如sinx,ex,lnx,叫做超越方程,它与n(=2)次代数方程一起统称为非线性方程,记做f(x)=0。求解432()876540fxxxxx,可以用MATLAB做图1、简要介绍牛顿切线法和割线法数学原理,并画出几何意义的示意图,收敛速度那个快?对于方程f(x)=0,将f(x)在kx做泰勒展开,去掉2阶及以上项(即线性化)后得到()()'()()kkkfxfxfxxx(a)设'()0kfx,用1kx代替右端的x,由()0fx得到迭代公式1()'()kkkkfxxxfx,(a)式的几何意义如图所示,图中MN是过(,())kkxfx点的曲线()yfx的切线,它与x轴的交点即为1kx,这种方法称为牛顿切线法,可以看出它是线性化与迭代法的结合。为了避免切线法计算导数的麻烦,用差商11()()kkkkfxfxxx代替'()kfx,迭代公式变为Mxkxk+1y=f(x)xyON111()()()()kkkkkkkfxxxxxfxfx(b)其几何意义如图所示,用割线PQ代替原来的切线,称为割线法。functiony=newton1(x0,n,tol)x(1)=x0;b=1;i=1;while(abs(b)tol)x(i+1)=x(i)-fun1(x(i))/dfun1(x(i));b=x(i+1)-x(i);i=i+1;if(in)error('nisfull');endendy=x(i);例1、求下面方程的解0001()ln()0xfxxxyx。(1/0.3ab)1'()1fxxfunctiony=fun1(x)a=1;b=0.3;xk-1Pxkxk+1y=f(x)xyOQsigma=a/b;x0=0.98;y0=0.02;y=1/sigma*log(x/x0)-x+x0+y0;functiony=dfun1(x)a=1;b=0.3;sigma=a/b;y=1/sigma/x-1;y=newton1(0.08,10,1e-4)得到:y=0.03992、当f(x)为多项式时可用r=root(c)%输入多项式的系数c(按降幂排列),输出r为f(x)=0的全部根。例2、求解432()876540fxxxxx。c=[87654];r=roots(c)r=-0.6813+0.4895i-0.6813-0.4895i0.2438+0.8069i0.2438-0.8069i