2012-11-03 367 views
-3
def sqrt(a): 
    def tryit(x): 
     return 0.5 * (a/x + x) 
    return fixedPoint(tryit(x), 0.0001) 
+0

DEF SQRT(a)中: DEF tryit(X): 返回0.5 *(A/X + X) 返回定點(tryit(X),0.0001) –

+0

沒有代碼有一個itt中的小bug。我不能添加任何額外的行,而是我被允許改變它的螞蟻線..問題是在回報聲明..請指定.. –

+0

這是一個任務,你有,你現在要求我們爲你解決?或者這是你的代碼,它不按預期工作? –

回答

0

有幾個問題:

  • 你打電話fixedPoint() - 那是什麼?這是否定義在其他地方?
  • 您在函數中使用x而未定義它。
  • 您正在調用函數sqrt(),但邏輯不在任何可以計算任何東西的平方根的地方。

至少有一個inelegance:

  • 你定義一個嵌套函數(tryit())。這本身並不是一個問題,但它沒有多大意義,並且您依賴於在此定義的局部變量a而不是將該變量傳遞給在模塊級別上定義的獨立函數。不過,很難說這個功能應該做什麼。
  • tryit()不是一個好的函數名稱。
0

有關定點迭代的工作示例,請參閱Solve this equation with fixed point iteration

本問題中的代碼拼寫錯誤fixed_point,需要從scipy.optimize導入的函數。 fixed_point所需參數包括一個函數和一個初始值;例如:

scipy.optimize.fixed_point(tryit, a/2)