Scipy optimieren Sie die Wurzel

Scipy optimieren Sie die Wurzel

Python ist eine objektorientierte, strukturierte und funktionale Computersprache. Die Anwendung ist nicht nur auf bestimmte Typen beschränkt, was es zu einer allgemeinen Sprache macht. Es ist eine gut vertraute Programmiersprache und bietet eine Vielzahl von Bibliotheken für das Schreiben der verschiedenen Softwareprogramme in dieser Sprache. Das Skript dieser Sprache ähnelt auch der englischen Sprache. Durch diese Tatsache hat Python die Anerkennung, eine anfängerfreundliche Programmiersprache für Anwendungen wie wissenschaftliches und technisches Computer, Integration, Signal- und Bildverarbeitung sowie die Interpolation der Python-Bibliothek zu sein, die „scipy“ ist, die sich mit allen befasst Solche spezifischen Funktionen.

Scipy hat ein Attribut der Funktion namens „Optimieren. Wurzel ()". Diese Funktion enthält die Optimierer. Die Optimierer repräsentieren die Menge dieser Funktionen oder die Verfahren, die den endgültigen Wert/Ausgang der Funktion oder das Stamm dieser Funktion auf den kleinstmöglichen Wert reduzieren.

Verfahren:

Das Verfahren dieses Artikels folgt einigen wichtigen Schritten. Zunächst werden wir etwas über das „Optimierende Optimierungen“ kennenlernen. root () ”Funktion. Dann erfahren wir, welche Module aus der Skipy mit dieser Funktion arbeiten müssen. Wir werden auch die Syntax von Optimierungen kennenlernen.root () Funktion im Python -Skript. Dann werden wir einige Beispiele machen, um dieses Thema in die Hand zu nehmen.

Syntax:

Im Folgenden finden Sie die Syntax und die Deklarationsmethode für die Aufruf des Optimiers.Stammfunktion im Python -Programm:

$ scipy.optimieren.root (fun, x0, args = (), method = 'hybr', jac = none, tol = none, callback = none, options = keine)

Die erste Parameterfunktion in der Liste der Eingabeargumentation dieser Funktion ist der „Spaß“. Dies ist die Gleichung oder die Funktion, auf die wir das „Optimieren“ anwenden möchten. root () “Funktion. Als nächstes kommt „X0“, der ein erster Gast ist, der für die Wurzeln berechnet wird. Das „Argument“ ist der zusätzliche Parameter, den wir zum Ziel der Funktion hinzufügen können. Und die „Methode“ ist ein wichtiger Parameter, der den Typ des Lösers der Optimiererfunktion definiert. "Jac" bedeutet Jacobianer. Wenn sein Wert für den Wert „TRUE“ angegeben ist, gibt die Funktion den Wert des Jakobiers mit der Widerspruchsfunktion zurück. In einem alternativen Fall wird der Jacobian numerisch berechnet und ist ein weiterer optionaler Parameter. Dann ist das „TOL“ die Toleranz für das Stoppen der Funktion und hängt vom Typ des Lösers ab. Auch hier ein optionaler Parameter.

Rückgabewert:

Die Funktion gibt das optimierte Ergebnistyp -Objekt in der Ausgabe zurück, das das Array enthält, das die Lösung darstellt. Die Erfolgsnachricht ist eine Boolesche Flag.

Beispiel 1:

Das „Optimieren.root () ”-Funktion optimiert die Funktion und reduziert oder erhöht den Wert gemäß den Anforderungen im Programm. Es findet auch die Wurzeln für eine Funktion, die sich in Form einer nichtlinearen Gleichung befinden kann.

Lassen Sie uns mit der vorherigen Syntax, die wir lernen müssen, ein sehr grundlegendes Beispiel für diese Optimierung machen.root () Funktion und finden die Wurzeln für eine nichtlineare Gleichung oder Funktion. Die Plattform, mit der wir den Python -Compiler verwenden werden, ist "Google Collaby". Dies ist ein Open-Source-Programm und bietet alle bereits installierten und heruntergeladenen Pakete. Zu Beginn des neuen Programms weisen Sie in der Zusammenarbeit ein neues Notizbuch in Google Drive auf.

Lassen Sie uns nach erfolgreichem Erstellen eines Notizbuchs die erforderlichen Python -Pakete in das Programm integrieren. Dafür werden wir die Scipy integrieren. Da das Attribut des Scipy -Optimizes das „Root“ -Modul hat, müssen wir die Wurzel aus der "Scipy" importieren.Optimieren". Da wir bereits diskutiert haben, dass die Optimierung.Root () nimmt den „Func“ in seiner Eingabargumentliste auf und der Func ist einfach eine Form der nichtlinearen Gleichung. Wir integrieren die „mathematische“ Bibliothek, um diese nichtlinearen Gleichungen mit dem Modul zu schreiben, das in der Funktion erforderlich ist Gleichung. Die Gleichung für die Funktion dieses Beispiels lautet wie folgt:

A + Sünde (a)

Die gegebene Gleichung hat die trigonometrische Funktion, die „Sünde“ ist. Wir integrieren die Mathematikbibliothek als „Sünde“. Mit diesem Import der erforderlichen Python -Pakete definieren wir nun die Gleichung in der Funktion. Für diese Aufgabe erstellen wir eine Funktion mit dem Namen "Func" und dem Rückgabetyp "Def". Wir übergeben die Variable „A“ an das Argument der Funktion. Anschließend machen wir die Funktion die Gleichung als "Rückgabe x + sin (x)" zurück.

Jetzt nennen wir diese Funktion, um diese Gleichung in der Methode „Root ()“ als Eingabeargument zu verwenden. Rufen Sie die Funktion „root ()“ auf und übergeben Sie den Namen der Funktion, für die wir die Gleichung als „Func“ definieren. Zeigen Sie nun die Ergebnisse mit der Print () -Methode an. Das Programm für diese Funktion mit seiner Ausgabe ist im folgenden Snippet angezeigt:

von Scipy.Import Root optimieren
aus der Mathematik -Import -Sünde
Def func (a):
Return a + sin (a)
value = root (func, 0)
Druck (Wert)

Die Funktion gab das Lösungsarray als Wurzel der Gleichung zurück. Die Lösung hat sich konvergiert.

Beispiel 2:

Mit der gleichen Methode, die wir im ersten Beispiel gelernt haben, können wir die Funktion „JAC“ mit der Gleichung hinzufügen und die „Optimize anwenden“ anwenden.root () ”Funktion darauf, um den Mindestwert für die Funktion zu erhalten. Importieren Sie die „Scipy.optimieren Sie "als" root "und" numpy "als" np ". Deklarieren Sie die Funktion „Func“ und geben die Gleichung darin zurück als „[a [0] + 0.4*(a [0] - a [1]) ** 2 - 1.0, 0.4*(a [1] - a [0]) ** 2 + a [1]] ”. Definieren Sie eine andere Funktion, "Jacobian", die der zusätzliche Parameter ist und die darin enthaltene Gleichung als „[[1 + 1) zurückgeben.4*(a [0] - a [1]) ** 2, -1.4*(a [0] - a [1]) ** 2], [-1.4*(a [1] - a [0]) ** 2, 1 + 1.4*(a [1] - a [0]) ** 2]] ”. Übergeben Sie den „Func“, die anfängliche Vermutung „x0“, den „Jacobian“ und den „Solver /Methode“ als „Hybr“ zur Funktion „root ()“ und führen Sie das Programm wie folgt aus:

Numph als NP importieren
von Scipy.Import Root optimieren
Def func (a):
Rückgabe [a [0] + 0.4*(a [0] - a [1]) ** 2 - 1.0,
0.4*(a [1] - a [0]) ** 2 + a [1]]
Def Jacobian (a):
Return NP.Array ([[1 + 1).4*(a [0] - a [1]) ** 2, -1.4*(a [0] - a [1]) ** 2], [-1.4*(a [1] - a [0]) ** 2, 1 + 1.4*(a [1] - a [0]) ** 2]])
value = root (func, [0, 0], jac = jacobian, method = 'hybr')
Druck (Wert)

Die Funktion gab die optimierten Wurzeln als Lösungsarray mit den beiden anderen Parametern zurück.

Abschluss

Die Arbeit und Implementierung der Optimierung der „Scipy -Optimierung.Root () ”Die Funktion wird in diesem Artikel gezeigt. Wir haben die Funktion root () an zwei separaten Beispielen und mit unterschiedlichen Funktionsparametern durchgeführt.