[PYTHON] Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Einführung

Ich möchte eine Funktion, die als Evolventenfunktion bezeichnet wird, als Thema verwenden, um eine inverse Funktion auf verschiedene Arten numerisch zu erstellen. Python verfügt über viele Bibliotheken, die für technische Berechnungen verwendet werden können. Daher möchte ich diese Bibliotheken verwenden, um die Grenzen der einzelnen Methoden zu ermitteln. Es gibt fünf Möglichkeiten, es zu versuchen.

Bestätigung des Problems

Was ist eine Evolventenfunktion?

Die Evolventenfunktion ist eine Funktion, mit der die Form der Zähne eines Zahnrads bestimmt wird, und ihre Definition selbst ist sehr einfach. f(\alpha) = tan\ \alpha - \alpha Bei der Berechnung des Zahnrads muss die Umkehrfunktion dieser Funktion berechnet werden.

Was ist eine Umkehrfunktion?

Dies bedeutet, dass Sie, wenn $ inv \ alpha = f (\ alpha) $ bekannt ist, $ \ alpha $ aus $ inv \ alpha $ suchen müssen. Sie können es leicht als $ \ alpha = f ^ {-1} (inv \ alpha) $ mit mathematischen Symbolen ausdrücken, aber die eigentliche Berechnung ist nicht so einfach. (Hinweis: $ inv \ alpha $ bedeutet $ involute (\ alpha) $. Inv ist keine Abkürzung für invers.)

Versuchen Sie, die Evolventenfunktion zu zeichnen

Die Arbeiten werden mit dem Jupyter Notebook durchgeführt. Importieren Sie zunächst die erforderlichen Bibliotheken. Importieren Sie NumPy, um Vektordaten zu verarbeiten, und Bokeh, um zu zeichnen.

Notebook


import numpy as np
from bokeh.plotting import output_notebook, figure, show
output_notebook()

Definieren Sie eine Evolventenfunktion.

Notebook


def involute_ufunc(α):
    return np.tan(α) - α

Hier wird NumPy verwendet, um die Plotarbeit zu vereinfachen. NumPy verfügt über eine Funktion namens Broadcast, mit der Sie Funktionen auf alle Elemente eines Arrays (numpy.ndarray) gleichzeitig anwenden können. Da die Funktion math.tan Broadcast nicht unterstützt, verwenden wir die Funktion numpy.tan, die Broadcast unterstützt. Die involute_ufunc-Funktion verwendet ein Array mit dem Argument $ \ alpha $ und wendet die involute-Funktion auf alle Elemente des Arrays an, um das Array zurückzugeben.

Notebook


x = np.linspace(- np.pi / 4, np.pi / 4, 1000)
fig = figure(width=400, height=400)
fig.line(np.degrees(x) , involute_ufunc(x))
fig.xaxis.axis_label = 'Druckwinkel α(deg)'
fig.yaxis.axis_label = 'invα'
show(fig)
インボリュート関数.png

Die inverse inverse Funktion ist die mit vertauschten vertikalen und horizontalen Achsen. インボリュート逆関数.png

Quellcode

Das für die Erklärung verwendete Notizbuch wird auf Gist hochgeladen. Plot of Involute Function.ipynb

Link zum Artikel

Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Teil 1 Polynomregression - Qiita

Recommended Posts

Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Einführung
Verschiedene Methoden zum numerischen Erstellen der Umkehrfunktion einer bestimmten Funktion Teil 1 Polynomregression
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
Erstellen Sie eine Funktion zur Visualisierung / Auswertung des Clustering-Ergebnisses
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
[Los] Erstellen Sie einen CLI-Befehl, um die Erweiterung des Bildes zu ändern
[Python3] Definition eines Dekorators, der die Ausführungszeit einer Funktion misst
[Python] Eine einfache Funktion zum Ermitteln der Mittelkoordinaten eines Kreises
Verschiedene Möglichkeiten, ein Wörterbuch zu erstellen (Erinnerungen)
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
4 Methoden zum Zählen der Anzahl von Ganzzahlen in einem bestimmten Intervall (einschließlich der imos-Methode) [Python-Implementierung]
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
So berechnen Sie die Volatilität einer Marke
[Python] Listenverständnis Verschiedene Möglichkeiten zum Erstellen einer Liste
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
[Circuit x Python] So ermitteln Sie die Übertragungsfunktion eines Schaltkreises mit Lcapy
[Python] Erstellen Sie eine Liste mit verschiedenen Zeichentypen
Ermitteln Sie mithilfe der Twitter-API die Anzahl der Tweets, die sich auf ein bestimmtes Keyword beziehen
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
Fügen Sie eine Funktion hinzu, um dem Wetter heute mitzuteilen, dass der Bot locker ist (hergestellt von Python).
Lesen Sie die Python-Markdown-Quelle: So erstellen Sie einen Parser
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Eine grobe Einführung in die neuronale maschinelle Übersetzungsbibliothek
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
Schritte zur Berechnung der Wahrscheinlichkeit einer Normalverteilung
Wie man das Dokument der magischen Funktion (Linienmagie) trifft
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
Django super Einführung von Python-Anfängern! Teil 6 Ich habe versucht, die Login-Funktion zu implementieren
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Wenn sich eine Zeichenfolge einer bestimmten Reihe im Schlüssel des Wörterbuchs befindet, wird die Zeichenfolge in den Wert des Wörterbuchs konvertiert.
Erstellen Sie ein zweidimensionales Array, indem Sie am Ende eines leeren Arrays mit numpy eine Zeile hinzufügen
Versuchen Sie, die Funktionsliste des Python> os-Pakets abzurufen
Erstellen Sie eine Funktion zum Anzeigen von Bildern wie Jupyter / RStudio [Docker]
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Eine Einführung in die Objektorientierung: Ändern Sie den internen Status eines Objekts
Wahrscheinlich der einfachste Weg, um mit Python 3 ein PDF zu erstellen
Einführung in die Statistik Die University of Tokyo Press Kapitel 2 Übungen
So führen Sie die Exportfunktion des GCP-Datenspeichers automatisch aus
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
Ich habe ein wenig versucht, das Verhalten der Zip-Funktion
Erstellen wir eine Funktion, um die Schaltfläche in Tkinter gedrückt zu halten
Erstellen Sie ein Korrelationsdiagramm aus dem Konversationsverlauf von Twitter
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich möchte vorerst eine Docker-Datei erstellen.