0% ont trouvé ce document utile (0 vote)
10 vues64 pages

ChapXIII CalculPython

Le document présente une introduction au langage de programmation Python et à son utilisation dans le cadre de la recherche scientifique, notamment à l'Université de Bechar. Il décrit les domaines d'application de Python, les bibliothèques nécessaires pour le calcul scientifique, et les étapes pour installer et personnaliser un environnement de développement. Enfin, il souligne l'importance de Python dans la modélisation et la simulation, en particulier dans les zones arides.

Transféré par

wissalmn45
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues64 pages

ChapXIII CalculPython

Le document présente une introduction au langage de programmation Python et à son utilisation dans le cadre de la recherche scientifique, notamment à l'Université de Bechar. Il décrit les domaines d'application de Python, les bibliothèques nécessaires pour le calcul scientifique, et les étapes pour installer et personnaliser un environnement de développement. Enfin, il souligne l'importance de Python dans la modélisation et la simulation, en particulier dans les zones arides.

Transféré par

wissalmn45
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TAHRI Mohamed, Bechar University

Laboratory for Energétics in Arid Zones


Systems Design & Simulation Research Team

from turing_machine import TuringMachine


initial_state = "init",
accepting_states = ["final"],
CHAPTER XIII:
transition_function = {("init","0"):("init", "1", "R"),
("init","1"):("init", "0", "R"),

Scientific Processing
("init"," "):("final"," ", "N"),
}
final_states = ["final"]

under Python environnment


t = TuringMachine("010011 ",

Version
initial_state = "init",

(avec source code)


final_states = final_states,
transition_function=transition_function)
print("Input on Tape:")
t.show_tape() 5.0.0
while not t.final():
t.step()
print("Result of the Turing machine calculation:")
t.show_tape() Course by : Pr. TAMALI Mohammed,
[email protected]
TAHRI Mohamed Bechar University F&T
(ENERGARID Lab./SimulIA)
Lab. Introduction
The University of Bechar was born in 1986 as the National Institutes of
Higher Education (INES) in 1992 it becomes University Center and on
January 07, 2007, it was officially declared as a University. Since then,
many Research Teams have seen the day. In 2011, The Laboratory for
Energy Systems Studies Applied to Arid Zones was run by a group of
young and well motivated researchers (7 Research teams) to solve real
problems affecting arid zones, SimulIA Team is one of them in the same
laboratory. The Workload of SimulIA concern studies and applications of
modeling and simulation of systems in Arid Areas.
Research areas:

Energy & Environment (Modeling & Simulation)

Application of heat in arid zones

Energy economy.

Mapping and development of resources in arid zones.

SIMULIA for the task in the short term, to develop the computer code
for modeling and simulation which can be accessed online.
Website of the laboratory team: http://energarid.wordpress.com/
2

Introduction (Généralités & Historique). Plan

Elaboration d’un environnement logiciel Python

(Installation, Personnalisation & Utilisation).

Domaines d’utilisation

Outils d’élaboration de code Python (IDE)

Base de représentation des données (Eléments de base)

Structure algorithmique du langage Python

Matrices & Systèmes linéaires

Systèmes non-linéaires

Interpolation & approximation

Intégration & Différentiation numérique

Calcul parallèle

Conclusion
3
General Introduction.
Les mathématiques appliquées et le calcul scientifique jouent un rôle croissant comme outils non évitables
pour l’élaboration de recherches scientifiques et dans la conception de processus industriels. Le calcul
scientifique reste pour toujours l’étape première de la voie du développement culturel et technique d’un pays
donné.
Par ailleurs, le niveau de complexité des systèmes, généralement manipulés par les êtres humains que nous
sommes, est très élevé à un niveau où toute avancée intellectuelle engendrera des retombés au niveau
industriel tant que tous les processus de l’économie en dépendent.
En contre partie, la majorité des produits technologiques sont juste la solution immédiate de bon nombre de
résolutions de requête de la vie courante. L'avènement de l'informatique et de ses produits, les langages de
programmation de tout bord, de l'Internet et des télécommunications, à chacun ses infrastructures et ses
protocoles, a révolutionné les méthodologies de travail des équipes et laboratoires de recherches. Les
langages de développement informatique des outils et suites logiciels sont d’un grand secours aux travaux
de modélisation et de simulation des processus.
Les mathématiques appliquées et l'informatique sont les moyens de conception (Modélisation et Simulation),
plus encore, ils sont les vecteurs qui ont provoqué une amélioration nette dans les pratiques de tous les
jours et aussi dans la vitesse de mise en œuvre de moyens exploitables.
Les langage de programmation, comme le C/C++, le FORTRAN ou le Python ont joué un grand rôle dans le
cours de développement de beaucoup de procédés (Modélisation) et ont facilité la compréhension de
beaucoup phénomènes (Simulation).

4
Introduction (Historique).
Python est un langage intéressant pour sa facilité et sa richesse en possibilités d’utilisation. En
version de base, Python dispose de nombreuses fonctionnalités intégrées en standard.
Autour des aptitudes de base standard, Il est extensible par des modules de tout bord, qui sont les
contributions de développeurs dévoués à la cause de l’Open Source. Ce sont des bibliothèques qui
aident le développeur à travailler sur des projets particuliers. Plusieurs bibliothèques peuvent ainsi
être installées pour, par exemple, développer des interfaces graphiques en Python (cas de tkinter).
Python est un langage de programmation, dont la première version est sortie en 1991. Créé par
Guido van Rossum, il a été porté du Macintosh, de son développeur, qui travaillait à cette époque
au Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se voir associer une organisation
à but non lucratif particulièrement dévouée, la PSF (Python Software Foundation), créée en 2001. Ce
langage a été baptisé ainsi en hommage à la troupe de comiques les «Monty Python».

Développeur Informaticien
Néerlandais (langage Python)
Guido van Rossum
31 janvier 1956 Monty Python est le nom d'une troupe célèbre
d'humoristes britanniques (1969).

5
Introduction (Open Source vs. Proprietary).

La PSF (Python Software Foundation), créée en 2001, appartient à Open Source Initiative, et à la FSF
(Free Software Foundation)

Un logiciel propriétaire, appelé parfois de manière militante logiciel privateur, ou encore logiciel non
libre, est un logiciel dont la duplication, la modification ou l'usage est limité.

VoCore Mini Linux Computer


Open Source-Hardware

La désignation Open Source ou ‘Code Source Ouvert’, s'applique aux logiciels dont la licence
respecte des critères précisément établis par l'Open Source Initiative, c'est-à-dire les possibilités de
libre redistribution, d'accès au code source et de création de travaux dérivés. Mis à la disposition du
grand public, ce code source est généralement le résultat d'une collaboration entre développeurs.
6
Python Software environnment
Installation
Beaucoup de méthodologies sont valable pour développer un environnement compatible pour une programmation avec le
langage Python (Celui-ci est téléchargeable sous deux version 2.X ou 3.X, version de base qui ne sont pas forcement
totalement compatible). Le langage Python est utilisable sous différent système d’exploitation (Win, Linux/UNIX ou Mac OS).
Une autre alternative, encore plus interessante que la première
est d’installer le logiciel ANACONDA.

Notre choix
Environneme
nt

Avec l’un des éditeurs de scripts

Notre

7
choix
IDE
Elaboration d’un environnement logiciel
Python
Installation
La plateforme ANACONDA installe tout le nécessaire (l’environnement PYTHON 3.X/2.X) et donnera accès aux possibilités
d’étendre l’installation aux modules PYTHON nécessaires pour le développement de calcul scientifique de l’ingénieur ou du
chercheur.
Notre choix
Les différents modules (librairies) nécessaire sont : Environneme
nt
NUMPY : Analyse numérique & Matrices
SCIPY : Extension pour calcul scientifique
MATPLOTLIB : Dessin de courbe
SYMPY : calcul symbolique
NETWORKX : manipulation et gestion des graphes
PLOTLY : Librairie en ligne pour dessin de courbes
EVENTLET :
TKINTER : Librairie pour manipulation d’interface graphique
IPYTHON : Bibliothèque pour calcul scientifique
CYTHON : Interface pour environnement C/C++
JPYTHON : Interface pour environnement JAVA

JUPYTER : Editeur orienté navigateur Notre


choix
IDE
8
DJANGO-CMS : System de gestion de contenus
WIDGY : CMS utilisant le Framework Django.
…encore des milliers de modules.
Elaboration d’un environnement logiciel
Python
Installation : Assistant de l’installation de ANACONDA et de PYCHARM

Notre choix
Environneme
nt Notre
choix
De l’IDE

9
La plateforme ANACONDA = {Python, Modules}
Elaboration d’un environnement logiciel
Python
Personnalisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons
les modules nécessaires à la plateforme ANACONDA .
Dans la fenêtre TERMINAL, nous utiliserons CONDA
H:\PycharmProjects\essai>conda install mpi4py
Using Anaconda Cloud api site
https://api.anaconda.org Commande
Fetching package metadata: .... installation
Solving package specifications: .......... modules
Package plan for installation in environment h:\
Anaconda325:
The following packages will be downloaded:
package | build
mpi4py-2.0.0 | py35_0 264 KB
The following NEW packages will be INSTALLED:
mpi4py: 2.0.0-py35_0 (copy)
Idée du
Proceed ([y]/n)? Y
jour
Fetching packages ...
mpi4py-2.0.0-p 100% |###| Time: 0:00:01 169.26 kB/s
Extracting packages …
[COMPLETE]|##################################| 100%
Fenêtre
Linking packages ...
10
ABOUT de
[mpi4py]| | 0%
PyCharm
[COMPLETE]|##################################| 100%
Elaboration d’un environnement logiciel
Python
Utilisation : Sous PyCharm, en mode TEREMINAL, nous ajoutons les
modules nécessaires à la plateforme ANACONDA .
Caractéristiques du langage script Python :
Avantages :
• Très riches librairies pour le calcul scientifique.
• Langage bien structuré, permettant d’écrire des
programmes lisibles ‘we code what we think’.
• D’autres librairies hors le cadre du calcul scientifique
(Gestion des services Web, Accès aux ports série, etc.)
• Graticiel ‘Open Source’, derrière une large communauté.
• Compacité du programme développé.
• Beaucoup d’alternatives pour l’édition (IDE).

Inconvénients:
• Environnement de développement moins.
• Pas tous les algorithmes qui peuvent être trouvés dans
le logiciel.

Python peut être utiliser sous deux modes, selon


l’interactivité escomptée.
Fenêtre 1. Commande en ligne

11
ABOUT de
2. Exécution de fichier script .py
PyCharm
Elaboration d’un environnement logiciel
Python
Utilisation : Sous PyCharm,.
Caractéristiques du langage script Python :
Python est un langage script informatique générique et
moderne.
• Langage Python intègre tous les types de données
(chaîne, réel, entier), les contrôles, des collections de
données (listes, tuples ou dictionnaires), et des modèles
de flux, etc.
• La bibliothèque standard intègre plusieurs Modules.
• Un grand nombre de modules spécialisés ou des
applications sont écrites en Python: protocoles web,
Mode framework web, etc ... Ainsi que le calcul scientifique.
programme - Outils de développement (test automatique, génération de
(.py) documentation).
- et encore plus…

Python peut être utiliser sous deux modes, selon


l’interactivité escomptée.
1. Commande en ligne
Mode 2. Exécution de fichier script .py
console
Python
12
Elaboration d’un environnement logiciel
Python
Utilisation : Sous Jupyter, Interface WEB pour Python.
Cette interface Web est facilement mise en œuvre par son
installation :
conda install jupyter (si Anaconda est installé)
Ou
pip install jupyter
Le lancement de l’interface est fait en invoquant :
13
Jupiter notebook
Ouvrir le navigateur et entrer l’adresse
http://127.0.0.1:8888.
Menu et barre Pour utiliser un autre PORT autre que 8888
d’outils On note : http://127.0.0.1:Nouveau_Port.
L’interface JUPITER est intuitive et facile à utiliser, ses
fonctionnalités sont :
• Déploiement sous protocole Internet d’aptitude de calcul
Python.
• Toute les possibilités de gestion des documents ‘Notebook’
sont offertes.
• Possibilités d’édition non limitées (LaTeX, HTML, Code, …)
Exemple de • Exécution immédiate.
code avec • Compatibilité avec la plupart des langages et scripts de
son programmation (C/C++, Java, JavaScript, Julia, Python, R,
exécution Octave, Rubby …)
• Offre accessibilité à Jupyter Drive via Google Drive.
• Options de Reporting avancées (HTML, LaTeX, PDF).
Elaboration d’un environnement logiciel
Python
Utilisation : Sous Jupyter, Interface WEB pour Python.
Les notebooks sont accessibles à partir de PyCharm.
Les notebooks sont des solutions de collaboration de
préférences, ils intègrent toute les fonctionnalités exigées par un
chercheur dans le domaine des sciences, humaines ou
technologiques.
Exemple de Organisation des documents, leur ouverture, édition ou mise à
Code Python jours se fait dans le même endroit sans aucune dépendance par
rapport à la machine, puisque les notebooks sont accessible en
ligne (Serveur, Ordinateur de bureau ou Périphérique mobile).
Les possibilités sont étendues ainsi qu’une documentation
abondante.

Graphiqu
e 3D

14
Domaines d’utilisation (Qui Utilise de Python)
YouTube
DropBox
Survey Monkey
Google
Quora
Bitly
Reddit
Yahoo Maps
Hipmunk
Pinterest
Instagram
Disqus
Spotify
Washington Post
Firefox
NASA
Bitbucket
Reddit Gifts
Prezi
Playfire
Eventbrite 15
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)

16
Domaines d’utilisation Importation de
Les domaines utilisant le langage script Python sont nombreux : la librairie
Calcul scientifique de base (Modèle (Non-) linéaire) Numpy
import numpy as np
Python pour traitement du signal systeme = np.array([[1,2],[3,-4]])
Calcul de probabilité et statistiques valeur=np.array([[3],[1]])
Développement de graphiques interactive avec Plotly sol=np.linalg.solve(systeme,valeur)
Visualisation des données avec Lightning print("x=",sol[0,0]," et y=",sol[1,0])
Lissage et régression non Paramétrique x= 1.4 et y= 0.8
Solveur d’équations différentielles partielles # Résolution de système linéaire A.X=b
>>> import numpy as np
Librairie Python d’analyse des données (Panda)
>>> from scipy import linalg
Analyse de Big-Data en python >>> A = np.array([[1, 2], [3, 4]])
Machine Learning sous Python avec le package scikit-learn >>> A
Econométrie sous Python avec le package StatsModels array([[1, 2],[3, 4]])
Introduction à la programmation parallèle avec MPI Python >>> b = np.array([[5], [6]])
Théorie des graphes >>> b
Commande de processus et systèmes embarqués array([[5],[6]])
>>> linalg.inv(A).dot(b) # slow
Plateforme CAD 2D/3D
array([[-4. ],[ 4.5]])
Bioinformatique et manipulation du génome
>>> A.dot(linalg.inv(A).dot(b)) - b # Vérification
Développement de sites Web (Framework Django) array([[8.88178420e-16],[2.66453526e-15]])
>>> np.linalg.solve(A, b) # fast
array([[-4. ],[ 4.5]])
>>> A.dot(np.linalg.solve(A, b)) - b # Vérification
array([[ 0.],[ 0.]])
17
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilitéimport numpy as np
et statistiques
from scipy import signal, misc
Développement de graphiques interactive avec Plotly
import matplotlib.pyplot as plt
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
image = misc.face(gray=True).astype(np.float32)
Solveur d’équationsderfilt
différentielles partielles
= np.array([1.0, -2, 1.0], dtype=np.float32)
Librairie Python d’analyse des données (Panda)
ck = signal.cspline2d(image, 8.0)
deriv
Analyse de Big-Data en python= (signal.sepfir2d(ck, derfilt, [1]) +signal.sepfir2d(ck, [1], derfilt))
Machine Learning sous Python avec le package scikit-learn
laplacian = np.array([[0, 1, 0], [1, -4, 1], [0, 1, 0]], dtype=np.float32)
Econométrie sous Python avec le package StatsModels
deriv2 = signal.convolve2d(ck,laplacian,mode=“same”,boundary=“symm”)
Introduction à la programmation
plt.figure() parallèle avec MPI Python
Théorie des graphes plt.imshow(image)
Commande de processus et systèmes embarqués
plt.gray()
Plateforme CAD 2D/3D plt.title(”Image original”)
plt.show() du génome
Bioinformatique et manipulation
Développement de plt.figure()
sites Web (Framework Django)
plt.imshow(deriv)
plt.gray()
plt.title(“sortie avec filtre spline”)

18
plt.show()
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement from matplotlib.pyplot
de graphiques import
interactive avec figure, hold, plot, legend, draw
Plotly
from numpy import linspace
Visualisation des données avec Lightning
import scipy.stats as stats
Lissage et régression
from non Paramétrique
numpy.random import randn
Solveur d’équations
x = randn(100) partielles
différentielles
Librairie Python d’analyse des données (Panda)
fig = figure()
Analyse de Big-Data
ax = en python
fig.add_subplot(111)
Machine Learning ax.hist(x,
sous Python bins=30, label=’Empirical’)
avec le package scikit-learn
xlim = ax.get_xlim()
Econométrie sous Python avec le package StatsModels
ylim = ax.get_ylim()
Introduction à la programmation parallèle avec MPI Python
pdfx = linspace(xlim[0], xlim[1], 200)
Théorie des graphes
pdfy = stats.norm.pdf(pdfx)
Commande de processus
pdfy = pdfy et systèmes embarqués
/ pdfy.max() * ylim[1]
Plateforme CADhold(True)
2D/3D
Bioinformatique et manipulation
plot(pdfx, du génome
pdfy, ’r-’, label=’PDF’)
Développement ax.set_ylim((ylim[0],
de sites Web (Framework 1.2 * ylim[1]))
Django)
legend()
hold(False)
draw()

19
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux : 20
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse des données (Panda, QtGraph)
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
%matplotlib inline
Python pour traitement du signal from pylab import plot, show, title, xlabel, ylabel, subplot, savefig
Calcul de probabilité et statistiques from scipy import fft, arange, ifft
from numpy import sin, linspace, pi
Développement de graphiques interactive avec Plotly from scipy.io.wavfile import read,write
Visualisation des données avec Lightning
Code du
def plotSpectru(y,Fs):
n = len(y) # lungime semnal
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
k = arange(n)
T = n/Fs
traitement audio

21
frq = k/T # two sides frequency range
Librairie Python d’analyse sonore du coran frq = frq[range(n/2)] # one side frequency range
Y = fft(y)/n # fft computing and normalization
Y = Y[range(n/2)]
Analyse de Big-Data en python plot(frq,abs(Y),'r') # plotting the spectrum
xlabel('Freq (Hz)')
Machine Learning sous Python avec le package scikit-learn ylabel('|Y(freq)|')
Econométrie sous Python avec le package StatsModels
Fs = 44100; # sampling rate
Introduction à la programmation parallèle avec MPI Python rate,data=read('fatiha.wav')
Théorie des graphes y=data
lungime=len(y)
Commande de processus et systèmes embarqués timp=len(y)/44100.
Plateforme CAD 2D/3D t=linspace(0,timp,len(y))
subplot(2,1,1)
Bioinformatique et manipulation du génome plot(t,y)
xlabel('Time')
ylabel('Amplitude')
subplot(2,1,2)
plotSpectru(y,Fs)
show()

Lecture de la Spectre Amp|


sourah ‫الفاتحة‬ Fréq
Domaines d’utilisation Importation de la
librairie NetworkX
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
Visualisation des données avec Lightning
Lissage et régression non Paramétrique
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle (MPI Python)
Théorie des graphes (Networkx) Fenêtre
Aperçu du
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D bloc-note
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)

Exemple
de
22
graphe
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
Importation
Calcul scientifique de base (Modèle (Non-) linéaire)
Python pour traitement du signal librairie GPIO
import RPi.GPIO as GPIO
Calcul de probabilité et statistiques
Développement de graphiques interactive avec Plotly
GPIO.setmode(GPIO.BCM) # set board mode to Broadcom
Visualisation des données avec Lightning
GPIO.setup(17, GPIO.OUT) # set up pin 17
Lissage et régression non Paramétrique
GPIO.setup(18, GPIO.OUT) # set up pin 18
Solveur d’équations différentielles partielles
Librairie Python d’analyse sonore du coran
GPIO.output(17, 1) # turn on pin 17
Analyse de Big-Data en python
GPIO.output(18, 1) # turn on pin 18 Module
Machine Learning sous Python avec le package scikit-learn RaspBerry PI 3
Module
Econométrie sous Python avec le package StatsModels
Introduction à la programmation parallèle Galileo
avec MPI Gen
Python
Théorie des graphes 2
Commande de processus et systèmes embarqués

Plateforme CAD 2D/3D


Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)

23
Domaines d’utilisation
Les domaines utilisant le langage script Python sont nombreux :
from OCC.STEPControl import STEPControl_Reader
Calcul scientifique de base (Modèle (Non-) linéaire) from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity
Maillage
Python pour traitement du signal
from OCC.Display.SimpleGui import init_display

Dauphin
Calcul de probabilité et statistiques step_reader = STEPControl_Reader()
Importation
status = step_reader.ReadFile('./models/wind_turbine.stp')
Développement de graphiques interactive avec Plotly librairie OCC
Visualisation des données avec Lightning if status == IFSelect_RetDone: # check status
failsonly = False
Lissage et régression non Paramétrique step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
Solveur d’équations différentielles partielles step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)

Librairie Python d’analyse sonore du coran ok = step_reader.TransferRoot(1)


Analyse de Big-Data en python _nbs = step_reader.NbShapes()
aResShape = step_reader.Shape(1)
Machine Learning sous Python avec le package scikit-learn
else:
Econométrie sous Python avec le package StatsModels print("Error: can't read file.")
sys.exit(0)
Introduction à la programmation parallèle avec MPI Python
display, start_display, add_menu, add_function_to_menu = init_display()
Théorie des graphes display.DisplayShape(aResShape, update=True)
start_display()
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)

Bioinformatique et manipulation du génome


Développement de sites Web (Framework Django)

Rendu du mât d’un


aérogénérateur
24
Domaines d’utilisation Définition d’une
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire)
nouvelle Classe
Python pour traitement du signal
class Rocket():
Calcul de probabilité et statistiques # Rocket simule une roquette pour un jeu,
Développement de graphiques interactive avec Plotly # ou une simulation de physique.
Visualisation des données avec Lightning
Lissage et régression non Paramétrique def __init__(self):
Solveur d’équations différentielles partielles # Each rocket has an (x,y) position.
Librairie Python d’analyse sonore du coran self.x = 0
self.y = 0 Méthode Constructeur
Analyse de Big-Data en python __init__
Machine Learning sous Python avec le package scikit-learndef move_up(self):
Econométrie sous Python avec le package StatsModels # Incrémentation de la position y de la roquette.
Introduction à la programmation parallèle avec MPI Python self.y += 1
Théorie des graphes
Commande de processus et systèmes embarqués # Définir une ensemble de 5 roquettes, les stocker dans une liste.
Plateforme CAD 2D/3D (Python CAD, FreeCAD) my_rockets = []
for x in range(0,5):
Bioinformatique et manipulation du génome
new_rocket = Rocket() Instantiation
POO avec Python (Programmation my_rockets.append(new_rocket)
Orientée Objet) # A remarquer que chaque roquette est un objet à part entière.
Bioinformatique et manipulation du génome for rocket in my_rockets:
Développement de sites Web (Framework Django) print(rocket)
25
Domaines d’utilisation Importation
librairie BIO
Les domaines utilisant le langage script Python sont nombreux
from Bio: import SeqIO
Calcul scientifique de base (Modèle (Non-) linéaire) for seq_record in SeqIO.parse("ls_orchid.gbk", "genbank"):
print(seq_record.id)
Python pour traitement du signal print(repr(seq_record.seq))
Calcul de probabilité et statistiques print(len(seq_record))
Z78533.1
Développement de graphiques interactive avec Plotly Seq('CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC',
Visualisation des données avec Lightning IUPACAmbiguousDNA())
740
Lissage et régression non Paramétrique ...
Solveur d’équations différentielles partielles Z78439.1
Seq('CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACT...GCC',
Librairie Python d’analyse sonore du coran IUPACAmbiguousDNA())
Analyse de Big-Data en python 592
Sinon dans une Terminal Python
Machine Learning sous Python avec le package scikit-learn
>>> from Bio.Seq import Seq
Econométrie sous Python avec le package StatsModels >>> from Bio.Alphabet import generic_dna
>>> gene = Seq("GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA" + \
Introduction à la programmation parallèle avec MPI Python
... "GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT" + \
Théorie des graphes ... "AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT" + \
... "TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT" + \
Commande de processus et systèmes embarqués ... "AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA",
Plateforme CAD 2D/3D (Python CAD, FreeCAD) ... generic_dna)
>>> gene.translate(table="Bacterial")
Bioinformatique et manipulation Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HR*',
HasStopCodon(ExtendedIUPACProtein(), '*')
du génome >>> gene.translate(table="Bacterial", to_stop=True)
Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HHR',
Développement de sites Web (Framework Django) ExtendedIUPACProtein())

Logo de
BioPython Séquence d’ADN
26
Domaines d’utilisation # Installer à partir de PyPI
$ pip install mezzanine
Les domaines utilisant le langage script Python sont nombreux :
Calcul scientifique de base (Modèle (Non-) linéaire) # Instantier un projet
Python pour traitement du signal
Calcul de probabilité et statistiques
$ mezzanine-project monproject
Développement de graphiques interactive avec Plotly $ cd monproject Installation en mode
commande
Visualisation des données avec Lightning
Lissage et régression non Paramétrique # Instantier une Base de données
Solveur d’équations différentielles partielles $ python manage.py createdb
Librairie Python d’analyse sonore Version
du coran
Administration
Analyse de Big-Data en python
Machine Learning sous Python avec le package scikit-learn
# Lancer le serveur Web
Econométrie sous Python avec le package StatsModels $ python manage.py runserver
Introduction à la programmation parallèle avec MPI Python
Théorie des graphes URL du site
Commande de processus et systèmes embarqués
Plateforme CAD 2D/3D (Python CAD, FreeCAD)
instantié
Bioinformatique et manipulation du génome
Développement de sites Web (Framework Django)

Version Normal

Sites Web fait avec


Version Mobile, Menu
27
Mezzanine
Outils d’élaboration de code Python (IDE)
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.

28
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop)
Les consoles de commande en ligne
Les interfaces orientées Web
Outils d’élaboration de code Python (IDE)
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop) 29
Les consoles de commande en ligne
Les interfaces orientées Web
Outils d’élaboration de code Python (IDE)
Les environnements de développement intégrés de code Python sont nombreux, des solutions propriétaires à celles portant le
label GPL.
Ils sont de trois grandes catégories :
Les applications bureaux (Desktop)
Les consoles de commande en ligne
30
Les interfaces orientées Web
31
Base de représentation des données
Nom de Symbole : Les noms de variables en Python peuvent contenir des caractères alphanumériques a-z, A-Z,
0-9 et certains caractères spéciaux tel que _. Les noms de variables normales doivent commencer par une lettre.
Par convention, les noms de variables commencent par une lettre minuscule, et les noms de classe commencent par
une lettre majuscule. En outre, il y a un certain nombre de mots-clés Python qui ne peuvent pas être utilisés comme
noms de variables. Ces mots-clés sont les suivants:

and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in,
is, lambda, not, or, pass, print, raise, return, try, while, with, yield

Affectation :
# assignement d’une valeur à une variable
x = 1.0
my_variable = 12.2
type(x) #fonction TYPE retourne le type de la variable entre parenthèse
builtins.float

Verification de type :
x = 1.0
# vérifier si la variable est réelle
type(x) is float
isinstance(x, float)
True
z = complex(x)

32
print(z, type(z))
(1+0j) <class 'complex‘>
Base de représentation des données
Operateurs et comparaisons
Opérateurs arithmétiques +, -, *, /, // (division entière), '**' puissance.
3.0 // 2.0
1.0
# NB: operators puissance en python n’est pas ^, mais **
2 ** 2
4
Les opérateurs de comparaison sont >,<,>=,<=,==.
# objects identiques ?
x1 = x2 = [1,2]
x1 is x2
True
2 >= 2, 2 <= 2
(True, True)
Chaines de caractères, les liste et les dictionnaires
s = "Hello world"
type(s)
builtins.str
# length of the string: the number of characters
len(s)
11
# replace a substring in a string with somethign else
s2 = s.replace("world", "test")
print(s2)

33
Hello test
s[0]
'H'
Base de représentation des données
Chaines de caractères, les liste et les dictionnaires
s = "Hello world“
# remplacer une partie de chaine de caractères
s2 = s.replace("world", "test")
Hello test
print(s2)
s[0:5]
'Hello‘
s[0:5]
'Hello‘
s[:]
'Hello world‘
print("value = %f" % 1.0) # Formatage C des variables
value = 1.000000
s2 = "value1 = %.2f. value2 = %d" % (3.1415, 1.5)
print(s2)
value1 = 3.14. value2 = 1
Listes
l = [1,2,3,4]
print(type(l))
print(l)
<class 'list'>
[1, 2, 3, 4]
l = [1, 'a', 1.0, 1-1j] # peuvent être hétérogène
print(l)
[1, 'a', 1.0, (1-1j)] 34
Base de représentation des données
Listes
start = 10
stop = 30
step = 2
range(start, stop, step)
range(10, 30, 2)
list(range(start, stop, step))
[10, 12, 14, 16, 18, 20, 22, 24, 26, 28]
s2 = list(s)
S2
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
# Tri de la liste
s2.sort()
print(s2)
[' ', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
l = []
l.append("A")
l.append("d")
l.append("d")
print(l)
['A', 'd', 'd']
Tuples
Ce sont des variables comme les listes mais pas altérables
point = (10, 20)
print(point, type(point))
(10, 20) <class 'tuple'> 35
Base de représentation des données
Tuples
x, y = point
print("x =", x)
print("y =", y)
x = 10
y = 20

Dictionaries
params = {"parameter1" : 1.0, "parameter2" : 2.0, "parameter3" : 3.0,}
print(type(params))
print(params)
<class 'dict'>
f'parameter2': 2.0, 'parameter3': 3.0, 'parameter1': 1.0}
params["parameter1"] = "A"
params["parameter2"] = "B"
# Ajouter une nouvelle entrée
params["parameter4"] = "D"
print("paramètre = " + str(params["parameter1"]))
print("paramètre = " + str(params["parameter2"]))
print("paramètre = " + str(params["parameter3"]))
print("paramètre = " + str(params["parameter4"]))
paramètre = A
paramètre = B
paramètre = 3.0
paramètre = D 36
37
Base de programmation scientifique
Affectation & Contrôle conditionnel de flue
statement1 = False # C’est une affectation
statement2 = False
if statement1: # Test validé condition (statement1) est VRAIE
print("statement1 is True")
elif statement2: # Exécutée condition (statement2) est VRAIE
print("statement2 is True")
else: # Exécutée sinon
print("statement1 and statement2 are False")

Boucles
for x in [1,2,3]: # [1,2,3] peut être désigné par range(3) avec print(x+1)
print(x)
1
2
3
for word in ["scientific", "computing", "with", "python"]:
print(word) # condition de répétition dépendante du contenu de la liste
scientific
computing
with
python

38
l1 = [x**2 for x in range(0,5)] # à remarquer la compacité du Python
print(l1)
[0, 1, 4, 9, 16]
Base de programmation scientifique
Boucles
var = 0
while var != 1:
print " .... " # j‘écris mon programme ici
choix = raw_input("voulez vous recommencer ? ( o/n ) : ")
if choix == "n":
var = 1
else:
‘vous allez être renvoyé au début du programme’

X = y / 2
while x > 1:
If y % x == 0:
print y, ‘ est facteur de ’, x
break Utilisation et
x -= 1
else: puissance de MAP
print y, ‘ est premier‘
L’utilisation de zip et map, peut s’avérée encore plus efficace
l1 = [1, 2, 3] s='0123456789'
l2 = [4, 5, 6] print map(int, s)
for (x, y) in zip(l1, l2): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print x, y, '--', x + y
1 4 -- 5
2 5 -- 7
3 6 -- 9 Utilisation de ZIP 39
Base de programmation scientifique
Intervalles
range(start, stop, step)
range(5, 10)
5 jusqu’à 10 (borne inférieur (start) incluse alors que celle supérieure
(stop) est exclue) avec un pas (step) de 1.
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70

Test conditionnel binaire


x = 5
y = 10
if x > y:
print('x est grand que y')
else:
print(“x n’est pas grand que y”)
# Dans Python, on peut compliquer les chose
x = 5
y = 10
Z = 12
if z > x > y:
print(‘y est petit que x, et x est petit que z')
40
Base de programmation scientifique
Boucle avec test conditionnel binaire
# break, continue et else dans une boucle for
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, ‘est égal à', x, '*', n//x)
break
else:
print(n, ‘est premier')
# Utilisation de l’instruction continue
for num in range(2, 10):
if num % 2 == 0: # le symbole % désigne l’opération RESTE de la division
print(“Nombre paire trouvé ", num)
continue
print(“Nombre non premier ", num)

41
Base de programmation scientifique
Définition de fonction (procédure avec retour)
def fib(n): # Ecrire la suite de Fibonacci jusqu’à n
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
f = fib # désignation par référence f à la fonction fib
f(100)
0 1 1 2 3 5 8 13 21 34 55 89
# autre type de définition de fonction
def ask_ok(prompt, retries=4, complaint="Oui or Non, s’il vou plait !"):
while True:
ok = input(prompt)
if ok in (‘o', ‘oui', ‘Oui'):
return True
if ok in (‘n', 'no', 'non', ‘Non'):
return False
retries = retries - 1
if retries < 0:

42
raise OSError(‘Utilisateur non coopératif')
print(complaint)
Base de programmation scientifique
L’instruction lambda
def make_incrementeur(n):
return lambda x: x + n
f = make_incrementeur(42)
f(0)
42
f(1)
43
# un autre cas d’utilisation
pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
pairs.sort(key=lambda pair: pair[1])
pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

Les annotations dans une fonction


# Les annotations définissent des messages de présentation
def f(chiken: str, eggs: str = 'eggs') -> str: # remarquer que la fonction est de type STR
print("Annotations:", f.__annotations__)
print("Arguments:", chiken, eggs)
return chiken + ' and ' + eggs
f('spam')
Annotations: {'chiken': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>}

43
Arguments: spam eggs
'spam and eggs‘
Base de programmation scientifique
Les décorateurs python
# Notre décorateur
def decorate(func):
print u"Je suis dans la fonction 'decorate' et je décore '%s'." % func.__name__
print u"Exécution de la fonction '%s'." % func.__name__
return func

# Fonction cible utilisée avec DECORATOR


@decorate
def foobar(*args):
print ", ".join(args)

# Exemple d’appel de la fonction


foobar("A", "B", "C", "D")

Je suis dans la fonction 'decorate' et je décore 'foobar'.


Exécution de la fonction 'foobar'.
A, B, C, D
# Il est possible d’attribuer plusieurs décorateurs à une seule fonction.
@decorateur1
@decorateur2
def ma_fonction():
instructions
44
Base de programmation scientifique
Manipulation des listes et tableaux 1D
a = [66.25, 333, 333, 1, 1234.5]
print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
a.insert(2, -1)
a.append(333)
a
[66.25, 333, -1, 333, 1, 1234.5, 333]
a.index(333)
1
a.remove(333)
a
[66.25, -1, 333, 1, 1234.5, 333]
a.reverse()
a
[333, 1234.5, 1, 333, -1, 66.25]
a.sort()
a
[-1, 1, 66.25, 333, 333, 1234.5]
a.pop()
1234.5
a
[-1, 1, 66.25, 333, 333]
45
Base de programmation scientifique
Puissance du langage Python
# L’ensemble des lignes suiantes peuventt être compactés en ce qui suit :
combs = []
for x in [1,2,3]:
for y in [3,1,4]:
if x != y:
combs.append((x, y))
Combs
# Ou bien
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
# Donne le même résultat
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
# Calcul de la valeur de PI () arrondie
from math import pi
[str(round(pi, i)) for i in range(1, 6)]
['3.1', '3.14', '3.142', '3.1416', '3.14159']
# Générateur avec utilisation de YIELD
def generateur():
yield "a"
yield "b"
yield "c“
i=generateur()
for v in i:
print v
a
b 46
c
Base de programmation scientifique
Les expressions régulières en python
# Les expressions régulière sont utilisées pour vérifier la conformité des expressions de
# chaines de caractères par rapport à un motif. Les symboles suivants sont utilisés :
# . ^ $ * + ? { } [ ] \ | ( )
# . Le point correspond à n'importe quel caractère.
# ^ Indique un commencement de segment mais signifie aussi "contraire de"
# $ Fin de segment
# [xy] Une liste de segment possible. Exemple [abc] équivaut à : a, b ou c
# (x|y) Indique un choix multiple type (ps|ump) équivaut à "ps" OU "UMP"
# \d le segment est composé uniquement de chiffre, ce qui équivaut à [0-9].
# \D le segment n'est pas composé de chiffre, ce qui équivaut à [^0-9].
# \s Un espace, ce qui équivaut à [ \t\n\r\f\v].
# \S Pas d'espace, ce qui équivaut à [^ \t\n\r\f\v].
# \w Présence alphanumérique, ce qui équivaut à [a-zA-Z0-9_].
# \W Pas de présence alphanumérique [^a-zA-Z0-9_].
# \ Est un caractère d'échappement
# T{2} Le ‘T’ soit répété 2 fois
# TA{1,9} La séquence ‘TA’ doit être présente de 1 à 9 fois
#
#
TAM{,10} La séquence ‘TAM’ n’existe pas ou répétée 10 fois
LI{1,} La séquence ‘LI’ doit être répétée au moins une fois. 47
Base de programmation scientifique
Les expressions régulières en python
# Utilisation des expressions régulière
import re
print re.match(r"GR(.)?S", "GRIS")
<_sre.SRE_Match object at 0x02019DE0>

Une utilisation fréquente, consiste en la validation des valeurs des emails saisis.
# Utilisation des expressions régulière
import re

mails = [‘[email protected]’,’[email protected]’, ‘[email protected]’, ‘@univ-bechar.dz’, ‘tamali@cdta’]


regex = re.compile(r’^[a-z0-9._-]+@[a-z0-9._-]+\.[(com|fr|dz)]+’
for mail in mails:
if regex.match(mail) is not None:
print "Ce mail : %s est valide" % mail
else:
print "Erreur ce mail : %s est non valide" % mail

Ce mail : [email protected] est valide


Ce mail : [email protected] est valide
Ce mail : [email protected] est valide
Erreur ce mail : @univ-bechar.dz est non valide
Erreur ce mail : tamali@cdta est non valide

48
Base de programmation scientifique
Les fichiers, Créer lire et écrire dans un fichier en python
# Utilisation des expressions régulière
fichier = open("donnees.txt", "r")
print fichier
<open file ‘donnees.txt', mode 'r' at 0x7ff6cf3fe4b0>

Le descripteur permet de renseigner la machine sur la manière avec laquelle le fichier est utilisé.
r, pour ouverture en mode READ.
w, pour ouverture en mode WRITE, chaque fois, le contenu du fichier est écrasé sinon python le crée.
a, pour ajout ‘APPEND’. Si le fichier n'existe pas python le crée.
b, Ouverture en mode Binaire.
t, Ouverture en mode Texte.
x, crée un nouveau fichier et l'ouvrir pour écriture

# procédure générale pour l’utilisation d’un fichier


fichier = open(‘donnees.txt’, "r")
print fichier.read()
fichier.close()

# L’instruction WITH peut être utilisée sans besoin de la fonction CLOSE


with open("data.txt", "r") as fichier:
print fichier.read()

49
50
Structures algorithmiques du python
Le langage Python, est un langage script interprété. Le programme, portant l’une des extension .py, .pyw ou .pwc est
structuré selon le canevas suivant :

Les codifications
#!/usr/bin/python2.7
# -*-coding:encodage -*

Les imports des librairies

Les instructions

Le langage Python passe, pour être exécuté sur deux étapes, la première UNE PRECOMPILATION génération du code
machine et finalement un écriture en code machine exécutable (selon la machine).

L’environnement d’exécution des scripts écrits en Python, regroupe les avantages des TRADUCTEURS (travaille en
ligne par ligne) et les COMPILATEURS (puissance de la structure algorithmique).

La bibliothèque cx_Freeze sert à transformer les fichiers scripts Pyhon .py en exécutable .exe.

51
52
Matrices & Systèmes
linéaires Soit la matrice A

0 1 2
 
A 3 4 5
6 7 8 
 
La matrice A (ARRAY), de trois (03) lignes trois
(03) colonnes (SHAPE), ci-dessous est le résultat
d’un système linéaire dont les équations sont
Ipython dans dépendantes (NDIM).
une Notebook Une matrice 3x3 de ‘1’ (2*ONES), multipliée par
Jupyter un scalaire égale à 2 donne un résultat matriciel
3x3 d’éléments égaux à 2.
La diagonale (DIAG) est un vecteur de trois
éléments [0, 4, 8].

Ipython dans
une fenêtre
console

53
Matrices & Systèmes
linéaires
SciPy et NumPy procure différentes fonctions pour former
des matrices speciales.
Les lignes de commande Terminal sont utilisées pour le
calcul des valeurs propres.

>>> import numpy as np


>>> from scipy import linalg
>>> A = np.array([[1, 2], [3, 4]])
>>> la, v = linalg.eig(A) Formation de
>>> l1, l2 = la matrice sous
>>> print l1, l2 # valeurs propres
(-0.372281323269+0j) (5.37228132327+0j) Numpy
>>> print v[:, 0] # premier vecteur propre
Manipulation de [-0.82456484 0.56576746]
matrice sous Scipy
>>> print v[:, 1] # second vecteur propre
[-0.41597356 -0.90937671]
>>> print np.sum(abs(v**2), axis=0) # vecteur propre sont
unitaires
[ 1. 1.]
>>> v1 = np.array(v[:, 0]).T
>>> print linalg.norm(A.dot(v1) - l1*v1) # vérification

54
3.23682852457e-16
55
Systèmes non-linéaires
SciPy.Optimize présente différentes stratégies pour
faire le traitement et l’optimisation de systèmes non
linéaire. Importation de la
Fonction
import numpy as np
from scipy.optimize import minimize
MINIMIZE
def rosen(x):
"""La fonction de Rosenbrock"""
return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)

x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])


Recherche de res = minimize(rosen, x0, method='nelder-mead', options={'xtol':
racines par 1e-8, 'disp': True})
print(res.x)
KRYLOV
Optimization terminated successfully.
Current function value: 0.000000
Iterations: 339
Function evaluations: 571
[ 1. 1. 1. 1. 1.]

56
57
Interpolation & Approximation des
données

Formation des Interpolation 1D


xi et yi Des xi et yi

58
Interpolation & Approximation des
données

59
60
Intégration & Différentiation

61
62
Le calcul scientifique

63
Références
L.-V. Bertallanfy, ‘General System Theory’, Edition MASSON, 1972.

64

Vous aimerez peut-être aussi