这个函数中的bug在哪里?

时间:2012-11-03 06:38:15

标签: python python-3.x python-2.7

def sqrt(a):
    def tryit(x):
        return 0.5 * (a/x + x)
    return fixedPoint(tryit(x), 0.0001)

2 个答案:

答案 0 :(得分:0)

有几个问题:

  • 您正在致电fixedPoint() - 这是什么?这是在其他地方定义的吗?
  • 您在功能中使用x而未定义它。
  • 你正在调用函数sqrt(),但逻辑并不是能够计算任何东西平方根的东西。

至少有一个不优雅:

  • 您正在定义嵌套函数(tryit())。这本身并不是问题,但它没有多大意义,并且您依赖于此处定义的局部变量a,而不是将该变量传递给模块级别上定义的独立函数。但是很难说这个函数应该做什么。
  • tryit()不是一个好的功能名称。

答案 1 :(得分:0)

有关定点迭代的工作示例,请参阅Solve this equation with fixed point iteration

本问题中的代码拼错了fixed_point,这是一个需要从scipy.optimize导入的函数。 fixed_point所需的参数包括函数和初始值;例如:

scipy.optimize.fixed_point(tryit, a/2)
相关问题