====== 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]]