-牛顿迭代法也是基于梯度的方法,可用来求解方程的根,常用于优化算法当中
-原理是利用当前点的切线与x轴交点的横坐标值作为下一次迭代点
-其核心就是构建切线方程,寻找到下一个迭代点和当前迭代点之间的迭代公式
1. 题目描述
2. 数据格式
精度控制:
3. 构建迭代公式
已知:
故在当前点x0处的斜率为:
在x0处的切线方程为:
切线方程在x0处与x轴的交点横坐标,令f(x)=0:
4. 完整代码
def main():
# 因为要寻找x=1.5附近的根,所有令初始点x0=2
x0 = 2
while(True):
xi = x0+(6-2*x0*x0*x0-4*x0*x0+7*x0)/(6*x0*x0+8*x0-7)
if(abs(xi-x0)<1e-6):
print("%0.6f" %xi) # 控制输出精度,保留小数点后六位小数
break
x0 = xi
if __name__ == '__main__':
main()