我是一个初学者,所以请温柔一点。
我正在修改一些 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
没有定义,所以它不起作用。
请注意,在练习中需要将 f 和 df 作为 'newton' 的参数。
你将如何解决这个问题?
谢谢。