23/10/2014
1
Eric Lunéville
Unité de Mathématiques Appliquées
ENSTA ParisTech
1formation Scilab-CPGE
Objectifs de la formation
Dans le cadre de la réforme CPGE, nouveau thème
« Ingénierie numérique et simulation »
4 demi-journées : 1h de cours + 2h de travaux pratiques
2formation Scilab-CPGE
familiariser les étudiants avec un environnement de simulation numérique
utiliser des bibliothèques de calcul numérique pour développer et exécuter
des programmes numériques
faire programmer par les étudiants les algorithmes étudiés
illustrer les performances de différents algorithmes utilisées
aborder les aspects pratiques : impact des erreurs d’arrondi, conditions
d’arrêt, complexité en temps de calcul ou en stockage mémoire
Formation à Scilab = environnement de calcul scientifique développé par l’INRIA
Maîtriser les bases de cet environnement et appréhender quelques aspects
de la simulation numérique, vous permettant d’élaborer des contenus
pédagogiques pertinents
23/10/2014
2
Plan du cours
Introduction à Scilabrésolution de systèmes dynamiques, visualisation 1D
Schémas aux différences finiesapplication aux équations de transport et de Burgers
Résolution des problèmes de Laplacerésolution de systèmes linéaires, outil de visualisation 2D
Résolution de l’équation des ondesanimation, interfaces graphiques
3formation Scilab-CPGE
Introduction à Scilab
4formation Scilab-CPGE
Plateforme de calcul scientifique, pas de calcul symbolique
type Mathematica ou Mapple
« Langage » interprété, variables non typées
Manipulation des entiers, réels, complexes, chaine de
caractères, des vecteurs et des matrices
Contrôle d’exécution classique (test, boucle, fonctions, …)
Outils d’algèbre linéaire, de fonctions spéciales,
d’interpolation, de calculs d’intégrales, de résolution de
systèmes différentiels, d’optimisation, de statistiques, …
Outils de visualisation graphique et d’export
Multiplatforme (Windows, Mac Os, Linux)
Alternative gratuite à Matlab (Mathworks)
http://www.scilab.org/
23/10/2014
3
Environnement de calcul scientifique
5formation Scilab-CPGE
Dossiers,
fichiersConsole d’exécution
Suivi des
variables
Historique des
commandes
Aide
6formation Scilab-CPGE
Mode interactif : variables simples
ans est la variable contenant le résultat
concaténation de chaîne
erreur chaine + nombre ?
un entier
un réel
un complexe
Une chaîne de caractères
un booléen
ans est réutilisable
23/10/2014
4
7formation Scilab-CPGE
Variables prédéfinis
le complexe i
le réel e
le réel p
l’infini positif
précision réelle
Not A Number
8formation Scilab-CPGE
Vecteur et matrice
vecteur ligne 1x3
vecteur colonne 3x1
matrice 2x3
même matrice
• les vecteurs sont des « matrices »
• espace ou , comme séparateur de colonne
• saut de ligne ou ; comme séparateur de ligne
• concaténable :
matrices particulières : eye, ones, zeros
23/10/2014
5
9formation Scilab-CPGE
Autres structures
struct : liste de champ, valeur cell : matrice d’objets quelconques
list : liste d’objets quelconques
autres objets :
paramètres (parameter)
polynômes (poly)
fractions rationnelles (rational)
objets graphiques (handle)
voir type et typename
10formation Scilab-CPGE
Principaux opérateurs
opérateur signification
+ addition/concaténation
- soustraction
* produit
/ division à droite
^ puissance
= affectation
~ négation
== test égalité
~= test différence
> >= supérieur (ou égal) à
< <= Inférieur (ou égal) à
& et logique
| ou logique
opérateur signification
; séparateur ligne ou fin d’instruction
, séparateur colonne et liste d’arguments
.opération composante à composante
accès au champ d’une structure
‘séparateur de chaîne
et transposition/adjoint
‘’ séparateur de chaîne
\ division matricielle à gauche (x=A\b)
%variable prédéfinie
et surcharge d’opérateurs
[ ] définition d’une séquence
( )accès coefficients, liste arguments
et ordre des opérations
$ dernier index d’une ligne/colonne
:définition d’indices
ligne/colonne d’une matrice
.. saut de ligne dans une instruction
// ligne de commentaire
comportement usuel
attention avec les vecteurs
et matrices
23/10/2014
6
11formation Scilab-CPGE
Manipulation des vecteurs et matrices
vecteur ligne 1x4 de 1 à 4
vecteur ligne 1x4 de 3p à 0 par pas de p
produit scalaire (u,v) = v *tu
produit tv * u → A matrice 4x4
première ligne de A
lignes impaires et colonnes paires de A
12formation Scilab-CPGE
Manipulation des vecteurs et matrices
matrice * vecteur
inverse de A
division à gauche
résolution de Ax=b
déterminant de A
conditionnement de A
||A||2 ||A-1||2
trace de A
diagonalisation de A
Autres fonctions
Voir documentation
Algèbre linéaire
23/10/2014
7
13formation Scilab-CPGE
Calcul vectoriel
matrice * vecteur
inverse de A
utilisation de . devant * pour un calcul composante par composante
une fonction scalaire sur un vecteur retourne un vecteur de même taille
test sur un vecteur composante par composante
Calcul vectoriel plus efficace
14formation Scilab-CPGE
Quelques fonctions prédéfinies
fonctions description documentation
conj, real, imag, … Fonctions usuelles sur des complexes Nombres complexes
ceil, floor, round, fix, abs, ... Arrondis, … Virgule flottante
exp, log, log10, polar, sqrt Fonctions de type exp, log Exponentielle
sin, cos, tan, acos, asin, … Fonctions trigonométriques Trigonométrie
erf, gamma, bessel, … Fonctions spéciales Fonctions spéciales
matrix, resize_matrix,
permute, …Mise en forme de matrices Manipulation de matrices
min, max, norm, sum, tril,
triu, size, …Opérations sur des matrices Opérations matricielles
gsort, lex_sort, … Opérations de tri sur des vecteurs Chercher et trier
gcd, lcm, rat, factor, …Pgcd, ppcm, factorisation en facteur
premier, …Math. discrètes
bin2dec, dec2bin,.. Conversion dans différentes bases Base de numération
bitand, bitor, bitxor, … Opérations sur les bits Bitwise operations
intersect, union, …Opérations ensemblistes sur des
vecteurs
Opérations sur les
ensembles
evstr, strchr, strcmp,
strindex, strstr, …
Opérations sur les chaines de
caractèresChaines de caractères
grand Générateur aléatoire Randlib
23/10/2014
8
15formation Scilab-CPGE
Programmation
Le mode « programmation » s’appuie sur
• des fichiers de script exécutable (*.sce)
• des fichiers de script de fonction (*.sci)
fichiers éditables dans SciNotes
Exécution
du script
16formation Scilab-CPGE
Définition d’une fonction
function [x1,x2,…] =nom(a1,a2,…)
…
endfunction
Syntaxe générale
appel de mafonction
chargement des fonctions
23/10/2014
9
17formation Scilab-CPGE
Contrôle d’exécution
Les tests if expr1 then
instructions
else if expri then
instructions
....
else
instructions
end
select variable
case valeur1 then
instructions 1
case valeur2 then
instructions 2
...
case valeurn then
instructions n
[else instructions]
end
18formation Scilab-CPGE
Contrôle d’exécution
Les boucles for var = a : [s:] b [do]
instructions
end
while expression [do]
instructions
end
de a à b par pas de s
Les interruptions break : interruption d’une boucle
pause : pause de l’exécution
abort, error(msg) : interruption de l’exécution (avec message)
return, resume : sortie d’une fonction
23/10/2014
10
19formation Scilab-CPGE
Base de la visualisation graphique
Scilab propose des outils de représentation graphique 2D et 3D
(section Graphiques de la documentation)
dessin encapsulé dans un système d’axes encapsulé dans une figure
Principe général :
• Nombreuses options de
dessins (voir plot)
• Possibilités d’avoir plusieurs
dessins (voir subplot)
20formation Scilab-CPGE
Références
Sur le site de scilab
• Scilab_debutant.pdf
• introscilab.pdf
• scilabisnotnaive.pdf
• livret_maths_2013.pdf
• optimization_in_scilab.pdf
• introdiscreteprobas.pdf
• LHY_Tutorial_Gui.pdf
références de livres sur
http://www.scilab.org/fr/resources/documentation/books