[PYTHON] Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Introduction

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)

Confirmation du problème

Qu'est-ce qu'une fonction involute?

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. f(\alpha) = tan\ \alpha - \alpha Dans le processus de calcul de l'engrenage, il est nécessaire de calculer la fonction inverse de cette fonction.

Qu'est-ce qu'une fonction inverse

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.)

Essayez de tracer la fonction involute

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)
インボリュート関数.png

La fonction inverse inverse est celle avec les axes vertical et horizontal permutés. インボリュート逆関数.png

Code source

Le bloc-notes utilisé pour l'explication est téléchargé sur Gist. Tracé de Involute Function.ipynb

Lien vers l'article

Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Partie 1 Régression polynomiale - Qiita

Recommended Posts

Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Introduction
Diverses méthodes pour créer numériquement la fonction inverse d'une certaine fonction Partie 1 Régression polynomiale
Créez une fonction pour obtenir le contenu de la base de données dans Go
Comment créer un wrapper qui préserve la signature de la fonction à envelopper
Créer une fonction pour visualiser / évaluer le résultat du clustering
J'ai fait une fonction pour vérifier le modèle de DCGAN
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
[Go] Créez une commande CLI pour changer l'extension de l'image
[Python3] Définition d'un décorateur qui mesure le temps d'exécution d'une fonction
[Python] Une fonction simple pour trouver les coordonnées du centre d'un cercle
Différentes façons de créer un dictionnaire (mémoires)
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
4 méthodes pour compter le nombre d'occurrences d'entiers dans un certain intervalle (y compris la méthode imos) [implémentation Python]
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Comment calculer la volatilité d'une marque
[Python] Compréhension de liste Différentes façons de créer une liste
Comment créer un objet fonction à partir d'une chaîne
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
[python] Créer une liste de différents types de caractères
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
De l'introduction de pyethapp à l'exécution du contrat
Créez une commande pour obtenir le journal de travail
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Essayez de créer une table d'enregistrement de bataille avec matplotlib à partir des données de "Schedule-kun"
Ajouter une fonction pour indiquer la météo d'aujourd'hui au bot slack (fabriqué par python)
Lire la source Python-Markdown: Comment créer un analyseur
Créer un ensemble de données d'images à utiliser pour la formation
Une introduction approximative à la bibliothèque de traduction automatique neuronale
Un mémo pour comprendre visuellement l'axe des pandas.
[Introduction à Python] Comment itérer avec la fonction range?
Comment créer un sous-menu avec le plug-in [Blender]
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
Étapes pour calculer la probabilité d'une distribution normale
Comment frapper le document de Magic Function (Line Magic)
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
Note Python: Le mystère de l'attribution d'une variable à une variable
Django super introduction par les débutants Python! Partie 6 J'ai essayé d'implémenter la fonction de connexion
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
Lorsqu'une chaîne de caractères d'une certaine série se trouve dans la clé du dictionnaire, la chaîne de caractères est convertie en valeur du dictionnaire.
Créez un tableau à deux dimensions en ajoutant une ligne à la fin d'un tableau vide avec numpy
Essayez d'obtenir la liste des fonctions du paquet Python> os
Créer une fonction pour afficher des images comme Jupyter / RStudio [Docker]
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
Une introduction à l'orientation des objets - changeons l'état interne d'un objet
Probablement le moyen le plus simple de créer un pdf avec Python 3
Introduction aux statistiques Exercices du chapitre 2 de la presse de l'Université de Tokyo
Comment exécuter automatiquement la fonction d'exportation de GCP Datastore
[Introduction à AWS] Mémorandum de création d'un serveur Web sur AWS
Comment trouver le coefficient de mise à l'échelle d'une ondelette bipolaire
J'ai essayé un peu le comportement de la fonction zip
Créons une fonction pour maintenir Button dans Tkinter
Créer un diagramme de corrélation à partir de l'historique des conversations de Twitter
J'ai essayé de combattre le minimum local de la fonction Goldstein-Price
Je veux créer un Dockerfile pour le moment.