同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import mathdef fx(x: float, a: float) -> float:return math.pow(x, 2) - adef fx_derivative(x: float) -> float:return 2 * xdef get_initial_point(a: float) -> float:start = 2.0while start <= a:start = math.pow(start, 2)return startdef square_root_iterative(a: float, max_iter: int = 9999, tolerance: float = 0.00000000000001) -> float:"""Square root is aproximated using Newtons method.https://en.wikipedia.org/wiki/Newton%27s_method>>> all(abs(square_root_iterative(i)-math.sqrt(i)) <= .00000000000001... for i in range(500))True>>> square_root_iterative(-1)Traceback (most recent call last):...ValueError: math domain error>>> square_root_iterative(4)2.0>>> square_root_iterative(3.2)1.788854381999832>>> square_root_iterative(140)11.832159566199232"""if a < 0:raise ValueError("math domain error")value = get_initial_point(a)for i in range(max_iter):prev_value = valuevalue = value - fx(value, a) / fx_derivative(value)if abs(prev_value - value) < tolerance:return valuereturn valueif __name__ == "__main__":from doctest import testmodtestmod()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。