Vous êtes sur la page 1sur 24

Initiation lanalyse

www.scilab.org
Initiation lanalyse
numrique sous Scilab
Guillaume Galliro
Bureau n335, btiment des sciences (3
me
)
1
Licence GEII, Matriaux, Physique 3
me
anne UFR Sciences et Techniques - UPPA
Bureau n335, btiment des sciences (3
me
)
Email: guillaume.galliero@univ-pau.fr
Partie 1
Les rudiments
2 Licence GEII, Matriaux, Physique 3
me
anne UFR Sciences et Techniques - UPPA
Prsentation gnrale
3 Licence GEII, Matriaux, Physique 3
me
anne UFR Sciences et Techniques - UPPA
Prsentation du langage Scilab
Cest lquivalent de Matlab mais gratuit et multi-plateformes (Windows,
Linux, Unix ). Actuellement version 5.3 (110 Mo). Linux, Unix ). Actuellement version 5.3 (110 Mo).
Il est actuellement dvelopp par un Consortium et un nombre non
ngligeable de contributions proviennent de contributeurs extrieurs.
Il est bas sur un langage interprt extensible.
La syntaxe de Scilab est simple, les donnes propres au calcul scientifique
(matrices) y sont dun maniement ais.
4
Scilab est avant tout ddi au calcul scientifique. Il permet daccder
facilement de nombreuses librairies numriques: calcul matriciel,
intgration numrique, optimisation, quations diffrentielles
Fentre Scilab en mode console
5
Pour effacer le texte de la console taper clc
Laide en ligne
Recherche de prcisions sur la syntaxe dune fonction
particulire: Menu droulant ? puis Aide de Scilab ou
instruction help instruction help
Ex help clear
Vous ne connaissez pas le nom de la fonction associe un
problme: instruction apropos
Ex apropos racine carre
6
Ex apropos racine carre
Vous voulez avoir une dmonstration des possibilits de
Scilab sur un sujet prcis: Menu droulant ? puis
Dmonstrations de Scilab
Les diffrents types de donnes
7 Licence GEII, Matriaux, Physique 3
me
anne UFR Sciences et Techniques - UPPA
Dfinition des variables
Il nest pas ncessaire de dfinir le type dune variable donne
avant de lui affect une grandeur contrairement au Fortran, C ... La
commande who permet dafficher lensemble des variables dj
affectes et linstruction clear permet deffacer laffectation des
variables
Les noms des variables doivent imprativement commencer par
une lettre mais peuvent contenir des lettres et des chiffres.
Minuscules et Majuscules permettent de diffrencier deux variables
Loprateur daffectation est le signe =
8
Par dfaut Scilab affiche le rsultat dune opration. Pour viter cet
affichage il faut mettre un ; la suite de linstruction
Le symbole // permet dintroduire des commentaires sa suite
Quelques exemples daffectation
--> a=2;
--> a
Point-virgule:
effectue le calcul sans afficher le rsultat
--> A=5;
--> A
--> b=a+A
--> c=3*a+2*A+a^2
--> B=15*(A+a^3+
--> 2*a);
un calcul sur plusieurs lignes
9
--> 2*a);
--> b+c+B // affect la variable ans
Si une opration nest pas affecte une variable le rsultat
est stock dans ans
--> %eps
Variables prdfinies
Elles sont dj connues de Scilab et ont une syntaxe du type %...
Quelques exemples:
%pi, %e : (3.1415927) et e (2.7182818)
--> 1/%eps
--> 1/%inf
--> %eps*%inf
--> sin (%pi/4)
--> 1+%i^2
%Inf, %NaN: et Not a Number
%eps: la prcision machine (2.2 10
-16
)
%i: partie complexe (tel que i=-1)
%T, %F : les boolens True et False
10
addition
soustraction
multiplication
Division
puissance
+
-
*
/
^
gal ?
infrieur ?
inf ou gal ?
sup ?
sup ou gal ?
diffrent ?
==
<
<=
>
>=
~=
Quelques Oprateurs
non
ou
et
~
|
&
Exercices I.1 et I.2
Les diffrents types de variables
Les Rels
Na = 6.022D23
Les Complexes
Z = 2.5 + 2/3*%i Z = 2.5 + 2/3*%i
Les Boolens
Test = (3<4) & (5>4)
Les Chanes de caractres
Figure= L analyse Numrique
Les Matrices et Vecteurs
A = 1:0.1:10
11
A = 1:0.1:10
Les Polynmes
P = 2*%s^2 + 3*%s +5
Les Fonctions
F = exp
Les Chanes de caractres
Elles sont dlimites par les caractres apostrophe ' ou
guillemets anglo-saxons " (qui sont quivalents)
Pour insrer une apostrophe ou des guillemets, il faut
doubler lapostrophe ou les guillemets doubler lapostrophe ou les guillemets
Les oprateurs de bases sont:
La concatnation, note +
La longueur de chane, note length
Lextraction dune partie de la chane, note part
La transformation en chane, note string
12
La transformation en chane, note string
Exemples
--> S="une chane avec <<"'>>"
--> question1="Scilab c"'est '"cool'"?"
--> question2='Scilab c''est ""cool""?'
--> length(question1)
Scilab possde un type polynme qui permet deffectuer des
oprations sur les polynmes et les fractions rationnelles
Il existe par dfaut un polynme lmentaire, %s qui permet de
Les Polynmes
Il existe par dfaut un polynme lmentaire, %s qui permet de
dfinir un polynme: p= %s^2+2*%s-3
On peut construire un polynme dune variable quelconque laide
de la fonction poly
poly([1 -3], " x ") //on indique les racines
poly([1 2 -3], " t ", " coeff ") //on indique les coefficients
Les fractions rationnelles sont des quotients de polynmes. Scilab
effectue automatiquement les simplifications quil reconnat.
13
Quelques fonctions associes:
coeff coefficients dun polynme
degree degr du polynme
derivat drive dun polynme
roots racines dun polynme
Les fonctions prdfinies
Fonctions usuelles argument rel
sin(), cos(), tan(),
asin(), acos(), atan(),
exp(), log(), log10(), abs(), sqrt()
Autres fonctions
round() arrondi lentier le plus proche
floor() partie entire (entier infrieur)
ceil() le plus petit entier suprieur
Fonctions pour les complexes
abs() module
14
abs() module
real() partie relle
imag() partie imaginaire
conj() conjugu
phasemag() argument (en degrs)
sqrt() racine carre
Les vecteurs et matrices (1)
Les matrices sont les lments de base de Scilab.
Ils sont dclars entre crochets. Les espaces (ou virgules) sparent
chaque lment dune mme ligne, les lignes sont spares par des
points virgules points virgules
A = [ 1 2 3; 4 5 6; 7 8 9] // Matrice 3x3
b = [1 4 8] //Vecteur ligne
C = [1; 8; 16.5] //Vecteur colonne
C //Transpose du vecteur C
On fait rfrence une valeur dans une matrice en indiquant entre
parenthse les numro de ligne et colonne:
15
parenthse les numro de ligne et colonne:
A(1,2) //Renvoi la valeur situe la ligne 1, colonne 2
A(1,1:2) //Renvoi les deux premiers lments de la 1
re
ligne
A(:,3) //Renvoi les valeurs de la 3
me
colonne
A(1,$) //Renvoi la dernire valeur de la 1
re
ligne
triu(A) //Renvoi la matrice triangulaire suprieure (tril, inf)
Les vecteurs et matrices (2)
Fonctions de construction de matrices
eye matrice identit de dimension (m,n)
Ex: eye(4,4)
ones matrice pleine de uns ones matrice pleine de uns
Ex: ones(2,6)
zeros matrice de zros
Ex: zeros(6,2)
Linspace vecteur valeurs rgulirement espaces
Ex: X=linspace(0,1,11) //(min,max,nb_de_val)
Y=0:0.3:1 // min:incrment:max
rand matrice compos de nombres alatoires
16
rand matrice compos de nombres alatoires
Ex: rand(3,3)
diag matrice diagonale
Ex: diag(rand(3,1))
matrix modifie la forme dune matrice
Ex: matrix([1 2 3 4 5 6],2,3)
Lors dopration sur les matrices il faut vrifier que les dimensions
sont compatibles. Linstruction size fourni la taille dune matrice.
size(A) //Nombre de lignes et colonnes
size(A, " r ") //Nombre de lignes (r=row)
Oprations avec les matrices
size(A, " r ") //Nombre de lignes (r=row)
size(A, " c ") //Nombre de colonnes
size(A, " * ") //Nombre dlments de la matrice A
Pour lexemple suivant size(A)=size(B)
A+B //Addition terme terme des composantes de A et B
A-B //Soustraction terme terme
A*B //Produit matriciel
17
A*B //Produit matriciel
A.*B //Produit terme terme des composantes de A et B
inv(A) //Inverse de la matrice A
A^2 //Produit matriciel A*A
A //Transpose dune matrice
Fonctions Vectorielles appliques aux matrices
Elles sappliquent lensemble dun vecteur ou dune matrice et
retourne un scalaire. Pour appliquer une telle fonction colonne par
colonne ou ligne par ligne, il faut rajouter loption "r" ou "c"
Fonctions:
max, min maximum, minimum max, min maximum, minimum
gsort tri, ordres particuliers
sum, prod somme, produit
cumsum, cumprod sommes cumules, produits cumuls
mean moyenne
st_deviation cart type
find slection en fonction dun critre (indices)
--> A=[1,2,3;4,5,6]
--> x=rand(1,5)
18
--> sum(A)
--> sum(A,"c")
--> cumsum(A,"r")
--> find(A>3.5)
--> A(find(A>3.5))
--> mean(x)
--> st_deviation(x)
--> gsort(x)
--> gsort(x,"c","i")
Dfinir une fonction
Lutilisation de Scilab consiste en gnral tendre le langage par
de nouvelles fonctions, dfinies par des squences dinstructions.
Pour cela on utilise linstruction deff ou bien lon cre un
programme dfinissant une fonction (que nous verrons plus tard)
deff
programme dfinissant une fonction (que nous verrons plus tard)
deff("y=cubr(a)","y=a^(1/3)")
cubr(27)
cubr(55)^3
19
deff("y=funct(x)","y=x*sin(x)")
funct(0)
funct(%pi/2)
funct(%pi)
Exercices I.3, I.4, I.5
Les graphiques
20 Licence GEII, Matriaux, Physique 3
me
anne UFR Sciences et Techniques - UPPA
Exemples de graphiques
21/01/2011 21
Reprsenter une courbe 2D
Pour tracer le graphe dune fonction ( une variable) de rels on
utilise linstruction plot (ou plot2d)
On cre un vecteur x dabscisses, puis un vecteur y dordonnes
dduit de la fonction que lon applique x.
La commande plot(x,y) reprsente les points de coordonnes
(x(i),y(i)) en les joignant par des traits noirs (par dfaut)
La commande clf permet deffacer la fentre graphique
Exemples:
x=linspace(0,3*%pi,10); y=x.*sin(x); plot(x,y)
x=linspace(0,3*%pi,100); y=x.*sin(x); plot2d(x,y,r)
21/01/2011 22
Dans le cas dune fonction pralablement dfinie
deff("y=f(x)","y=x.*sin(x)")
x=linspace(0,3*%pi,100); fplot2d(x,f) //ou plot(x,f)
Reprsenter une courbe 2D
La fonction xtitle permet daffecter un titre au graphique ainsi que
des labels labscisse et lordonne
La fonction legend permet de crer un lgende
Toutes les fonctionnalits sont accessibles partir du menu edition
de la fentre associe la courbe
Exemple:
clf;
x=-1:0.1:1;
21/01/2011 23
y=x.^2; y1=1-x.^2; y2=2*x.^2;
plot(x,y,'b',x,y1,'r',x,y2,'g');
xtitle('Courbes','x','y');
legend('x^2','1-x^2','2x^2');
Les courbes 3D
La fonction plot3d permet de construire des figures 3D
Exemple:
clf;
plot3d(1:100,1:100,100*rand(100,100)); plot3d(1:100,1:100,100*rand(100,100));
xtitle('Du bruit blanc','x', 'y', 'z');
21/01/2011 24
Exercices I.6

Vous aimerez peut-être aussi