Ich versuche fsolve zu verwenden, wie hier zitiert: http://glowingpython.blogspot.gr/2011/05/hot-to-find-intersection-of-two.html,Python Kurven Kreuzung mit fsolve() und Funktionsargumenten mit numpy
auf, um die Kreuzung zwischen zwei Kurven zu finden. Beide Kurven sind im Grunde zwei Float-Arrays.
Die erste von ihnen ist ein eindimensional Array Pmech (Pmech(x))
und das zweite ist ein zwei dimensionales Array Pair (Pair(x,y))
der X - Achse für beide Anordnungen gemeinsam ist, so, was ich will für jeden y zu tun ist, wo zu sehen, Pairing und PMech schneiden sich.
Ich bin mir bewusst, dass fsolve()
als Argumente Funktionen übernehmen, nicht Arrays so schrieb ich zwei grundlegende Funktionen diese Funktion zu implementieren:
def Pmix(x):
return Pmech[x]
def Paera(x,y):
return Pair[x,y]
So wie ich die findIntersection
Funktion implementiert in dem obigen Link demonstriert:
def findIntersection(fun1,fun2,x0):
return fsolve(lambda x: (fun1(x) - fun2(x,y) for y in range(1,100)),x0)
aber ich bekomme die folgende Fehlermeldung:
TypeError: float() argument must be a string or a number
Traceback (most recent call last):
File "batteries.py", line 261, in <module>
findIntersection(Pmix,Paera,0)
File "batteries.py", line 238, in findIntersection
fsolve(lambda x: (fun1(x) - fun2(x,y) for y in range(1,100)),x0)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py", line 125, in fsolve
maxfev, ml, mu, epsfcn, factor, diag)
minpack.error: Result from function call is not a proper array of floats.