割线法求解过程_割线法求解非线性方程.doc

割线法求解非线性方程

割线法求解非线性方程要求:对于给定的非线性方程以及初值可求解方程割线法求解非线性方程的数学理论给定非线性方程f(x)=0,选定曲线y=f(x)上的两个点p0(x0,f(x0)).p1(x1,f(x1)),过着两点作一条直线,则直线方程y=f(x1)+f(x1)-f(x0)(x-x1)/(x1-x0)。当f(x0)!=f(x1)时,直线与x轴的交点为x2=x1-f(x1)(x1-x0)/f(x1)-f(x0)时,这时用x2作为曲线y=f(x)与x轴交点的近似值,显然这里x*为f(x)=0的精确解,然后用p1(x1,f(x)),p2(x2,f(x2))构造直线,重复上述步骤,就可以求出x3。如此进行下去,就可得到迭代格式x(k+1)=xk-f(xk)(xk-x(k-1))/f(xk)-f(x(k-1)) (k=0,1,…) (1)迭代格式(1)实际上就是用均差f(xk)-f(x(k-1))/(xk)-x(k-1)取代牛顿公式x(k+1)=xk-f(xk)/中的微商的结果,所以割线法可以被看成牛顿法的一种变形。

割线法求解非线性方程算法和流程图输入求根区间,搜索步长和精度,利用公式(1)迭代,得到值后计算精度,如果精度没有达到继续迭代,达??精度后输出结果。割线法求解非线性方程的Matlab实现function[p1,err,k,y]=secant(f,p0,p1delta,max1)%f是给定的非线性函数%p0,p1为初始值%delta为给定误差界%max1迭代次数的上限%p1为所求得的方程的近似解%err为p1-p0的绝对值%k为所需要的迭代次数%y=f(p1)k=0,p0,p1,feval(`f`,p0),feval(`f`,p(0))for k=1:max1p2=p1-feval(`f`,p1)*(p1-p0)/(feval(`f`,p1)-feval(`f`,p0))err=abs(p2-p1);p0=p1;p1=p2;k,p1,err,y=feval(`f`,p1)if(err>secant(`f`,-1.5,-1.52.10^(-6),11)回车得到如下结果:k=0p0=-1.5000 p1=-1.5200 ans=0.1250 ans=0.0082k=1p1=-1.5214 err=0.0014 y=-1.3633e-004k=2p1=-1.5214 err=2,2916e-005 y=1.4454e007k=3p1=-1.5214 err2.4318e-008 y=2.5460e-012ans=-1.5214以上表明,经过3次迭代得到了满足精度要求的近似解,且f(x3)=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值