ニュートンラフソン反復のスクリプトで'float' object is not Iterable
エラーが発生しました。私は反復を関数f(x) = sin(x)
に適用し、x = 3とします。私は{最大で停止状態、上のエラーを取得しています| X のn-2 - X のn-1 |、| X のn-1 - X N | } <(1/2)10 -9。'float'オブジェクトはニュートンラフソン反復で反復できません
def NewtonRaphson2():
L = []
L.append(3)
n = 0
while(1):
tmp = L[n] - (math.sin(L[n])/math.cos(L[n]))
L.append(tmp)
n+=1
m = (max(abs(L[n-2] - L[n-1])), abs(L[n-1] - L[n]))
if m < (.5e-9):
print(n, "\n")
x = max(abs(L[n-2] - L[n-1]), abs(L[n-1] - L[n]))
print(x, "\n")
print(L[n], "\n")
break
break
と正確なエラーメッセージが
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
NewtonRaphson2()
File "C:/Python34/nmhw3.py", line 28, in NewtonRaphson2
m = (max(abs(L[n-2] - L[n-1])), abs(L[n-1] - L[n]))
TypeError: 'float' object is not iterable
のいずれかmax()
かabs()
機能だけ反復可能オブジェクトを取るん:ここに私のコードはありますか?私はこの行動に混乱しています。
今のところ愚かな気分です。それを見つけていただきありがとうございます。関連記事の他の返信は、ある機能がiterableでうまくいくかどうかを言っていたので、私の前提はどこから来たのですか? –
heheを助けてくれてうれしいです。これらのタイプのミスを正確にプログラミングして作成することは、これらのタイプミスを鋭く見ています。 回答が好きだった場合は、「受け入れ済み」としてマークすることができます。 – Lagerbaer