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.
Die Evolventenfunktion ist eine Funktion, mit der die Form der Zähne eines Zahnrads bestimmt wird, und ihre Definition selbst ist sehr einfach.
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.)
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)
Die inverse inverse Funktion ist die mit vertauschten vertikalen und horizontalen Achsen.
Das für die Erklärung verwendete Notizbuch wird auf Gist hochgeladen. Plot of Involute Function.ipynb
Recommended Posts