Verwenden Sie Fsolve in Python
Dieser Artikel wird untersuchen, wie wir fsolve
verwenden können, um eine Lösung in Python zu finden. Wir werden auch die Szenarien untersuchen, in denen es verwendet wird, und einige Beispielcodes, um besser zu verstehen, wie und wann es verwendet werden kann, um ein bestimmtes Ergebnis zu erzielen.
Beginnen wir damit, zu verstehen, was fsolve
ist und warum es verwendet wird.
die fsolve
-Funktion in Python
Gleichungen sind die Wurzeln der Datenwissenschaft und helfen Datenwissenschaftlern, Mathematikern, Chemieingenieuren und Ärzten, die verschiedenen Szenarien, mit denen sie täglich zu tun haben, zu verstehen. Jetzt, da Computer in unser tägliches Leben eingebunden sind, wird es schwieriger, Gleichungen auf der Grundlage eines größeren Maßstabs sequentiell zu lösen.
Pythons fsolve
erleichtert es diesen Fachleuten und anderen, diese Gleichungen mit verschiedenen Modulen zu lösen, die die Python-Bibliotheken anbieten. fsolve
ist im Wesentlichen ein SciPy-Modul, das die Wurzeln nichtlinearer Gleichungen zurückgibt.
Es gibt verschiedene Parameter, die fsolve
für verschiedene Szenarien anbietet. Diese können leicht direkt aus der online verfügbaren SciPy-Dokumentation gefunden werden.
So sieht die gesamte Parameterliste für fsolve
aus:
Beispielcode:
scipy.optimize.fsolve(
func,
x0,
args=(),
fprime=None,
full_output=0,
col_deriv=0,
xtol=1.49012e-08,
maxfev=0,
band=None,
epsfcn=None,
factor=100,
diag=None,
)
Eine ausführliche Erklärung aller Parameter und ihrer jeweiligen Bedeutung finden Sie in der SciPy-Dokumentation. Wir werden jedoch eine kurze, aber leicht verständliche Zusammenfassung dieser Parameter durchgehen:
Parameter | Beschreibung |
---|---|
func , aufrufbar f(x, *args) |
Dies ist im Wesentlichen die Beschreibung einer Funktion, die ein oder mehrere, möglicherweise vektorielle Argumente akzeptiert und einen Wert mit der gleichen Länge wie das Argument zurückgibt. |
x0 , ndarray |
Dieses Argument gibt an, was die Anfangsschätzung für die Wurzeln der Funktion f(x)=0 ist. |
args , Tupel (optional) |
Dies sind alle zusätzlichen Argumente, die für die Funktion erforderlich sein können. |
fprime , aufrufbares f(x, *args) (optional) |
Dies ist eine Funktion zum Berechnen des geschätzten Werts der Jacobi-Funktion der Funktion mit den Ableitungen über die Zeilen. |
full_output , bool (optional) |
Dies gibt alle optionalen Ausgabewerte zurück, wenn eine Bedingung erfüllt oder wahr ist. |
col_deriv , bool (optional) |
Über dieses Argument geben Sie an, ob die Jacobi-Funktion die Ableitungen nach unten durch die Spalten berechnet oder nicht. Laut der SciPy-Dokumentation ist dies schneller, da keine Transpose-Operation vorhanden ist. |
xtol , Float (optional) |
Dieses Argument ermöglicht es der Funktion, eine Berechnung basierend auf dem größten xtol des relativen Fehlers zwischen zwei aufeinanderfolgenden iterierten Werten zu beenden. |
maxfev , int (optional) |
Dies definiert die maximale Anzahl von Aufrufen der Funktion. |
band , Tupel (optional) |
Dies gilt, wenn fprime auf None eingestellt ist. Die Jacobi-Matrix wird als gebändert angesehen, wenn das Argument auf eine Zweierfolge gesetzt ist, die die Anzahl der Unter- und Superdiagonalen innerhalb der Matrix enthält. |
epsfcn , Float (optional) |
Wenn fprime auf None gesetzt ist, enthält dieses Argument die passende Schrittlänge für die Approximation der Vorwärtsdifferenz der Jacobi-Zahl. Die relativen Fehler in den Funktionen werden in der Größenordnung der Maschinenpräzision angenommen, wenn epsfcn kleiner als die Maschinenpräzision ist. |
Faktor , Float (optional) |
Dieses Argument bestimmt die anfängliche Schrittgrenze und muss zwischen (0,1 und 100) liegen. |
diag , Sequenz (optional) |
Diese N-positiven Einträge dienen als Skalierungsfaktor für die Variablen. |
Verwenden Sie die Funktion fsolve
, um Lösungen in Python zu finden
Wie Sie wahrscheinlich bereits erkennen können, kann fsolve
für verschiedene nichtlineare Gleichungen in verschiedenen Szenarien verwendet werden. Sehen wir uns einige einfache Codebeispiele an, um besser zu verstehen, wie fsolve
verwendet werden kann:
Finden Sie die Wurzeln der Gleichung x+2cos(x)
mit einem Startpunkt von -0,2
Beispielcode:
from math import cos
import scipy.optimize
def func(x):
y = x + 2 * cos(x)
return y
y = scipy.optimize.fsolve(func, 0.2)
print(y)
In diesem Code importieren wir die cos
-Funktion aus der riesigen math
-Bibliothek in Python und optimize
aus scipy
(Quelle von fsolve
). Als nächstes definieren wir unsere Gleichung und speichern sie in y
in der func
-Methode.
Nachdem unsere Gleichung korrekt initialisiert ist, rufen wir mit fsolve
lediglich die Methode (func)
auf, die die Gleichung enthält. Im zweiten Argument definieren wir den Startpunkt für die Gleichung.
Das Ergebnis wird dann in einer Variablen y
gespeichert und zur Ausgabe ausgegeben.
Die Ausgabe des Codes:
[-1.02986653]
Lösen Sie eine Gleichung mit den Startpunkten 0 und 2
Beispielcode:
from math import cos
import scipy.optimize
def func(x):
y = [x[1] * x[0] - x[1] - 6, x[0] * cos(x[1]) - 3]
return y
x0 = scipy.optimize.fsolve(func, [0, 2])
print(x0)
In diesem Code folgen wir denselben Schritten wie in Code 1, indem wir cos
und scipy.optimize
aus Pythons math
- und scipy
-Bibliotheken importieren. Wir fahren mit dem nächsten Schritt fort, indem wir eine Gleichung in einer Methode namens func
definieren.
Wir nennen diese Methode dann ein Argument in der Funktion fsolve
und versehen sie mit den beiden Startpunkten 0 und 2, die dann in einer Variablen namens x0
gespeichert und ausgegeben werden.
Die Ausgabe des Codes:
[6.49943036 1.09102209]
Finden Sie die Wurzeln der Gleichung 4sin(y)-4
mit dem Startpunkt 0.3
Beispielcode:
from math import sin
import scipy.optimize
def func(y):
x = 4 * sin(y) - 4
return x
x = scipy.optimize.fsolve(func, 0.3)
print(x)
In diesem Beispielcode importieren wir statt cos
sin
aus der math
-Bibliothek. Die Struktur des Codes bleibt die gleiche wie in den obigen Beispielen, wo wir auch scipy.optimize
für fsolve
importieren und dann eine Gleichung innerhalb einer Methode func
definieren.
Wir nennen diese Methode ein Argument in fsolve
mit einem Startpunkt von 0.3. Der resultierende Wert wird in der Variablen x
gespeichert und zur Ausgabe gedruckt.
Die Ausgabe des Codes:
[1.57079633]
In diesem Artikel haben wir gelernt, dass fsolve
verwendet wird, um die Wurzeln nichtlinearer Gleichungen zu finden, über die verschiedenen Arten von Parametern, die fsolve
annehmen kann und was jeder davon mit sich bringt. Darüber hinaus sind wir einige Arbeitsbeispiele von fsolve
durchgegangen und haben untersucht, wie es in Ihrem Code verwendet werden kann.
Nachdem Sie nun die Theorie und die praktischen Codebeispiele zur Verwendung von fsolve
zum Ableiten einer Lösung durchgegangen sind, ist es an der Zeit, eigenen Code zu erstellen, um die Funktionsweise von fsolve
weiter zu erkunden.
Wir hoffen, dass Sie diesen Artikel hilfreich finden, um zu verstehen, wie Sie fsolve
verwenden, um Probleme in Python zu lösen.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn