1.基本概念
弦截法基本实现与牛顿迭代法相同,但是将牛顿迭代法中的导数,用差商来代替,即
与牛顿迭代法相比,弦截法更容易实现,但可能会出现收敛慢、振荡或发散的情况。通常可以通过调整初始点的选择、迭代控制和收敛准则等方式来提高算法的可靠性和收敛速度。
2.代码实现
求以下方程在0.5附近的根
"""
@Time : 2023/10/31 0012 13:18
@Auth : yeqc
"""
import math
x0, x1 = 0.5, 0.6
N = 1000
for i in range(0, N):
x2 = x1 - ((x1 - math.e ** (-x1)) * (x1 - x0)) / ((x1 - x0) - (math.e ** (-x1) - math.e ** (-x0)))
print("结果:", x2)
x0 = x1
x1 = x2
if x2 * (math.e ** x2) - 1 < 10 ** (-8):
break