def fd1(x): return 1+1/x**2 def fd2(x): return 1/(x-1)**0.5 # 迭代法求解方程 def Renew(x,fd,err): count=0 i = 0 try: while True: xk = fd(x) print(f"当前迭代值: {xk}, 上一次迭代值: {x}, 误差: {abs(xk-x)}") if abs(i) < (xk-x): count += 1 else: count = 0 if count > 10: print("不收敛") break if abs(xk-x) < err: return xk i = xk-x x = xk except Exception as e: print(f"发生错误: {e}") return None return None # 定义迭代公式 x = fd(x) ############################### def fd(x): return 1+1/x**2 if __name__ == "__main__": ############################################################################################################## x0 = 1.5 # 初始值 err = 1e-5 # 精度要求 P136 result = Renew(x0, fd, err) if result is not None: print(f"收敛 解为: {result:.5f}") else: print("不收敛")