超初心者ですのでお手柔らかにお願いします。
私はいくつかの Python 演習をいじくり回しており、次のようなコードがあります。
def newton(x0, Tol):
def F(x):
return (x**3)+898
def dF(x):
return 3*x**2
x=[x0]
for n in range(400):
x.append(x[n]-(F(x[n]))/dF(x[n]))
if abs((x[n+1])-(x[n]))<Tol:
conv='Converge'
print n
break
if abs((x[n+1])-(x[n]))>=Tol:
conv='No converge'
return x[n+1], conv
F(x)
関数とその導関数を定義dF(x)
し、リストに値を追加しますx
。
タスクは、シリーズが収束するかどうかを確認することであり、成功したと思います。
しかし、私が持っている質問は、関数を持つことと、関数(x**3)+898
へ3*x**2
の引数としてのものNewton
です。
想像したらこんな感じだった
def newton(f, df, x0, Tol):
def F(x):
return f
def dF(x):
return df
*calculations*
return x[n+1], conv
そして、あなたはそれを
newton((x**3)+898, 3*x**2, x0=something, Tol=something)
関数F(x)
とdF(x)
がプロセスで定義されるようにします。
ただし、x
定義されていないため、機能しません。
演習では、「newton」のパラメーターとして f と df が必要であることに注意してください。
これを解決するにはどうすればよいでしょうか?
ありがとう。