Ich habe eine allgemeine Bisektionsmethode geschrieben, um Wurzeln der bereitgestellten Funktion zu finden, ich möchte sie aufrufen, um eine quadratische Funktion zu lösen. hier ist mein generalroot.pyAufrufen einer Bisektionsmethode Root Finiding-Funktion und Calingit, um jede Funktion in Python zu lösen
# generalroot.py
# determines the root of any general function
def root_bisection(f, a, b, tolerance=1.0e-6):
dx = abs(b-a)
while dx > tolerance:
x = (a+b)/2.0
if (f(a)*f(x)) < 0:
b = x
else:
a = x
dx = abs(b-a)
return
Jetzt
from math import *
from generalroot import *
def function(y):
y = y**2 + 5*x - 9
return y
func = root_bisection(y, 0, 1)
print 'Found f(x) =0 at x = %0.8f +/- %0.8f' % (func , tolerance)
und ich erhalte die folgenden Fehler eine quadratische Funktion zu lösen ich es nenne:
raceback (most recent call last):
File "quadfrombisectionroot.py", line 8, in <module>
func = root_bisection (y , 0, 1)
NameError: name 'y' is not defined
Bitte helfen Sie mir beheben die Fehler, Danke
Sie rufen 'root_bisection' mit Argument' y' auf, obwohl 'y' nicht definiert ist. Genau was die Fehlermeldung Ihnen sagt ... –