intro scilab 2p - UMA

23/10/2014
Eric Lunéville
Unité de Mathématiques Appliquées
ENSTA ParisTech
formation Scilab-CPGE
1
Objectifs de la formation
Dans le cadre de la réforme CPGE, nouveau thème
« Ingénierie numérique et simulation »
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
4 demi-journées : 1h de cours + 2h de travaux pratiques
formation Scilab-CPGE
2
1
23/10/2014
Plan du cours

Introduction à Scilab
résolution de systèmes dynamiques, visualisation 1D

Schémas aux différences finies

Résolution des problèmes de Laplace
application aux équations de transport et de Burgers
résolution de systèmes linéaires, outil de visualisation 2D

Résolution de l’équation des ondes
animation, interfaces graphiques
formation Scilab-CPGE
3
Introduction à Scilab







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)
http://www.scilab.org/
Alternative gratuite à Matlab (Mathworks)
formation Scilab-CPGE
4
2
23/10/2014
Environnement de calcul scientifique
Aide
Console d’exécution
Dossiers,
fichiers
Suivi des
variables
Historique des
commandes
formation Scilab-CPGE
5
Mode interactif : variables simples
ans est la variable contenant le résultat
un entier
ans est réutilisable
un réel
concaténation de chaîne
un complexe
un booléen
Une chaîne de caractères
erreur chaine + nombre ?
formation Scilab-CPGE
6
3
23/10/2014
Variables prédéfinis
le complexe i
le réel e
le réel p
précision réelle
l’infini positif
Not A Number
formation Scilab-CPGE
7
Vecteur et matrice
• les vecteurs sont des « matrices »
• espace ou , comme séparateur de colonne
vecteur ligne 1x3
• saut de ligne ou ; comme séparateur de ligne
•
concaténable :
vecteur colonne 3x1
matrice 2x3
même matrice
matrices particulières : eye, ones, zeros
formation Scilab-CPGE
8
4
23/10/2014
Autres structures
cell : matrice d’objets quelconques
struct : liste de champ, valeur
list : liste d’objets quelconques
autres objets :
paramètres (parameter)
polynômes (poly)
fractions rationnelles (rational)
objets graphiques (handle)
voir type et typename
formation Scilab-CPGE
9
Principaux opérateurs
opérateur
signification
opérateur
signification
+
addition/concaténation
;
séparateur ligne ou fin d’instruction
-
soustraction
,
séparateur colonne et liste d’arguments
*
produit
.
opération composante à composante
accès au champ d’une structure
‘
séparateur de chaîne
et transposition/adjoint
/
division à droite
^
puissance
=
affectation
‘’
séparateur de chaîne
~
négation
\
division matricielle à gauche (x=A\b)
==
test égalité
~=
%
test différence
variable prédéfinie
et surcharge d’opérateurs
> >=
supérieur (ou égal) à
[]
définition d’une séquence
< <=
Inférieur (ou égal) à
()
accès coefficients, liste arguments
et ordre des opérations
&
et logique
$
dernier index d’une ligne/colonne
|
ou logique
:
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
formation Scilab-CPGE
10
5
23/10/2014
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
formation Scilab-CPGE
11
Manipulation des vecteurs et matrices
division à gauche
résolution de Ax=b
déterminant de A
matrice * vecteur
conditionnement de A
||A||2 ||A-1||2
Autres fonctions
Voir documentation
Algèbre linéaire
trace de A
inverse de A
diagonalisation de A
formation Scilab-CPGE
12
6
23/10/2014
Calcul vectoriel
une fonction scalaire sur un vecteur retourne un vecteur de même taille
utilisation de . devant * pour un calcul composante par composante
matrice * vecteur
inverse de A
test sur un vecteur composante par composante
Calcul vectoriel plus efficace
formation Scilab-CPGE
13
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ères
Chaines de caractères
grand
Générateur aléatoire
Randlib
formation Scilab-CPGE
14
7
23/10/2014
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
formation Scilab-CPGE
15
Définition d’une fonction
Syntaxe générale
function [x1,x2,…] =nom(a1,a2,…)
…
endfunction
chargement des fonctions
appel de mafonction
formation Scilab-CPGE
16
8
23/10/2014
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
formation Scilab-CPGE
17
Contrôle d’exécution
Les boucles
for var = a : [s:] b [do]
instructions
end
de a à b par pas de s
while expression [do]
instructions
end
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
formation Scilab-CPGE
18
9
23/10/2014
Base de la visualisation graphique
Scilab propose des outils de représentation graphique 2D et 3D
(section Graphiques de la documentation)
Principe général :
dessin encapsulé dans un système d’axes encapsulé dans une figure
• Nombreuses options de
dessins (voir plot)
• Possibilités d’avoir plusieurs
dessins (voir subplot)
formation Scilab-CPGE
19
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
formation Scilab-CPGE
20
10