====== Utilisation de polynômes orthogonaux avec NumPy ====== Voici un programme permettant d'obtenir le même graphe que celui obtenu précédemment, en utilisant les modules spécifiques de NumPy. Cet exemple montre tout l'intérêt d'utiliser des modules pré-existants. Le programme est réduit à 3 lignes pour l'importation, 4 pour la création des graphes et 4 pour commander la représentation. #! /usr/bin/env python # -*- coding: utf-8 -*- """ Représentations des polynômes de Chebyshev avec utilisation de matplotlib et numpy Références : http://docs.scipy.org/doc/numpy/reference/routines.polynomials.package.html http://docs.scipy.org/doc/numpy/reference/routines.polynomials.chebyshev.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.chebyshev.chebval.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.ones.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html http://docs.scipy.org/doc/numpy/reference/generated/numpy.append.html """ import numpy as np import matplotlib.pyplot as plt from numpy.polynomial.chebyshev import chebval x = np.linspace(-1, 1, 100) for n in range(10): y = chebval(x,np.append(np.zeros(n),np.ones(1))) plt.plot(x,y) plt.axis([-1,1,-1,1]) # xmin, xmax, ymin, ymax plt.title('Polynomes de Tchebyshev') plt.legend() plt.show() Ce code fonctionne aussi bien en Python version 2 qu'en version 3. Il suffit que les librairies nécessaires (matplotlib, numpy) soient installées ! ===== Application : oscillateur harmonique quantique ===== La mécanique quantique permet de décrire la vibration de molécules biatomiques par le modèle de l'[[wp>fr:Oscillateur_harmonique_quantique|oscillateur harmonique quantique]]. Il serait facile d'écrire un programme représentant les fonctions d'ondes, et les présentant sous la même forme que cette [[http://commons.wikimedia.org/wiki/File:HarmOsziFunktionen.png|figure sur Wikimedia]]. ===== Application : orbitales atomiques ===== * //cf.// cet [[http://docs.enthought.com/mayavi/mayavi/auto/example_atomic_orbital.html|exemple de l'orbitale 3p hydrogénoïde]] avec le module [[http://docs.enthought.com/mayavi/mayavi/index.html|Mayavi]] * [[http://nbviewer.ipython.org/github/damontallen/Orbitals/blob/master/Hydrogen%20Orbitals%20%28Feb%2018,%202014%29%20%28dynamic%20entry%29.ipynb|Autre exemple avec Mayavi]] ===== Programmation objet et création d'une classe spécifique aux polynômes ===== * cf. par exemple [[https://algo.developpez.com/actu/339249/Mathematiques-et-Python-moins-apprendre-a-creer-une-classe-Polynome-en-Python-avec-la-surcharge-des-operateurs-un-billet-blog-de-Denis-Hulo/|Mathématiques et Python - apprendre à créer une classe Polynome en Python avec la surcharge des opérateurs]], Denis Hulo, 8 décembre 2022 * [[http://pcsi.kleber.free.fr/IPT/doc/TP08_polynomes.pdf]] * [[http://gilles.dubois10.free.fr/analyse_reelle/code_python/comppoly.html]] * [[https://python-course.eu/oop/polynomial-class.php]] * [[https://github.com/koder-ua/python-classes/blob/master/examples/polynome.py]] * [[https://github.com/nbice1/Polynomial-Class]]