擅长:python、mysql、java
<p>尝试在运行中生成Nthroot函数,其中已经包含所需的值。然后,这些值将在newraph中“f”的每个值中重用。你知道吗</p>
<p>此方法允许您继续使用newraph的任意函数(即使是不需要用户输入或完全不同的输入的函数)。你知道吗</p>
<pre><code>def derivative(f, x, h):
return (f(x+h) - f(x-h)) / (2.0*h)
def generateNthrootFunc():
root = int(raw_input("Please Enter a nth root (n) : "))
number = int(raw_input("Please Enter a number (x): "))
def nthroot(x):
return x**(root) - (number)
return nthroot
def newraph(f, x0, h):
Xold = x0
Xnew = Xold + 10* h
while (abs(Xold - Xnew) > h):
Xold = Xnew
Xnew = Xold - f(Xnew) / derivative(f, Xold, h) #NewtonRaphson formula
return Xnew
root = newraph(generateNthrootFunc(), 1, 0.000001) # call the solver
print "The root is", root
</code></pre>