Mit scipy zu führen diskrete integration der Probe
Ich versuche, den port von labview, python.
In labview gibt es eine Funktion "Integral x(t) VI" , nimmt eine Reihe von Beispielen als Eingabe, führt eine diskrete integration der Proben und liefert eine Liste von Werten (die Flächen unter der Kurve) nach Simpsons-Regel.
Habe ich versucht zu finden, die eine gleichwertige Funktion in scipy, z.B. scipy.integrieren.simps, aber diese Funktionen geben die fasste fester über die Menge der Proben, wie ein Schwimmer.
Wie bekomme ich die Liste der integrierten Werte im Gegensatz zu der Summe der integrierten Werte?
Bin ich gerade auf der Suche auf das problem der falsch herum?
InformationsquelleAutor user1425750 | 2012-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass Sie möglicherweise verwenden scipy.integrieren.simps etwas falsch. Der Bereich zurückgegeben
scipy.integrate.simps
ist die Gesamtfläche untery
(der erste parameter) übergeben. Der zweite parameter ist optional, und sind Beispiel-Werte für die x-Achse (die tatsächlichen x-Werte für die einzelnen y-Werte). ie:Ich denke, Sie wollen die Rückkehr der Bereiche, die unter den gleichen Kurve zwischen den verschiedenen Grenzen? Zu tun, dass Sie passieren den Teil der Kurve, die Sie wollen, so wie diese:
Wenn Sie eine Reihe von start-und end-Punkte, die Sie könnten es so machen:
[scipy.integrate.simps(y[s:e]) for s,e in [(s1,e1),(s2,e2),...etc.]]
. Es ist wahrscheinlich schneller, über numpy arrays, und für einige Funktionen, die Sie sind notwendig, insbesondere bei Verwendung von speziellen Achsen-Funktionen etc. Aber in diesem Beispiel, es funktioniert auf regelmäßige Listen 🙂Danke! Ich bin nicht so auf dem Meer, die ich nicht verwenden können, ein loop, aber danke für den Tipp. Und das numpy-arrays Sache ist, wie ich dachte.
InformationsquelleAutor fraxel
Gibt es nur eine Methode in SciPy, die nicht kumulativen integration, die
scipy.integrate.cumtrapz()
die tut, was Sie wollen, solange Sie nicht speziell brauchen, um verwenden Sie die Simpson-Regel oder eine andere Methode. Dafür können Sie wie vorgeschlagen immer schreiben die Schleife auf Ihrem eigenen.InformationsquelleAutor kjyv