我试图在python上编写bisection方法,但在将其应用于不同的函数时遇到了困难。到目前为止,我有这个代码:
def Bolzano(fonction, a, b, tol=0.000001):
while abs(b-a)>tol:
m=(a+b)/2
if cmp(fonction(m))==cmp(fonction(a)):
a=m
else:
b=m
return a, b
这段代码不能正常工作,因为我不知道如何定义函数。简单地写作
Bolzano(3*x,0.5,1.0)
不起作用,因为没有定义x。因此,我无法检查其余代码是否有任何错误。在
当然,我可以先定义函数,然后再应用它,但我希望能够更改函数,同时始终保持相同的算法而不重写它。有什么帮助吗?在
您可以使用lambdas:
或定义传递给
^{pr2}$Bolzano
的函数:然后您可以继续添加函数:
相关问题 更多 >
编程相关推荐