割线法求解非线性方程.doc
割线法求解非线性方程要求对于给定的非线性方程以及初值可求解方程一、割线法求解非线性方程的数学理论给定非线性方程FX0,选定曲线YFX上的两个点P0X0,FX0P1X1,FX1,过着两点作一条直线,则直线方程YFX1FX1FX0XX1/X1X0。当FX010PFX1时,直线与X轴的交点为X2X1FX1X1X0/FX1FX0时,这时用X2作为曲线YFX与X轴交点的近似值,显然这里X为FX0的精确解,然后用P1X1,FX,0,1MIN2XP2X2,FX2构造直线,重复上述步骤,就可以求出X3。2P如此进行下去,就可得到迭代格式XK1XKFXKXKXK1/FXKFXK1K0,1,1迭代格式1实际上就是用均差FXKFXK1/XKXK1取代牛顿公式XK1XKFXK/中的微商的结果,所以割线法可以被看成牛顿法的一种 KXF XF变形。二、割线法求解非线性方程算法和流程图输入求根区间,搜索步长和精度,利用公式1迭代,得到值后计算精度,如果精度没有达到继续迭代,达到精度后输出结果。三、割线法求解非线性方程的MATLAB实现FUNCTIONP1,ERR,K,YSECANTF,P0,P1DELTA,MAX1F是给定的非线性函数P0,P1为初始值DELTA为给定误差界MAX1迭代次数的上限P1为所求得的方程的近似解ERR为P1P0的绝对值K为所需要的迭代次数YFP1K0,P0,P1,FF,P0,FF,P0FORK1MAX1P2P1FF,P1P1P0/FF,P1FF,P0ERRABSP2P1P0P1P1P2K,P1,ERR,YFF,P1IFERRSECANTF,15,152106,11回车得到如下结果K0P015000P115200ANS01250ANS00082K1P115214ERR00014Y13633E004K2P115214ERR2,2916E005Y14454E007K3P115214ERR24318E008Y25460E012ANS15214以上表明,经过3次迭代得到了满足精度要求的近似解,且52143XFX3120546