Professional Documents
Culture Documents
Scilab Enterprises S.A.S - 143 bis rue Yves Le Coz - 78000 Versailles - www.scilab-enterprises.com
Ce
document
a
t
co-crit
par
Scilab
Enterprises
et
Christine
Gomez,
professeur
de
mathmatiques
au
lyce
Descartes
Antony,
Hauts-de-Seine.
2013
Scilab
Enterprises.
Tous
droits
rservs
Introduction
propos
de
ce
document
4
Installation
de
Scilab
4
Liste
de
diffusion
et
dinformation
4
Ressources
complmentaires
4
Chapitre
2
-
Programmer
Variables,
affectation
et
affichage
12
Les
boucles
16
Les
tests
17
Les
tracs
en
2
et
3
dimensions
18
Complments
sur
les
matrices
et
les
vecteurs
23
Problmes
de
prcision
29
Rsolutions
dquations
diffrentielles
30
Introduction
propos
de
ce
document
Lobjectif
de
ce
document
est
de
vous
guider
pas
pas
dans
la
dcouverte
des
diffrentes
fonctionnalits
de
base
du
logiciel
Scilab
pour
un
utilisateur
nayant
jamais
utilis
un
logiciel
de
calcul.
Cette
prsentation
se
limite
volontairement
lessentiel
pour
permettre
une
prise
en
main
facilite
de
Scilab.
Les
calculs,
graphiques
et
illustrations
sont
raliss
avec
Scilab
5.4.0.
Vous
pouvez
donc
reproduire
toutes
les
commandes
prsentes
partir
de
cette
version.
Installation
de
Scilab
Scilab
est
un
logiciel
de
calcul
numrique
que
chacun
peut
tlcharger
gratuitement.
Disponible
sous
Windows,
Linux
et
Mac
OS
X,
Scilab
est
tlchargeable
ladresse
suivante
:
http://www.scilab.org/
Vous
pouvez
tre
averti
des
sorties
de
nouvelles
versions
du
logiciel
Scilab
en
vous
inscrivant
sur
notre
canal
de
notification
ladresse
suivante
:
http://lists.scilab.org/mailman/listinfo/release
Ressources
complmentaires
Si
vous
disposez
dune
connexion
Internet,
vous
pouvez
accder
au
site
Web
de
Scilab
sur
lequel
vous
trouverez
une
rubrique
consacre
lutilisation
de
Scilab
(http://www.scilab.org/support/documentation),
avec
des
liens
et
des
documents
utiles
pouvant
tre
tlchargs
et
imprims
librement.
Dans
la
console,
aprs
linvite
de
commande
-->
,
il
suffit
de
saisir
une
commande
et
dappuyer
sur
la
touche
Entre
(Windows
et
Linux)
ou
Retour
(Mac
OS
X)
du
clavier
pour
obtenir
le
rsultat
correspondant.
--> 57/4
ans
=
14.25
--> (2+9)^5
ans
=
161051.
noter
Devant
le
rsultat,
ans
saffiche
pour
answer
(
rponse
en
anglais).
Il
est
possible
de
revenir
en
arrire
tout
moment,
avec
les
flches
du
clavier
ou
avec
la
souris,
les
touches
gauche
et
droite
permettant
de
modifier
les
instructions,
et
les
touches
haut
et
bas
donnant
la
possibilit
de
revenir
sur
une
commande
prcdemment
excute.
=
5.4
Il
est
ncessaire
de
bien
respecter
la
casse
(majuscules
et
minuscules)
pour
que
les
calculs
seffectuent
correctement.
Par
exemple,
avec
la
commande
sqrt
qui
permet
de
calculer
la
racine
carre
:
-->sqrt(9)
ans
alors que :
-->SQRT(9)
!--error 4
3.
Des
nombres
particuliers
%e
et
%pi
reprsentent
respectivement
e
et
:
--> %e
%e
--> %pi
%pi
2.7182818
=
3.1415927
%i
reprsente
la
variable
complexe
i
en
entre
et
saffiche
i
en
sortie
:
--> 2+3*%i
ans
=
2. + 3.i
Pour
ne
pas
afficher
le
rsultat
En
ajoutant
un
point-virgule
;
la
fin
dune
ligne
de
commande,
le
calcul
seffectue
mais
le
rsultat
ne
saffiche
pas.
-->(1+sqrt(5))/2;
--> (1+sqrt(5))/2
ans
=
1.618034
=
0.0060699
noter
Les
fonctions
disponibles
sont
galement
listes
dans
laide
accessible
en
cliquant
sur
?
>
Aide
de
Scilab
dans
la
barre
des
menus.
Il
est
possible
dutiliser
la
touche
tabulation
de
son
clavier
pour
complter
len
nom
dune
fonction
ou
dune
variable
dont
on
a
donn
les
premires
lettres.
Par
exemple,
si
lon
tape
dans
la
console
:
-->fact
et
que
lon
tape
sur
la
touche
tabulation,
une
petite
fentre
apparat
permettant
de
choisir
entre
toutes
les
fonctions
et
noms
de
variables
commenant
par
fact,
comme
factorial
et
factor.
Il
suffit
alors
de
double-cliquer
sur
la
fonction
souhaite
ou
de
la
slectionner
avec
la
souris
ou
les
touches
et
dappuyer
sur
la
touche
Entre
(Windows
et
Linux)
ou
Retour
(Mac
OS
X)
pour
linsrer.
La
barre
de
menus
Vous
serez
amen
utiliser
tout
particulirement
les
menus
lists
ci-dessous.
Applications
Lhistorique
des
commandes
permet
de
retrouver
toutes
les
commandes
des
sessions
prcdentes
et
de
la
session
courante.
Le
navigateur
de
variables
permet
de
retrouver
toutes
les
variables
utilises
prcdemment
au
cours
de
la
mme
session.
dition
Prfrences
(dans
le
menu
Scilab
sous
Mac
OS
X)
permet
de
rgler
et
de
personnaliser
les
couleurs,
les
polices
et
la
taille
des
caractres
dans
la
console
et
dans
lditeur,
ce
qui
est
trs
utile
quand
on
projette
sur
un
cran.
Cliquez
sur
Effacer
la
console
pour
effacer
tout
le
contenu
de
la
console.
Dans
ce
cas,
lhistorique
est
conserv
et
les
calculs
effectus
lors
de
la
session
restent
en
mmoire.
Vous
pourrez
toujours
revenir
sur
une
commande
qui
a
t
efface
en
utilisant
les
flches
du
clavier.
Contrle
Pour
interrompre
un
programme
en
cours
dexcution,
on
peut
:
Taper
pause
dans
le
programme
ou
cliquer
sur
Contrle
>
Interrompre
dans
la
barre
de
menus
(Ctrl
X
sous
Windows
et
Linux
ou
Commande
X
sous
Mac
OS
X),
si
le
programme
est
dj
lanc.
Dans
tous
les
cas,
linvite
de
commande
-->
se
transformera
en
-1->
,
puis
en
-2->
,
si
lopration
est
rpte.
Pour
revenir
au
moment
de
linterruption
du
programme,
taper
resume
dans
la
console
ou
cliquer
sur
Contrle
>
Reprendre.
Pour
arrter
dfinitivement
un
calcul
sans
possibilit
de
retour,
taper
abort
dans
la
console
ou
cliquer
sur
Contrle
>
Abandonner
dans
la
barre
de
menus.
Lditeur
Taper
directement
dans
la
console
a
deux
inconvnients
:
lenregistrement
nest
pas
possible,
et
si
plusieurs
lignes
dinstructions
ont
t
tapes,
les
modifications
ne
sont
pas
aises.
Pour
enchaner
plusieurs
instructions,
lditeur
est
loutil
appropri.
Ouvrir
lditeur
Pour
ouvrir
lditeur
partir
de
la
console,
cliquez
sur
la
premire
icne
doutils
ou
sur
Applications
>
SciNotes
dans
la
barre
de
menus.
dans la barre
Lditeur
souvre
avec
un
fichier
par
dfaut
qui
sintitule
Sans titre 1
.
crire
dans
lditeur
On
tape
du
texte
dans
lditeur
comme
dans
nimporte
quel
traitement
de
texte.
Dans
lditeur
de
texte,
lapparition
des
parenthses,
ouvrantes
et
fermantes,
et
des
commandes
de
fin
de
boucle,
de
fonction
et
de
test
est
automatique.
On
peut
cependant
dsactiver
ces
deux
fonctionnalits
dans
le
menu
Options
>
Compltion
automatique,
en
cliquant
sur
les
deux
entres
ci-dessous
actives
par
dfaut
:
(,[,
if,function,
En
principe,
il
faut
aller
la
ligne
aprs
chaque
instruction,
mais
il
est
possible
de
taper
plusieurs
instructions
sur
une
mme
ligne
en
les
sparant
par
un
point-virgule
;
.
Un
dcalage
de
dbut
de
ligne
appel
indentation
se
fait
automatiquement
lorsquon
commence
une
boucle
ou
un
test.
Dans
lexemple
suivant,
on
calcule
10
termes
de
la
suite
(! )
dfinie
par
:
! = 1
!!! = 2! 3
noter
-
Pour
crire
des
commentaires
qui
ne
seront
pas
pris
en
compte
dans
les
calculs,
les
faire
prcder
de
//
.
-
Pour
c hanger
la
police,
cliquez
sur
Options
>
Prfrences.
-
lcriture
dun
programme,
lindentation
est
automatique.
Si
toutefois
cela
ntait
pas
le
cas,
cliquez
sur
Format
>
Corriger
lindentation
pour
la
rtablir
(Ctrl
I
sur
Windows
et
Linux
ou
Commande
I
sur
Mac
OS
X).
Enregistrer
Il
est
possible
denregistrer
tout
fichier
en
cliquant
sur
Fichier
>
Enregistrer
sous.
Lextension
.sce
la
fin
du
nom
de
fichier
dclenchera
automatiquement
le
lancement
de
Scilab
louverture
du
fichier
(except
sous
Linux
et
Mac
OS
X).
Copier
dans
la
console,
excuter
le
programme
En
cliquant
sur
Excuter
dans
la
barre
de
menus,
trois
options
sont
proposes
:
Excuter
fichier
sans
cho
(Ctrl
Maj
E
sous
Windows
et
Linux,
Cmd
Maj
E
sous
Mac
OS
X)
:
le
fichier
est
excut
sans
que
le
programme
ne
scrive
dans
la
console
(en
ayant
enregistr
le
fichier
au
pralable).
Excuter
fichier
avec
cho
(Ctrl
L
sous
Windows
et
Linux,
Cmd
L
sous
Mac
OS
X)
:
rcrit
le
fichier
dans
la
console
et
lexcute.
Excuter
jusquau
curseur,
avec
cho
(Ctrl
E
sous
Windows
et
Linux,
Cmd
E
sous
Mac
OS
X)
:
rcrit
la
slection
choisie
avec
la
souris
dans
la
console
et
lexcute
ou
excute
les
donnes
du
fichier
jusqu
la
position
du
curseur
dfinie
par
lutilisateur).
On
peut
aussi
utiliser
le
copier/coller
classique.
La
fentre
graphique
Ouvrir
une
fentre
graphique
Une
fentre
graphique
souvre
pour
tout
trac.
Il
est
possible
de
tracer
des
courbes,
des
surfaces
et
des
nuages
de
points
(voir
le
chapitre
2,
page
18).
On
obtient
un
exemple
de
courbe
en
tapant
dans
la
console
:
-->plot
noter
-
Pour
effacer
le
trac
prcdent,
tapez
clf
(
clear
figure
en
anglais).
-
Pour
ouvrir
une
autre
fentre
graphique,
tapez
scf;
(
set
current
figure
en
anglais).
Si
plusieurs
fentres
graphiques
ont
t
ouvertes,
on
peut
choisir
celle
dans
laquelle
on
veut
faire
son
trac
en
tapant
scf(n);
o
n
est
le
numro
de
la
fentre
(indiqu
en
haut
gauche).
Modifier
un
trac
La
loupe
permet
de
faire
un
zoom.
Pour
effectuer
un
zoom
en
deux
dimensions,
cliquez
sur
licne
et
avec
la
souris
crez
un
rectangle
qui
constituera
la
nouvelle
vue
agrandie.
Pour
effectuer
un
zoom
en
trois
dimensions,
cliquez
sur
licne
et
crez
le
paralllpipde
qui
constituera
la
nouvelle
vue
agrandie.
Il
est
galement
possible
de
zoomer
en
utilisant
la
mollette
de
la
souris.
Pour
revenir
lcran
initial,
cliquez
sur
lautre
loupe
Licne
permet
de
faire
tourner
la
figure
(particulirement
utile
en
3D)
avec
des
actions
de
clic
droit
qui
seront
guides
par
des
messages
en
bas
de
la
fentre.
Pour
des
modifications
plus
prcises,
cliquez
sur
dition
>
Proprits
de
la
figure
ou
Proprits
des
axes
et
laissez-vous
guider
(cette
option
nest
pas
encore
disponible
sous
Mac
OS
X).
Laide
en
ligne
Pour
accder
laide
en
ligne,
cliquez
sur
?
>
Aide
Scilab
dans
la
barre
de
menus,
ou
tapez
dans
la
console
:
-->help
noter
Une
partie
de
laide
est
disponible
en
franais,
le
reste
est
en
anglais.
Des
exemples
dutilisation
peuvent
tre
excuts
dans
Scilab
et
dits
dans
SciNotes
en
utilisant
les
boutons
associs
dans
le
cadre
de
lexemple.
Pour
obtenir
de
laide
sur
des
fonctions,
tapez
dans
la
console
help
et
le
nom
de
la
fonction
souhaite.
Par
exemple
:
-->help sin
Sous
Windows
et
Linux,
cliquez
sur
cette
barre
avec
le
bouton
gauche
de
la
souris,
et,
en
maintenant
ce
bouton
enfonc,
dplacez
la
flche
de
la
souris
dans
la
fentre
souhaite.
Sous
Mac
OS
X,
cliquez
sur
cette
barre
et,
en
maintenant
le
clic
sur
la
souris,
dplacez-la
dans
la
fentre
souhaite.
Chapitre
2
-
Programmer
Dans
les
exemples
donns
dans
ce
document,
toute
ligne
prcde
de
-->
est
une
commande,
les
autres
lignes
sont
les
retours
(rsultats
de
calcul,
messages
derreur).
Il
ne
faut
pas
crire
-->
dans
lditeur.
Nous
lavons
introduit
uniquement
pour
bien
diffrencier
les
lignes
de
commande
des
retours
de
calculs,
laffichage
se
faisant
ainsi
dans
la
console
aprs
un
copier/coller.
Prsentes
dans
un
tableau
(sans
-->
et
sans
retour
de
calcul),
les
commandes
sont
donc
reprsentes
telles
quelles
devront
tre
tapes
dans
lditeur.
Variables,
affectation
et
affichage
Les
variables
Scilab
nest
pas
un
logiciel
de
calcul
formel.
Il
calcule
uniquement
avec
des
nombres.
Tous
les
calculs
sont
en
ralit
faits
avec
des
matrices,
mais
cela
peut
passer
inaperu.
Bien
que
la
notion
de
matrice
ne
soit
pas
connue,
on
utilise
les
vecteurs
et
les
suites
de
nombres
qui
sont,
en
fait,
des
matrices
1
n
ou
n
1,
de
mme
quun
nombre
est
une
matrice
de
dimension
1
1.
Les
variables
nont
pas
besoin
dtre
dclares
lavance,
mais
toute
variable
doit
avoir
une
valeur.
Par
exemple,
demander
la
valeur
de
la
variable
a
sans
lui
avoir
donn
de
valeur
auparavant,
produit
une
erreur
:
-->a
!--error 4
Variable non dfinie : a
Si
lon
affecte
une
valeur
la
variable
a,
il
ny
a
plus
derreur
:
--> a=%pi/4
a
=
0.7853982
--> a
a
=
0.7853982
On
peut
utiliser
nimporte
quel
nom
de
variable
qui
nest
pas
dj
dfini
par
le
systme
:
--> Pisur2=%pi/2
Pisur2
1.5707963
noter
Tout
comme
les
fonctions
Scilab,
un
nom
de
v ariable
ne
doit
pas
comporter
daccents
ou
de
caractres
spciaux.
Si
lon
naffecte
pas
le
rsultat
dun
calcul
une
variable,
la
valeur
sera
affecte
automatiquement
la
variable
appele
ans
:
-->3*(4-2)
ans
=
6.
-->ans
ans
=
6.
Les
fonctions
Les
fonctions
sont
le
moyen
le
plus
simple
et
le
plus
naturel
pour
faire
des
calculs
partir
de
variables
et
obtenir
des
rsultats
partir
de
celles-ci.
La
dfinition
dune
fonction
commence
par
function
et
finit
par
endfunction.
Par
exemple,
pour
transformer
des
euros
(e)
en
dollars
(d)
avec
un
taux
de
change
(t),
dfinissons
la
fonction
dollars.
Les
variables
sont
e
et
t
et
limage
est
d.
-->function d=dollars(e,t); d=e*t; endfunction
-->dollars(200,1.4)
ans
=
280.
Le
plus
souvent,
on
utilise
des
fonctions
numriques
une
variable.
Par
exemple,
deux
fonctions
f
et
g
sont
dfinies
laide
des
commandes
ci-dessous
:
-->function y=f(x); y=36/(8+exp(-x)); endfunction
noter
Les
variables
x
et
y
sont
des
variables
muettes,
leurs
noms
pouvant
tre
rutiliss
dans
la
dfinition
dautres
fonctions
ou
dans
Scilab.
Les
fonctions
ayant
t
dfinies,
elles
peuvent
tre
utilises
pour
calculer
des
valeurs
:
--> f(10)
ans
=
4.4999745
--> g(12.5)
ans
=
9.5555556
=
3.
- 2.
5.
Pour
dfinir
un
vecteur
ligne
et
obtenir
un
affichage
en
ligne
:
-->v=[3,-2,5]
v
noter
Il
est
aussi
possible
de
taper
cette
commande
sous
la
forme
:
v=[3 -2 5]
=
3.
- 2.
5.
Pour
dfinir
une
matrice
et
afficher
un
tableau
:
-->m=[1 2 3;4 5 6;7 8 9]
m
=
1.
2.
3.
4.
5.
6.
7.
8.
9.
noter
Il
est
aussi
possible
de
taper
cette
commande
sous
la
forme
:
m=[1,2,3;4,5,6;7,8,9]
La
fonction
disp
La
fonction
disp
est
toujours
suivie
de
parenthses.
Avec
le
vecteur
v
prcdent
:
-->v(2)
ans
- 2.
-->disp(v(2))
- 2.
Pour
afficher
une
chane
de
caractres
(en
gnral
une
phrase),
on
la
met
entre
guillemets
:
-->disp("Bob a gagn")
Bob a gagn
Pour
mlanger
des
mots
et
des
valeurs,
utilisez
la
commande
string
qui
transforme
les
valeurs
en
caractres,
et
+
entre
les
diffrentes
parties
:
-->d=500;
Si
la
phrase
contient
une
apostrophe,
il
est
ncessaire
de
la
doubler
dans
la
chane
de
caractres
pour
quelle
saffiche
correctement
:
-->afficher("C''est juste")
C'est juste
Les
boucles
Lincrmentation
Loprateur
:
permet
de
dfinir
des
vecteurs
de
nombres
dont
les
coordonnes
sont
en
suite
arithmtique.
On
donne
la
premire
valeur
:
le
pas
:
la
dernire
valeur
(pas
forcment
atteinte).
Si
le
pas
nest
pas
mentionn,
sa
valeur
est
1
par
dfaut.
Par
exemple,
pour
dfinir
un
vecteur
ligne
dentiers
qui
sincrmentent
de
1
entre
3
et
10
:
-->3:10
ans
=
3.
4.
5.
6.
7.
8.
9.
10.
=
1.
3.
5.
7.
9.
Scilab
pour
les
vrais
dbutants
-
15/33
=
20.
16.
12.
8.
4.
For
La
structure
de
boucle
la
plus
simple
pour
un
nombre
connu
ditrations
scrit
avec
for
end
qui
signifie
Pour
fin
de
pour
.
Exemple
:
Calcul
de
20
termes
dune
suite
dfinie
par
rcurrence
par
:
! = 4
!!! = ! + 2 + 3
Algorithme
diteur Scilab
u(1)=4;
Pour n allant de 1 20
for n=1:20
u(n+1)= u(n)+2*n+3;
Afficher n et u(n)
disp([n,u(n)])
Fin de pour
end
While
Si
lon
veut
que
la
boucle
sarrte
lorsquun
objectif
donn
est
atteint,
on
utilisera
la
forme
while end
qui
signifie
Tant
que
fin
de
tant
que
.
Exemple
:
Jai
replant
en
2005
un
sapin
de
Nol
qui
mesurait
1,20
m.
Il
grandit
de
30
cm
par
an.
Jai
dcid
de
le
couper
quand
il
dpasserait
7
m.
En
quelle
anne
vais-je
couper
mon
sapin
?
Algorithme
diteur
Scilab
Mettre
1,2
dans
h
(h
=
hauteur
du
sapin)
Mettre
2005
dans
a
(a
=
anne)
Tant
que
h<7
h
prend
la
valeur
h+0,3
(mon
sapin
grandit)
a
prend
la
valeur
a+1
(une
anne
se
passe)
Fin
de
tant
que
Afficher
a
(la
dernire
anne)
h=1.2;
a=2005;
while h<7
h=h+0.3;
a=a+1;
end
disp("Je couperai mon..
sapin en "+string(a))
noter
Quand
une
commande
est
trop
longue
pour
tre
crite
sur
une
seule
ligne,
lditeur
va
automatiquement
la
ligne.
On
peut
aussi
mettre
..
(deux
points)
avant
daller
la
ligne.
Les
tests
Les
oprateurs
de
comparaison
Comparer
des
nombres
ou
vrifier
si
une
affirmation
est
vraie
ou
fausse
sont
des
tests
utiles.
Voici
les
commandes
correspondantes
:
gal
Diffrent
Infrieur
Suprieur
Infrieur
ou
gal
Suprieur
ou
gal
==
<>
<
>
<=
>=
Vrai
Faux
Et
Ou
Non
%T
%F
&
noter
Attention
la
prcision.
Les
calculs
faits
tant
approchs,
le
test
==
donne
parfois
des
rponses
fausses
(voir
les
problmes
de
prcision,
page
30).
Lorsque
lon
veut
comparer
deux
vecteurs
(ou
deux
matrices),
les
tests
==
et
<>
comparent
terme
terme.
Par
exemple
:
-->X=[1,2,5]; Y=[5,3,5];
-->X==Y
ans
F F T
Pour
tester
si
deux
vecteurs
sont
gaux,
on
utilise
isequal,
et
sils
sont
diffrents,
~isequal
:
-->isequal(X,Y)
ans
-->~isequal(X,Y)
ans
Ifthen
Les
structures
classiques
sont
les
suivantes
:
if then
doivent
tre
crits
sur
la
mme
ligne,
de
mme
que
elseif then.
Scilab
pour
les
vrais
dbutants
-
17/33
On
peut
simuler
un
lancer
et
calculez
le
gain
dAlice,
en
utilisant
les
fonctions
:
Algorithme
diteur
Scilab
D=grand(1,3,"uin",1,6);
if D==[6,6,6] then
G=20;
else
Sinon
G=0;
end
Fin de si
Les couleurs
"b"
=
bleu
(par
dfaut),
"k"
=
noir,
"r"
=
rouge,
"g"
=
vert,
"c"
=
cyan,
"m"
=
magenta,
"y"
=
jaune,
"w"
=
blanc.
Tracs
de
base
Pour
tracer
un
point
Tracer
le
point
A(1
;
2)
avec
un
point
rouge.
diteur
Scilab
Fentre graphique
plot(1,2,".r")
Pour
tracer
un
segment
Tracer
le
segment
[AB]
en
bleu
(par
dfaut)
avec
A(1
;
2)
et
B(3
;
5).
diteur
Scilab
Fentre graphique
plot([1,3],[2,5])
Tracs
de
courbes
planes
dfinies
par
des
fonctions
y=f(x)
Pour
une
fonction
()
on
donne
dabord
les
valeurs
de
x
avec
la
commande
linspace
en
crivant
:
x=linspace(a,b,n);
o
a
est
la
plus
petite
valeur
de
la
variable
,
b
est
la
plus
grande
valeur
de ,
et
n
est
le
nombre
de
valeurs
qui
seront
calcules
entre
a
et
b.
Ne
pas
oublier
le
;
sinon
les
n
valeurs
de
safficheront.
Par
exemple,
soient
deux
fonctions
et
dfinies
sur
[-2
;
5]
par
:
= ( ! + 2) !! ,
et
= sin
!
!
Fentre graphique
function y=f(x)
y=(x^2+2*x)*exp(-x)
endfunction
x=linspace(-2,5,50);
plot(x,f)
En
ajoutant
le
programme
ci-dessous,
on
obtient
le
trac
des
deux
courbes,
celle
de
f
en
rouge
et
celle
de
g
en
vert.
Le
trac
prcdent
a
t
effac
grce
la
commande
clf
(
clear
figure
en
anglais).
diteur
Scilab
Fentre
graphique
function y=g(x)
y=sin(x/2)
endfunction
x=linspace(-2,5,50);
clf
plot(x,f,"r",x,g,"g")
Tracs
de
nuages
de
points
Termes
dune
suite
Le
cas
le
plus
courant
est
celui
o
lon
veut
tracer
les
points
(, )
aprs
avoir
calcul
les
coordonnes
()
dun
vecteur
.
On
crit
alors
plot(u,"*r")
en
spcifiant
la
forme
et
la
couleur
des
points
du
nuage
entre
guillemets.
On
a
choisi
ici
des
toiles
de
couleur
rouge
qui
ne
sont
pas
relies.
Par
dfaut,
les
points
sont
bleus
et
relis.
diteur
Scilab
Fentre graphique
for n=1:50
u(n)=(-0.8)^n;
end
clf; plot(u,"*r")
Statistiques
doubles
Les
nuages
statistiques
sont
donns
sous
la
forme
de
deux
vecteurs
:
appelons
les
X
et
Y,
on
crira
alors
plot(X,Y,"<")
pour
tracer
le
nuage
des
points
(! ; ! )
avec
des
triangles
bleus.
diteur
Scilab
Fentre graphique
X=[1,3,3,7,7,9,10];
Y=[8,7,5,5,4,2,2];
clf; plot(X,Y,"<")
Tracs
en
trois
dimensions
Scilab
permet
de
tracer
des
surfaces
et
des
courbes
dans
lespace
avec
un
grand
nombre
doptions
pour
le
traitement
des
faces
caches,
la
couleur
des
faces,
les
points
de
vue,
etc.
Nous
ne
donnerons
ici
que
deux
exemples.
La
fonction
surf
permet
de
tracer
une
surface.
Cette
fonction
prend
trois
variables
dentre,
x,
y
et
z.
x
et
y
sont
des
vecteurs
de
taille
respective
et
correspondant
des
points
des
axes
()
et
().
z
est
une
matrice
de
dimension
dont
llment
!"
est
la
cote
du
point
de
la
surface
dabscisse
!
et
dordonne
! .
Pour
tracer
la
surface
dfinie
par
une
fonction
du
type
= (, ),
il
faut
donc
:
Dfinir
la
fonction
Calculer
z=feval(x,y,f)'
feval(x,y,f)
retourne
la
matrice
dont
llment
est
(! , ! )
que
lon
va
transposer
en
utilisant
lapostrophe
'
Appliquer
surf(x,y,z).
Le
trac
de
la
surface
= 2 ! + !
(parabolode
elliptique)
:
diteur
Scilab
Fentre graphique
function z=f(x,y)
z=2*x^2+y^2;
endfunction
x=linspace(-1,1,100);
y=linspace(-2,2,200);
z=feval(x,y,f)';
clf
surf(x,y,z)
La
fonction
param3d
permet
de
tracer
une
courbe
dans
lespace.
param3d
prend
trois
arguments,
x,
y
et
z,
qui
sont
des
vecteurs
de
mme
taille
correspondant
aux
points
(! , ! , ! )
de
la
courbe.
Le
trac
de
lhlice
dfinie
par
( = cos , = sin , = )
:
diteur
Scilab
Fentre graphique
t=linspace(0,4*%pi,100);
param3d(cos(t),sin(t),t)
Simulations
et
statistiques
De
nombreuses
fonctions
existent
pour
effectuer
des
simulations
de
faon
rapide
et
performante.
Tirages
alatoires
avec
ordre
et
remise
=
3.
1.
3.
6.
- 0.7460264
0.9377355
Statistiques
Toutes
les
fonctions
statistiques
habituelles
sont
listes
la
page
32.
Gardez
particulirement
en
mmoire
:
diteur Scilab
Fentre graphique
x=[1:10];
n=[8,6,13,10,6,4,16,7,8,5];
clf; bar(x,n)
Pour
un
diagramme
en
barres
reprsentant
deux
sries
cte
cte
:
soit
la
srie
de
valeurs
X,
et
les
deux
sries
deffectifs
n1
et
n2.
Pour
le
trac,
n1
et
n2
doivent
tre
des
vecteurs
colonne,
cest
pourquoi
dans
lexemple
ci-dessous,
on
prend
les
transposes
:
diteur Scilab
Fentre graphique
X=[1,2,5];n1=[5,10,5];n2=[6,8,7];
bar(X,[n1',n2'])
=
1.
2.
3.
4.
5.
6.
noter
Il
est
aussi
possible
de
taper
cette
commande
sous
la
forme
:
m=[1,2,3;4,5,6]
Scilab
pour
les
vrais
dbutants
-
23/33
=
6.
-->m(2,3)=23
m
=
1.
2.
3.
4.
5.
23.
Loprateur
:
sert
dsigner
toutes
les
lignes
ou
toutes
les
colonnes
dune
matrice.
Pour
avoir
la
deuxime
ligne
de
la
matrice
m,
tapez
:
-->m(2,:)
ans
=
4.
5.
23.
et
la
troisime
colonne
:
-->m(:,3)
ans
=
3.
23.
Pour
obtenir
la
transpose
dune
matrice
ou
dun
vecteur,
on
utilise
lapostrophe
'
:
-->m'
ans
=
1.
4.
2.
5.
3.
23.
Oprations
Les
oprations
*
,
/
sont
des
oprations
matricielles.
Pour
faire
des
oprations
lment
par
lment,
on
fera
prcder
le
signe
opratoire
dun
point:
.*
,
./
.
-->A=[1,2,3;4,5,6]
A
1.
2.
3.
4.
5.
6.
-->B=[1;1;2]
B
1.
1.
2.
-->A*B
ans
Multiplication matricielle
9.
21.
-->A*A
!--error 10
Multiplication incohrente.
-->A.*A
ans
1.
4.
9.
16.
25.
36.
6.
8.
10.
12.
14.
16.
-->2*(A+2)
ans
-->A/A
ans
=
1.
1.518D-16
3.795D-15
1.
-->A./A
ans
=
1.
1.
1.
1.
1.
1.
=
1.
2.
3.
4.
-->C*C
Les
dimensions
ne
sont
pas
bonnes
!--error 10
Multiplication incohrente.
Scilab
pour
les
vrais
dbutants
-
25/33
-->C.*C
ans
=
1.
4.
9.
16.
-->1/C
ans
=
0.0333333
0.0666667
0.1
0.1333333
-->(1)./C
ans
=
1.
0.5
0.3333333
0.25
Rsolutions
de
systme
Pour
rsoudre
le
systme
linaire
AX
=
Y,
o
A
est
une
matrice
carre,
utilisez
lanti-slash
\
X
=
A
\
Y.
Attention,
lopration
Y
/
A
donnera
(
condition
que
les
dimensions
soient
bonnes)
un
autre
rsultat,
soit
la
matrice
Z
telle
que
Z
A
=
Y.
Pour
rsoudre
le
systme
:
1
4
2
5
3
1
=
6
1
-->Y=[1;1];
-->X=A\Y
X
=
- 0.5
0.
0.5
-->A*X
ans
=
1.
1.
=
2.
6.
9.
6.
- 4.
0.
2.
2.
2.
6.
6.
9.
6.
2.
2.
0.
- 4.
--> gsort(v,"g","i")
ans
- 4.
0.
--> gsort(v)
ans
=
9.
6.
Taille
La
fonction
length
retourne
le
nombre
de
coordonnes
dans
le
cas
dun
vecteur.
La
fonction
size
retourne
les
dimensions
(lignes,
colonnes)
dans
le
cas
dune
matrice.
-->U=[1:10]
U
=
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
-->length(U)
ans
=
10.
-->m=[1 2 3;4 5 6];
-->size(U)
ans
=
2.
3.
Somme
et
produit
Les
fonctions
sum
et
prod
calculent
respectivement
la
somme
et
le
produit
des
lments
de
leur
argument.
-->U=[1:10];
-->sum(U)
ans
=
55.
-->prod(U)
ans
=
3628800.
Unique
La
fonction
unique
ne
garde
quune
fois
les
lments
dans
un
vecteur
(mme
si
ceux-ci
sont
rpts
plusieurs
fois)
et
les
ordonne
par
ordre
croissant.
Elle
peut
tre
trs
utile
pour
faire
des
tests.
-->v=[2,6,9,6,-4,0,2]
v
=
2.
6.
9.
6.
- 4.
2.
6.
9.
0.
2.
-->unique(v)
ans
- 4.
0.
Trouver
La
fonction
find
permet
de
rechercher
des
lments
dans
un
vecteur
ou
une
matrice
et
retourne
un
vecteur
contenant
les
indices
correspondants.
Pour
trouver
tous
les
lments
du
vecteur
plus
petits
que
5
:
-->w=[1,5,3,8,14,7,3,2,12,6]; find(w<5)
ans
=
1.
3.
7.
8.
Le
vecteur
rsultat
(1,3,7,8)
nous
indique
que
les
lments
! , ! , !
et
!
sont
plus
petits
que
5.
=
3.
7.
Le
vecteur
rsultat
(3,7)
indique
que
les
lments
!
et
!
sont
gaux
3.
Problmes
de
prcision
Pour
le
calcul
Les
nombres
ont
une
valeur
absolue
comprise
entre
environ
2,210
-308
et 1,810
+308
Le
nombre
%eps
gal
2.220446049D-16
donne
la
plus
petite
prcision
relative
que
lon
puisse
esprer
dans
le
calcul,
soit
environ
16
chiffres.
Exemple
1
:
Calcul
de
sin()
-->sin(%pi)
ans
1.225D-16
La
valeur
de
ci-dessus
nest
pas
0,
mais
on
la
considre
comme
nulle.
En
effet,
par
rapport
la
valeur
maximale
de
la
fonction
sinus
(soit
1),
elle
est
gale
0
avec
une
erreur
infrieure
%eps.
Exemple
2
:
Testons
si
le
triangle
de
cts
,
1
et
2
est
rectangle
:
-->a=sqrt(3)
a
=
1.7320508
-->b=1
b
=
1.
-->c=2
c
2.
-->a^2+b^2==c^2
ans
-->abs(a^2+b^2-c^2)<%eps
ans
F
-->abs(a^2+b^2-c^2)/c^2<%eps
ans
Pour
laffichage
Par
dfaut,
les
rsultats
sont
affichs
avec
10
caractres,
comprenant
le
point
dcimal
et
le
signe.
La
fonction
format
permet
dafficher
plus
de
chiffres.
Pour
avoir
20
chiffres,
vous
taperez
alors
format(20).
Reprenons
= 3 :
-->a^2
ans
=
3.
-->format(20)
-->a^2
ans
=
2.99999999999999956
Scilab
pour
les
vrais
dbutants
-
30/33
! 1
! 1
La
solution
y
est
une
matrice
de
dimension
n T :
! 1
! 2
! 2
! 2
!
!
" =
Exemple
:
Rsoudre
lquation
diffrentielle
= , ! =
On
ramne
cette
quation
dordre
2
un
systme
de
deux
quations
dordre
1
en
posant
:
=
(1)
(1)
1 = 2
=
, =
=
et
(2)
(2)
"
2 = 4(1)
Commentaire
diteur
Scilab
function yprim=f(t,y)
yprim(1)=y(2);
yprim(2)=-4*y(1) ;
endfunction
t=t0:0.05:tmax;
On applique ode
y0=3; yprim0=0;
y=ode([y0;yprim0],t0,t,f);
clf; plot(t,y(1,:))
Pour lanalyse
sqrt(x)
retourne
la
racine
carre
de
pour
rel
positif
ou
nul,
et
la
racine
complexe
de
partie
relle
positive
sinon.
log(x)
retourne
le
logarithme
nprien
de
x
avec
x
nombre
rel
ou
complexe.
exp(x)
retourne
lexponentielle
de
avec
nombre
rel
ou
complexe.
abs(x)
retourne
la
valeur
absolue
du
rel
(ou
le
module
si
est
complexe).
int(x)
retourne
la
troncature
du
rel
(entier
avant
la
virgule).
floor(x)
retourne
la
partie
entire
du
rel
(entier
tel
que
< + 1).
ceil(x)
pour
rel
retourne
lentier
tel
que
1 < .
clf signifie
clear
figure
et
efface
la
figure
prsente
sur
la
fentre
graphique.
plot
permet
de
tracer
des
courbes
ou
des
nuages
de
points
en
dimension
2.
linspace(a,b,n),
avec
et
rels
et
entier,
dfinit
un
vecteur
de
valeurs
rgulirement
espaces
entre
et
.
scf
permet
douvrir
ou
de
slectionner
dautres
fentres
graphiques.
surf
permet
de
tracer
des
surfaces
en
dimension
3.
bar(X,Y)
o
X
et
Y
sont
des
vecteurs,
dessine
le
diagramme
en
btons
de
la
srie
des
valeurs
de
X
ayant
pour
effectifs
les
valeurs
de
Y.
plot(X,Y,"*")
trace
le
nuage
des
points
de
coordonnes
(X(i),Y(i))
sous
forme
dtoiles.
On
peut
prciser
la
couleur.
plot(Y,"+")
trace
le
nuage
des
points
de
coordonnes
(i,Y(i))
sous
forme
de
croix.
disp("Phrase")
affiche
ce
qui
est
crit
entre
les
guillemets.
disp(A)
o
A
est
une
matrice
de
nombres
affiche
le
tableau
des
valeurs
de
A.
disp("Phrase"+string(x))
affiche
la
phrase
et
la
valeur
du
nombre
.
xclick
retourne
les
coordonnes
du
point
cliqu
sur
la
fentre
graphique.
Utilitaires