Root-mean-square-einer Funktion in python
Möchte ich berechnen quadratische Mittelwert einer Funktion in Python. Meine Funktion ist in eine einfache form wie y = f(x). x-und y-arrays sind.
Versuchte ich Numpy und Scipy Docs und konnte nichts finden.
Was ist die genaue Funktion, die Sie versuchen, zu berechnen? Root-mean-squared-Wert von y?
Es würde auch helfen, wenn man könnte hinzufügen, ein Beispiel-array und erwartete Lösung...
Es würde auch helfen, wenn man könnte hinzufügen, ein Beispiel-array und erwartete Lösung...
InformationsquelleAutor | 2016-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehe ich davon aus, dass Sie berechnen möchten den Ausdruck gegeben durch den folgenden pseudocode:
D. H. die Quadratwurzel aus dem Mittelwert der quadrierten Werte der Elemente der
y
.In numpy, können Sie einfach Platz
y
seine meine und dann seine square root wie folgt:So, zum Beispiel:
Tun, klären Sie Ihre Frage, wenn du meinst, etwas anderes Fragen.
Wenn Sie versuchen, berechnen Sie den Effektivwert eines sinussignals (d.h. f(x) ist eine Sinus-Funktion) oder so, müssen Sie führen Sie eine integration. Dies ist angenähert als Summe hier. Das limit kommt, weil Sie brauchen, um infinitesimal kleine Intervalle für Ihre Summe. In anderen Worten, Sie können eine bessere Schätzung des RMS-Wert, wenn Sie eine feinere Auflösung in
x
.Warnung: in numpy, wenn die Anzahl zu groß, im Vergleich Ihres Typ (dtype in python), der power-Funktion zurückgeben kann negative Werte. Um dies zu vermeiden, ist es manchmal sinnvoll, Stimmen die Werte. Beispiel: >>np.sqrt(np.mean(y.astype(np.dtype(np.int64)) ** 2 )). Nicht sehr schön in den code, aber es wird die Arbeit tun!
Sie wollen wahrscheinlich Typumwandlung in float aber nicht in einen größeren Ganzzahl. Da RMS ist im Allgemeinen eine nicht ganzzahlige jedenfalls sind Sie besser dran tun
y.astype(float)
.InformationsquelleAutor Praveen