def f1(x): return 1+1/x**2 def f2(x): return 1/((x-1)**0.5) def diedai(x,fd,err): count=0 i = 0 while True: xk = fd(x) if complex(xk).imag != 0: break if (i) < abs(xk-x): count += 1 else: count = 0 if count > 10: break if abs(xk-x) < err: return xk i = abs(xk-x) x = xk return None if __name__ == "__main__": x0 = 1.5 result = diedai(x0, f1, 1e-5) if result is not None: print(f"(1)收敛 解为: {result:.5f}") else: print("(1)不收敛") result = diedai(x0, f2, 1e-5) if result is not None: print(f"(2)收敛 解为: {result:.5f}") else: print("(2)不收敛")