Je voudrais utiliser une fonction appelée fonction involute comme thème pour créer une fonction inverse numériquement de différentes manières. Python a de nombreuses bibliothèques qui peuvent être utilisées pour des calculs techniques, je voudrais donc utiliser ces bibliothèques pour voir les limites de chaque méthode. Il y a cinq façons de l'essayer. --Régression des polymères (scikit-learn) -Support Vector Machine (scikit-learn)
La fonction développante est une fonction utilisée pour déterminer la forme des dents d'un engrenage, et sa définition elle-même est très simple.
Cela signifie que lorsque $ inv \ alpha = f (\ alpha) $ est connu, vous devez trouver $ \ alpha $ à partir de $ inv \ alpha $. Vous pouvez facilement l'exprimer comme $ \ alpha = f ^ {-1} (inv \ alpha) $ en utilisant des symboles mathématiques, mais le calcul réel n'est pas si facile. (Remarque: $ inv \ alpha $ est utilisé pour signifier $ involute (\ alpha) $. Inv n'est pas une abréviation pour inverse.)
Le travail se fera avec le Jupyter Notebook. Tout d'abord, importez les bibliothèques requises. Importez NumPy pour gérer les données vectorielles et Bokeh pour tracer.
Notebook
import numpy as np
from bokeh.plotting import output_notebook, figure, show
output_notebook()
Définissez une fonction involute.
Notebook
def involute_ufunc(α):
return np.tan(α) - α
Ici, NumPy est utilisé pour simplifier le travail de traçage. NumPy a une fonctionnalité appelée diffusion qui vous permet d'appliquer des fonctions à tous les éléments d'un tableau (numpy.ndarray) à la fois. Puisque la fonction math.tan ne prend pas en charge la diffusion, nous utilisons la fonction numpy.tan qui prend en charge la diffusion. La fonction involute_ufunc prend un tableau avec l'argument $ \ alpha $ et applique la fonction involute à tous les éléments du tableau pour renvoyer le tableau.
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 = 'Angle de pression α(deg)'
fig.yaxis.axis_label = 'invα'
show(fig)
La fonction inverse inverse est celle avec les axes vertical et horizontal permutés.
Le bloc-notes utilisé pour l'explication est téléchargé sur Gist. Tracé de Involute Function.ipynb
Recommended Posts