ニュートン法を使用して、kの平方根の最小値を返そうとしています。
k=float(input("Number? "))
x = k/2
def newton(x):
while abs(x**(1/2)- k) >= 10**(-10):
if k >= 0:
x = (x+k/x)/(2)
return x
elif k < 0:
raise ValueError ("Cannot take the square root of a negative number")
print ("The approximate square root of", k, "is", newton(k))
print ("The error is", abs(x**(1/2)- k))
ただし、上記のコードは最初の反復のみを返します。たとえば、kが2の場合、ニュートン法による正確な平方根は1.41422である必要があります。これは、3回目の反復です。ただし、コードは現在、最初の反復である1.5を返しています。1.5ではなく1.41422のより正確な平方根を返すにはどうすればよいですか?同様に、エラーはこの変更を反映する必要があります。