Scipy optimiser la racine

Scipy optimiser la racine

Python est un langage informatique orienté objet, structuré et fonctionnel. Son application ne se limite pas à des types spécifiques, ce qui en fait une langue à usage général. Il s'agit d'un langage de programmation bien familier, et il propose une variété de bibliothèques pour écrire les différents logiciels dans cette langue. Le script de cette langue est également similaire à la langue anglaise. En vertu de ce fait, Python a le mérite d'être un langage de programmation adapté aux débutants pour des applications telles que l'informatique scientifique et technique, l'intégration, le traitement du signal et de l'image, et l'interpolation de la bibliothèque Python qui est «Scipy», qui traite de tous de telles fonctions spécifiques.

Scipy a un attribut de la fonction nommée «Optimiser. racine ()". Cette fonction contient les optimiseurs. Les optimiseurs représentent l'ensemble de ces fonctions ou les procédures qui réduisent la valeur / sortie ultime de la fonction ou la racine de cette fonction à la plus petite valeur possible.

Procédure:

La procédure de cet article suit quelques étapes importantes. Tout d'abord, nous apprendrons le «Optimiser. Fonction root () ”. Ensuite, nous saurons quels modules du Scipy sont tenus de travailler avec cette fonction. Nous allons également en apprendre davantage sur la syntaxe d'optimiser.Root () Fonction dans le script Python. Ensuite, nous ferons quelques exemples pour nous mettre en main avec ce sujet.

Syntaxe:

Ce qui suit est la syntaxe et la méthode de déclaration pour l'appel de l'optimiser.Fonction racine dans le programme Python:

$ scipy.optimiser.root (fun, x0, args = (), méthode = 'hybr', jac = aucun, tol = aucun, rappel = aucun, options = aucun)

La première fonction de paramètre dans la liste d'arguments d'entrée de cette fonction est le «plaisir». C'est l'équation ou la fonction sur laquelle nous voulons appliquer le «Optimiser. root () «Fonction. Vient ensuite «X0» qui est un premier invité à calculer pour les racines. Les «args» sont le paramètre supplémentaire que nous pouvons ajouter à l'objectif de la fonction. Et la «méthode» est un paramètre important qui définit le type de solveur de la fonction Optimizer. «Jac» signifie Jacobian. Si sa valeur est spécifiée à la «vraie» valeur, la fonction renvoie la valeur du jacobian avec la fonction d'objection. Dans un autre cas, le jacobien est calculé numériquement et c'est un autre paramètre facultatif. Ensuite, le «Tol» est la tolérance à l'arrêt de la fonction et dépend du type du solveur; Encore une fois, un paramètre facultatif.

Valeur de retour:

La fonction renvoie l'objet de type de résultat optimisé dans la sortie qui a le tableau qui représente la solution. Le message de réussite est un drapeau booléen qui signifie que la fonction est sortie avec succès et la cause du message de terminaison.

Exemple 1:

«Optimiser.root () ”La fonction optimise la fonction et réduit ou augmente la valeur selon l'exigence du programme. Il trouve également les racines d'une fonction qui peut prendre la forme d'une équation non linéaire.

Avec la syntaxe précédente que nous devons apprendre, faisons un exemple très basique pour cette optimiser.fonction root () et trouvez les racines d'une équation ou de fonction non linéaire. La plate-forme que nous utiliserons pour utiliser le compilateur Python est "Google Collab". Ceci est un programme open-source et fournit tous les packages déjà installés et téléchargés. Pour commencer par le nouveau programme, allouer un nouveau ordinateur portable dans Google Drive dans la collaboration.

Après avoir réussi à créer un cahier, intégrons les packages Python requis dans le programme. Pour cela, nous intégrerons le scipy. Étant donné que l'attribut de Scipy Optimiser a le module «racine», nous devons importer la racine du «Scipy.Optimiser". Puisque nous avons déjà discuté que l'optimiser.root () prend le «func» dans sa liste d'arguments d'entrée et le func est simplement une forme de l'équation non linéaire, nous intégrons la bibliothèque «mathématiques» pour écrire ces équations non linéaires avec le module requis dans la fonction de la fonction équation. L'équation de la fonction de cet exemple est la suivante:

a + sin (a)

L'équation donnée a la fonction trigonométrique qui est «péché». Nous intégrons la bibliothèque mathématique comme le «péché». Avec cette importation des packages Python requis, nous définissons maintenant l'équation dans la fonction. Pour cette tâche, nous créons une fonction avec le nom «Func» et le type de retour «DEF». Nous passons la variable «A» à l'argument de la fonction. Ensuite, nous faisons la fonction de renvoyer l'équation comme «Retour x + sin (x)».

Maintenant, nous appelons cette fonction pour utiliser cette équation dans la méthode «root ()» comme argument d'entrée. Appelez la fonction «root ()» et passez le nom de la fonction pour laquelle nous définissons l'équation comme «func» ainsi que la valeur de supposition initiale égale à «0» pour les racines. Maintenant, affichez les résultats avec la méthode print (). Le programme de cette fonction avec sa sortie est illustré dans l'extrait suivant:

de Scipy.Optimiser la racine d'importation
de Math Import Sin
def func (a):
retourner un + sin (a)
valeur = root (func, 0)
Imprimer (valeur)

La fonction a renvoyé le tableau de solution comme racine de l'équation. La solution a convergé.

Exemple 2:

Avec la même méthode que nous avons appris dans le premier exemple, nous pouvons ajouter la fonction «Jac» avec l'équation et appliquer le «Optimiser.root () ”Fonction dessus pour obtenir la valeur minimale de la fonction. Importer le «scipy.Optimiser «comme« racine »et« Numpy »comme« NP ». Déclarez la fonction «func» et renvoyez l'équation dedans comme «[a [0] + 0.4 * (A [0] - A [1]) ** 2 - 1.0, 0.4 * (A [1] - A [0]) ** 2 + A [1]] ». Définissez une autre fonction, «Jacobian», qui est le paramètre supplémentaire et renvoyez l'équation dedans comme «[[1 + 1.4 * (A [0] - A [1]) ** 2, -1.4 * (A [0] - A [1]) ** 2], [-1.4 * (A [1] - A [0]) ** 2, 1 + 1.4 * (A [1] - A [0]) ** 2]] ». Passez le «func», devine initiale «x0», le «jacobian» et le «solveur / méthode» comme «hybr» à la fonction «root ()» et exécutez le programme comme suit:

Importer Numpy comme NP
de Scipy.Optimiser la racine d'importation
def func (a):
retourner [a [0] + 0.4 * (A [0] - A [1]) ** 2 - 1.0,
0.4 * (A [1] - A [0]) ** 2 + A [1]]
Def Jacobian (a):
retour np.Array ([[1 + 1.4 * (A [0] - A [1]) ** 2, -1.4 * (A [0] - A [1]) ** 2], [-1.4 * (A [1] - A [0]) ** 2, 1 + 1.4 * (A [1] - A [0]) ** 2]])
valeur = root (func, [0, 0], jac = jacobian, méthode = 'hybr')
Imprimer (valeur)

La fonction a renvoyé les racines optimisées comme tableau de solution avec les deux autres paramètres.

Conclusion

Le travail et la mise en œuvre de l'optimiser de Scipy.root () ”La fonction est indiquée dans cet article. Nous avons effectué la fonction root () sur deux exemples distincts et avec des paramètres de fonction différents.