割线法求解非线性方程

2022-07-24 14:12:11   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。下载word有问题请添加QQ:admin处理,感谢您的支持与谅解。点击这里给我发消息

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《割线法求解非线性方程》,欢迎阅读!
割线,非线性,求解,方程

割线法求解非线性方程

要求:对于给定的非线性方程以及初值可求解方程

一、 线法求解非线性方程的数学理论

给定非线性方程f(x)=0,选定曲线y=f(x)上的两个点p0(x0,f(x0)).p1(x1,f(x1)),过着线p0p1线y=f(x1)+f(x1)-f(x0)(x-x1)/(x1-x0)f(x0)!=f(x1)时,直线p0p1x轴的交点为x2=x1-f(x1)(x1-x0)/f(x1)-f(x0)时,这时x2作为曲线y=f(x)x轴交点的近似值,显然x2x*(minx1x*,x0x*)这里x*f(x)=0的精确解,然后用p1(x1,f(x))p2(x2,f(x2))构造直线p1p2,重复上述步骤,就可以求出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)/f'(xk)中的微商f'(x)的结果,所以割线法可以被看成牛顿法的一种变形。

二、 线法求解非线性方程算法和流程图

输入求根区间,搜索步长和精度,利用公式(1)迭代,得到值后计算精度,如果精度没有达到继续迭代,达到精度后输出结果。

三、 线法求解非线性方程的Matlab实现

function[p1,err,k,y]=secant(f,p0,p1delta,max1) %f是给定的非线性函数


%p0p1为初始值 %delta为给定误差界 %max1迭代次数的上限 %p1为所求得的方程的近似解 %errp1-p0的绝对值 %k为所需要的迭代次数 %y=f(p1)

k=0,p0,p1,feval(`f`,p0),feval(`f`,p(0)) for k=1:max1

p2=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(errend

四、 线法求解非线性方程的算例实现

例题 解非线性方程x^3-x+2=0,给定处置为p0=1.5p=-1.52,误差界为10^-6 先用一个名为f.m的文件定义f(x)=x^3-x+2 function y=f(x) y=x^3-x+2;

然后在命令窗口中输入


>>secant(`f`,-1.5,-1.52.10^(-6),11) 回车得到如下结果: k=0

p0=-1.5000 p1=-1.5200 ans=0.1250 ans=0.0082 k=1

p1=-1.5214 err=0.0014 y=-1.3633e-004 k=2

p1=-1.5214 err=2,2916e-005 y=1.4454e007 k=3

p1=-1.5214 err2.4318e-008 y=2.5460e-012 ans=-1.5214

以上表明,经过3次迭代得到了满足精度要求的近似解x*x31.5214,且f(x3)=2.5461012


本文来源:https://www.dywdw.cn/a4a57d4b0b1c59eef8c7b4b4.html

相关推荐
推荐阅读