[PYTHON] [Hinweis] Schreiben Sie die Notation der Exponentialfunktion ⇆ Dreiecksfunktion mit Sympy.rewrite () neu

Wie der Titel schon sagt, handelt es sich um einen Artikel als persönliches Memorandum. Es wäre sehr dankbar, wenn Sie auf offensichtliche Fehler hinweisen könnten.

Außerdem bin ich gerade dabei, den Job zu wechseln (Boss)

Über Sympy

SymPy 1.5 documentation

Sympy ist eine Bibliothek, mit der Sie Symbolberechnungen für Python durchführen und Ausdrücke mithilfe von Notizbüchern und Stiften aus Papier programmgesteuert transformieren können, um Lösungen für die Gleichungen zu finden. Ich achte darauf, weil es nützlich sein kann, wenn man den Prozess der Ableitung der in akademischen Büchern und technischen Büchern erläuterten Theorie verfolgt oder wenn es notwendig ist, die notwendigen mathematischen Formeln für die Bequemlichkeit vorzubereiten. Sympy.rewrite() sympy.core.basic.Basic.rewrite Diese Methode wird verwendet, um die angegebene Funktion in eine andere Funktionsform umzuwandeln. Exponentialfunktion ⇆ Die Transformation der Dreiecksfunktionsformel wird häufig im Berechnungsprozess der Wellenbewegung oder der komplexen Funktion durchgeführt, aber die Vereinfachung der Formel sympy.simplify () Es scheint bequem zu sein, in Kombination mit /simplify/simplify.html) usw. zu verwenden.

Beispiel

Betrachten Sie die Situation, in der die komplexe Funktion w der folgenden Gleichung in einen Realteil und einen Imaginärteil unterteilt ist. (U und α sind Konstanten) $ w = U e^{-i \alpha } \tag{1} $ Für Gleichung (1) $ u = Re[w],  v = -Im[w] $ Dann drücken wir Gleichung (1) wie folgt aus. $ w = u - iv \tag{2} $ Finden Sie u und v in dieser Gleichung (2).

Schreiben Sie für Gleichung (1) die Exponentialfunktion als Summe der realen und imaginären Terme unter Verwendung der Euler-Formel der folgenden Gleichung um. $ e^{i \theta } = \cos{\theta} + i\sin{\theta} \tag{3} $ Wende Gleichung (3) auf Gleichung (1) an. $ w = U (\cos{\alpha} - i\sin{\alpha}) \tag{4} $ Deshalb, $ u = Re\left[w\right]=U\cos{\alpha},$$v = -Im\left[w\right]=U\sin{\alpha} $

Schreiben Sie in Sympy

#Bibliotheken und Module importieren
import sympy as sp
from sympy import * 

#Konstante U.,Symbol für α definieren
U, alpha = symbols('U alpha')

#Funktion definieren w
w = Function("w")
w = U*exp(-I*alpha)

Anzeige

print(w)  #w wird als Zeichen angezeigt
w         #Anzeige w in mathematischer Form

Ergebnis スクリーンショット 2019-12-25 17.53.11.png Hier wird rewrite () verwendet, um mit der Dreiecksfunktion (sin, cos) erneut auszudrücken.

w.rewrite(exp, sin, cos)

Ergebnis スクリーンショット 2019-12-25 17.57.14.png Sie können auch expand () verwenden, um einen Ausdruck zu erweitern.

expand(w.rewrite(exp, sin, cos))

Ergebnis スクリーンショット 2019-12-25 17.59.54.png

Darüber hinaus gibt die Verwendung von re () den Real- und Imaginärteil der Formel an.

re(expand(w.rewrite(exp, sin, cos)))

Ergebnis スクリーンショット 2019-12-25 18.10.41.png

Zusammenfassung

Ich habe viele manuelle Berechnungsfehler, daher bin ich auf Sympy gestoßen, als ich mich fragte, ob ich Python durch dieses ersetzen könnte. (Es ist ungefähr 3 Tage her, seit ich mich zum Zeitpunkt des Schreibens getroffen habe ...) Es scheint, dass es zum Einchecken jedes Teils des Berechnungsprozesses und zur Selbstversorgung von Beispielen verwendet werden kann. Ich dachte also, wenn ich mich als Student getroffen hätte, hätte ich große Fortschritte gemacht. Lernnotizen sind keine sperrigen Papiernotizen. Wenn Sie sie jedoch mit Jupyter in .ipynb schreiben und auf Github verwalten, können Sie den Lernprozess aufzeichnen. Dies ist praktisch, da Sie ihn zum Erstellen von Artikeln auf diese Weise verwenden können. Es gibt auch eine Besonderheit der handschriftlichen Notizanwendung (eher zum Notieren mit Zahlen wie Vorlesungen), aber am Ende gab es ein Problem, dass sie mit Berechnungsfehlern verstopft war, so dass die Existenz einer Bibliothek wie Sympy hilfreich ist. Ich werde mich in Zukunft daran gewöhnen, mehr damit umzugehen.


Wie eingangs erwähnt, bin ich Ende 2019 dabei, den Job eines Ingenieurs zu wechseln. Wenn Sie denken "Was ist das für ein Typ?", Können Sie Lapras, Wantedly usw. über das verknüpfte Konto folgen. Ich würde mich freuen, wenn Sie verschiedene Informationen sehen könnten. Twitter_DM(@RiSE_blackbird)

Recommended Posts

[Hinweis] Schreiben Sie die Notation der Exponentialfunktion ⇆ Dreiecksfunktion mit Sympy.rewrite () neu
Hinweis zum Formatieren von Zahlen mit der Python-Formatierungsfunktion