📜  数值分析的割线法

📅  最后修改于: 2021-09-22 10:43:16             🧑  作者: Mango

割线法也是一种通过逐次逼近求多项式根的递归方法。它类似于Regular-falsi方法,但在这里我们不需要在每次近似后一次又一次地检查f(x 1 )f(x 2 )<0 。在这种方法中,邻域根通过割线或弦近似到函数f(x) 。这种方法的另一个优点是我们不需要对给定的函数f(x)进行微分,就像我们在Newton-raphson方法中所做的那样

图 –割线法

现在,我们将推导出割线法的公式。通过两点的割线方程为:
Y - Y_{1} = m(X - X_{1})
这里,m=斜率

所以,申请(x 1 , f(x 1 ))(x 0 , f(x 0 ))

Y - f(x1) = [f(x0)-f(x1)/(x0-x1)] (x-x1)   Equation (1)

当我们找到函数f(x) 的根时,方程 (1) 中的 Y=f(x)=0 以及割线切割 x 轴的点是,

x= x1 - [(x0 - x1)/ (f(x0) - f(x1)]f(x1) .

我们使用上述结果对函数f(x) 的根进行逐次逼近。假设第一个近似值是x=x 2

x2= x1 - [(x0 - x1)/ (f(x0)-f(x1))]f(x1)

同样,第二个近似值是x =x 3

x3= x2 - [(x1-x2)/ (f(x1)-f(x2))]f(x2)

依此类推,直到k迭代,,

xk+1= xk - [(xk-1 - xk) / (f(xk-1) - f(xk))]f(xk)

注意:要开始求解函数f(x) 需要两个初始猜测,使得f(x 0 )<0f(x 1 )>0。通常不要求找到多项式 f(x) 的根, f(x) = 0。大多数情况下,问题只会要求您找到f(x)的根,直到两位小数或三位小数或四位等。

示例-1:
使用割线法在区间 [0, 2] 中计算方程 x 2 e –x/2 = 1 的根。根应精确到小数点后三位。

解决方案 –
x 0 = 1.42, x 1 = 1.43, f(x 0 ) = – 0.0086, f(x 1 ) = 0.00034。

应用,割线法,第一个近似是,
x 2 = x 1 – [( x 0 – x 1 ) / (f(x 0 ) – f(x 1 )]f(x 1 )
= 1.43 – [( 1.42 – 1.43) / (0.00034 – (– 0.0086))](0.00034)
= 1.4296
f(x 2 ) = – 0.000011 (–ve)

第二个近似是,
x 3 = x 2 – [( x 1 – x 2 ) / (f(x 1 ) – f(x 2 ))]f(x 2 )
= 1.4296 – [( 1.42 – 1.4296) / (0.00034 – (– 0.000011](– 0.000011)
= 1.4292
由于x 2x 3最多匹配三个小数位,因此所需的根是1.429

示例 2 :
方程 f(x) = x 3 – 5x + 1 = 0 的实根位于区间 (0, 1) 中。执行割线法的四次迭代。

解决方案 –
我们有, x 0 = 0, x 1 = 1, f(x 0 ) = 1, f(x 1 ) = – 3
x 2 = x 1 – [( x 0 – x 1 ) / (f(x 0 ) – f(x 1 ))]f(x 1 )
= 1 – [ (0 – 1) / ((1-(-3))](-3)
= 0.25。

f(x 2 ) = – 0.234375

第二个近似是,
x 3 = x 2 – [( x 1 – x 2 ) / (f(x 1 ) – f(x 2 ))]f(x 2 )
=(– 0.234375) – [(1 – 0.25)/(–3 – (– 0.234375))](– 0.234375)
= 0.186441
f(x 3 4 = x 3 – [( x 2 – x 3 ) / (f(x 2 ) – f(x 3 ))]f(x 3 )
= 0.186441 – [( 0.25 – 0.186441) / ( – 0.234375) – (0.074276) ]( – 0.234375)
= 0.201736。

f(x 4 ) = – 0.000470
第四个近似是,
x 5 = x 4 – [( x 3 – x 4 ) / (f(x 3 ) – f(x 4 ))]f(x 4 )
= 0.201736 – [( 0.186441 – 0.201736) / (0.074276 – (– 0.000470)](– 0.000470)
= 0.201640