x=float(raw_input('Enter a number to show its square root'))
precise = 0.01
g=x/2.0
while abs(g**2-x)>=precise:
g=g-(g**2-x)/2*g
print g
这是一个基于python代码的Newton-Raphson寻根方法。当我在树冠中运行这个,我可以找到1的根。但是当我输入25来查找根时,它说OverflowError: (34, 'Result too large')
指向while abs(g**2-x)>=precise:
行。感谢帮助
你确定你的算法吗。将您的}变得非常大,非常快。那你就是想摆平它。你的分母应该是
print g
移到while循环中,您将看到{2*g
?如果是这样的话,你应该在它周围加上括号,就像(2*g)
,因为你要除以2
,然后再乘以g
。可能不是你想做的。在当使用Newton-Raphson方法求根时,我总是发现使用标准代码来执行此算法并在必要时指定它是有用的。也许你会发现这个也很有用。在
相关问题 更多 >
编程相关推荐