[PYTHON] Beweisen wir den Additionssatz einer Dreiecksfunktion, indem wir die Funktion durch eine Funktion in SymPy ersetzen (≠ Substitution).

U-Boote und ersetzen

SymPys "subs" und "replace" sind ähnliche Nichtfunktionen des Ersetzens und Ersetzens.

from sympy import symbols, sin, cos, exp, I, sqrt, expand, init_printing
init_printing()
x = symbols('x')
f =  sin(x)+sin(x**2)

Das folgende Beispiel ersetzt "sin (x)" durch "cos (x)".

f.subs(sin(x), cos(x))
\sin{\left (x^{2} \right )} + \cos{\left (x \right )}

Offensichtlich wird in diesem Fall "sin (x ** 2)" nicht durch "cos (x ** 2)" ersetzt. Ich weiß nicht, ob dies die beabsichtigte Spezifikation ist, aber ".subs (sin, cos)" kann "sin" durch "cos" ersetzen.

f.subs(sin, cos)
\cos{\left (x \right )} + \cos{\left (x^{2} \right )}

".Subs (sin, sqrt)" kann "sin" jedoch nicht durch "sqrt" ersetzen.

f.subs(sin, sqrt)
\sin{\left (x \right )} + \sin{\left (x^{2} \right )}

Ich bin mir nicht sicher, aber ich habe das Gefühl, dass sympy.core.function.FunctionClass durch einander ersetzt werden kann.

for func in [sin, cos, sqrt]:
    print(func.__class__)
<class 'sympy.core.function.FunctionClass'>
<class 'sympy.core.function.FunctionClass'>
<class 'function'>

Ursprünglich denke ich, dass "Ersetzen" die ursprüngliche Verwendung ist, um eine Funktion durch eine Funktion zu ersetzen.

f.replace(sin, cos)
\cos{\left (x \right )} + \cos{\left (x^{2} \right )}
f.replace(sin, sqrt)
\sqrt{x} + \sqrt{x^{2}}

Sie können Ihre eigene Funktion oder Ihren eigenen Lambda-Ausdruck als Argument für "Ersetzen" verwenden.

f.replace(sin, lambda t: cos(t**2)) # sin(□)Cos(□**2)Ersetzen mit
\cos{\left (x^{2} \right )} + \cos{\left (x^{4} \right )}

Aus der Euler-Formel

Eulers Beamter $ e^{\theta i} = \cos\theta + i\sin\theta\tag{1} $ Wenn $ \ theta $ durch $ - \ theta $ ersetzt wird, dann ist von $ \ cos (- \ theta) = \ cos (\ theta) \ \ sin (- \ theta) = - \ sin \ theta $ $ e^{-\theta i} = \cos\theta - i\sin\theta\tag{2} $ ist. Daher ab $ (1) + (2) $ $ e^{\theta i} + e^{-\theta i} = 2\cos\theta\ \Longleftrightarrow\ \cos\theta = \frac{e^{\theta i} + e^{-\theta i}}{2} $ Von $ (1) - (2) $ $ e^{\theta i} - e^{-\theta i} = 2i\sin\theta\ \Longleftrightarrow\ \sin\theta = \frac{e^{\theta i} - e^{-\theta i}}{2i} $ Hält. Das heißt, $ \ cos $ und $ \ sin $ können bekanntlich durch Exponentialfunktionen dargestellt werden.

cos2exp = lambda t: (exp(t*I) + exp(-t*I))/2
sin2exp = lambda t: (exp(t*I) - exp(-t*I))/(2*I)
(sin(x)+cos(x)).replace(cos, cos2exp).replace(sin, sin2exp)
- \frac{i}{2} \left(e^{i x} - e^{- i x}\right) + \frac{e^{i x}}{2} + \frac{1}{2} e^{- i x}

Auf diese Weise können verschiedene Formeln von Dreiecksfunktionen bewiesen (bestätigt) werden.

alpha, beta = symbols(r'\alpha \beta')
A = sin(alpha+beta)
B = sin(alpha)*cos(beta) + cos(alpha)*sin(beta)
expand(A.replace(sin, sin2exp).replace(cos, cos2exp))
- \frac{i}{2} e^{i \alpha} e^{i \beta} + \frac{i}{2} e^{- i \alpha} e^{- i \beta}
expand(B.replace(sin, sin2exp).replace(cos, cos2exp))
- \frac{i}{2} e^{i \alpha} e^{i \beta} + \frac{i}{2} e^{- i \alpha} e^{- i \beta}

Nun, A = B, das heißt, $ \sin(\alpha+\beta) = \sin\alpha\cos\beta + \cos\alpha\sin\beta $ Wurde bestätigt.

Recommended Posts

Beweisen wir den Additionssatz einer Dreiecksfunktion, indem wir die Funktion durch eine Funktion in SymPy ersetzen (≠ Substitution).
Holen Sie sich den Aufrufer einer Funktion in Python
[AWS] Lassen Sie uns einen Komponententest der Lambda-Funktion in der lokalen Umgebung durchführen
Machen wir einen Sprung in die Fertigungsindustrie, indem wir zusätzlich zu Python das Web nutzen
Der Wert von meta beim Angeben einer Funktion ohne Rückgabewert mit Dask dataframe gilt
Lassen Sie uns die Bibliothek vorstellen, die derzeit von Ingenieuren mit ca. 3 Jahren Erfahrung in Django verwendet wird
Fassen wir die Grundfunktionen von TensorFlow zusammen, indem wir ein neuronales Netzwerk erstellen, das XOR-Gatter lernt.
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
Finden Sie den optimalen Wert der Funktion mit einem genetischen Algorithmus (Teil 2)
[Statistik] Erfassen Sie das Bild der zentralen Polbegrenzungstheorie mit einem Diagramm
Wenn Sie eine Liste mit dem Standardargument der Funktion angeben ...
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV 3 Hinzufügen einer Maskenfunktion
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Ein Memo, das durch Umbenennen der Dateinamen im Ordner mit Python organisiert wird
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
Berechnen Sie die Wahrscheinlichkeit, eine Tintenfischmünze zu sein, mit dem Bayes-Theorem [Python]
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Ermitteln Sie den Mindestwert der Funktion mithilfe der Partikelgruppenoptimierungsmethode (PSO).
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht
Versuchen Sie, die β-Funktion von Godel mit SymPy zu berechnen
Fühlen Sie sich frei, einen Test mit der Nase zu schreiben (im Fall von + gevent)
So geben Sie mit Jupyter Notebook einen Wert in der Mitte einer Zelle aus
Annäherung nach der Methode der kleinsten Quadrate eines Kreises mit zwei festen Punkten
Zeichnen wir die Spannung des Digitalmultimeters 34461A des Messgeräts Keysight mit Circuit Python
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis