Heim > Artikel > Backend-Entwicklung > Wie führen Sie in Python eine exponentielle und logarithmische Kurvenanpassung über die Polynomanpassung hinaus durch?
Zusätzlich zur Polynomanpassung, die in Python über die Funktion polyfit() verfügt, gibt es Techniken zur exponentiellen Anpassung und logarithmische Kurven.
Um eine Kurve an das Modell y = A B log x anzupassen, können wir die Daten transformieren, indem wir den Logarithmus beider Seiten nehmen, was zu log y = führt log A B log x. Durch Anpassen von log y an log x mithilfe von polyfit() erhalten wir die Koeffizienten log A und B.
<code class="python">import numpy as np x = np.array([1, 7, 20, 50, 79]) y = np.array([10, 19, 30, 35, 51]) coeffs = np.polyfit(np.log(x), y, 1) print("Coefficients:", coeffs) print("y ≈", coeffs[1], "+", coeffs[0], "log(x)")</code>
Um eine Kurve an das Modell anzupassen y = Ae^ (Bx) können wir den Logarithmus beider Seiten nehmen, was zu log y = log A B x führt. Die Parameter können dann durch Anpassen von log y gegen der Datenpunkte) kann zu einer Verzerrung hin zu kleinen Werten führen, insbesondere bei der exponentiellen Kurvenanpassung. Um dies zu mildern, können Gewichte proportional zu den y-Werten in den Anpassungsprozess einbezogen werden.
<code class="python">x = np.array([10, 19, 30, 35, 51]) y = np.array([1, 7, 20, 50, 79]) coeffs = np.polyfit(x, np.log(y), 1) print("Coefficients:", coeffs) print("y ≈", np.exp(coeffs[1]), "*", "exp(", coeffs[0], "x)")</code>Scipy für die Kurvenanpassung verwendenScipy stellt die Funktion „curve_fit()“ zur Durchführung einer nichtlinearen Kurvenanpassung bereit. Dadurch können wir jedes Modell direkt und ohne Transformationen anpassen.
Das obige ist der detaillierte Inhalt vonWie führen Sie in Python eine exponentielle und logarithmische Kurvenanpassung über die Polynomanpassung hinaus durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!