ECT, ECS

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

Introduction au langage Scilab

I. Introduction

1. Qu’est-ce que Scilab ?

Scilab est un logiciel libre de calcul numérique multiplateforme fournissant un environnement de calcul pour des applications scientifiques.
Ce qui suit est une courte liste de ses capacités :

  • Algèbre linéaire
  • Polynômes et fonctions rationnelles,
  • Interpolation, approximation,
  • Résolution des équations différentielles,
  • Traitement de signal
  • Statistques

2. Espace de travail

L'espace de travail de Scilab est constitué de plusieurs fenêtres:

  • La console pour faire des calculs,
  • L'éditeur pour écrire des programmes,
  • Les fenêtres graphiques pour l'affichage des graphiques,
  • L'aide incorporée.

a. Console

Après avoir double-cliqué sur l'icône pour lancer Scilab, l'environnement Scilab se compose par défaut des fenêtres suivantes - console, navigateurs de fichiers et de variables, historique des commandes

Figure 1 – Page d’accueil de Scilab

avec les flèches du clavier ←↑→↓ ou avec la souris. Les touches gauche et droite sont utilisées pour changer les instructions et les touches haut et bas sont utilisées pour revenir à une commande précédemment exécutée. 

Dans la console après l'invite "->", tapez simplement une commande et appuyez sur la touche Entrée pour obtenir le résultat correspondant.

--> 3+5
 ans  =
   8.

--> 5/4+3
 ans  =
   4.25

b. L’éditeur 

Taper directement dans la console a deux inconvénients : il n’est pas possible de sauvegarder les commandes et il n’estpas facile d’éditer plusieurs lignes d’instruction. L’éditeur est l’outil approprié pour exécuter plusieurs instructions.

Ouverture de l’éditeur

Pour ouvrir l’éditeur à partir de la console, cliquez sur la première icône de la barre d’outils ou sur Applications> SciNotesdans la barre de menus. L’éditeur s’ouvre avec un fichier par défaut nommé "Untitled 1".

Écrire dans l’éditeur

Taper dans l’éditeur est comme dans n’importe quel traitement de texte. Dans l’éditeur de texte, les parenthèses d’ouvertureet de fermeture, les boucles de fin, les fonctions et les commandes de test sont ajoutées automatiquement. Cependant, cesfonctionnalités peuvent être désactivées dans Options> Auto-complétion dans le menu, en cliquant sur les deux entréesci-dessous activées par défaut :

  • (, [, ...
  • si, fonction, ...

Alors qu’en principe chaque instruction doit être entrée sur une ligne séparée, il est possible de taper plusieurs instructionssur une même ligne séparant chaque instruction avec un point-virgule " ; ". Un espace au début de la ligne appelé indentationest automatique lorsqu’une boucle ou un test est démarré.

Remarque 1 

  • Les commentaires précédés de "//" ne seront pas pris en compte dans les calculs.
  • Pour changer la police, cliquez sur Options> Préférences.
  • Lors de l’écriture d’un programme, l’indentation est automatique. Si ce n’est pas le cas, cliquez sur Edition> Corriger l’indentation pour la restaurer (Ctrl I sous Windows et Linux ou Commande I sous Mac OS X).

Sauvegarde
Tout fichier peut être sauvegardé en cliquant sur File > Save as. L’extension ".sce" à la fin d’un nom de fichier lanceraautomatiquement Scilab lors de l’ouverture (sauf sous Linux et Mac OS X). Copie dans la console, exécution d’unprogramme En cliquant sur Exécuter dans la barre de menu, trois options sont disponibles :

  • Exécuter "...file with no echo" (Ctrl Shift E sous Windows et Linux, Cmd Shift E sous Mac OS X) : le fichier estexécuté sans écrire le programme dans la console (sauvegarder le fichier en premier est obligatoire).

  • Exécuter "... file with echo" (Ctrl L sous Windows et Linux, Cmd L sous Mac OS X) : réécrire le fichier dans la consoleet l’exécuter.

  • Exécuter "...until the caret, with echo" (Ctrl E sous Windows et Linux, Cmd E sous Mac OS X) : réécrire la sélectionchoisie avec la souris dans la console et l’exécuter ou exécuter les données du fichier jusqu’au curseur position définiepar l’utilisateur.

Copier / coller standard peut également être utilisé.

c. La fenêtre graphique

Ouvrir une fenêtre graphique Une fenêtre graphique s’ouvre automatiquement lors de la création de n’importe queltracé. Il est possible de tracer des courbes, des surfaces, des séquences de points.
Pour obtenir un exemple de courbe, tapez dans la console :

--> plot

Remarque 2 

  • Pour effacer un tracé, tapez clf ("clear figure").
  • Pour ouvrir une autre fenêtre graphique, tapez scf ; ("set current figure"). 

Figure 2 – La fenêtre graphique

  • Si plusieurs fenêtres graphiques sont ouvertes, vous pouvez choisir dans lequel le tracé sera dessiné en tapant scf (n) ; n pour le numéro de fenêtre graphique (mentionné en haut à gauche).

Modifier une fenêtre La loupe  permet un zoom. Pour zoomer en deux dimensions, cliquez sur l’outil et avec la souriscréez un rectangle qui constituera la nouvelle vue agrandie. Pour zoomer en trois dimensions, cliquez sur l’outil et créez unparallélépipède qui constituera la nouvelle vue agrandie. Il est également possible de zoomer en utilisant la molette de lasouris. Pour revenir à l’écran initial, cliquez sur l’autre loupe . L’icône permet la rotation de la figure (particulièrementutile en 3-D) avec des actions de clic droit guidées par des messages en bas de la fenêtre graphique.

Pour des modifications plus précises, cliquez sur Edit > Figure properties de la figure ou Axes properties et laissez-vous guider Aide en ligne Pour accéder à l’aide en ligne, cliquez sur ? > Scilab Help dans la barre de menu, ou tapez dans la console : 

--> help 

Figure 3 – La fenêtre d’aide

Pour obtenir de l’aide sur n’importe quelle fonction, tapez help dans la console suivi du nom de la fonction appropriée. Par exemple :

--> help sin

affiche l’aide pour la fonction sin (sinus). 

II. Eléments de base du langage 

Scilab calcule uniquement avec des nombres. Tous les calculs sont effectués avec des matrices, bien que cela puisse passer inaperçu. Même si le concept de matrices est inconnu, les vecteurs et les suites de nombres peuvent l’expliquer, car ce sont en fait des matrices de dimension 1 × n ou n × 1 et un nombre est lui-même une matrice de dimension 1 × 1. Les variables n’ont pas besoin d’être déclarées à l’avance, mais toute variable doit avoir une valeur. Par exemple, l’obtention de la valeur d’une variable qui n’a pas reçu de valeur génère une erreur : 

--> f
Undefined variable: f 

1. Expressions 

Évaluation des données ou faire les opérations arithmétiques. 

--> 2+6/2
 ans  =
   5.

Opérateurs arithmétiques :

 

2. Nom du variable 

Les noms de variables peuvent être aussi longs que l’utilisateur le souhaite.

  • Toutes les lettres ASCII de "a" à "z", de "A" à "Z" et les chiffres de "0" à "9" sont autorisés, avec les caractères supplémentaires %, _, #,, $, ?.
    Notez bien que les noms de variables, dont la première lettre est "%", ont une signification spéciale dans Scilab
  • Scilab est sensible à la casse
-->A = 2
  A=
   2.
-->a = 1
  a=
   1.
-->A
  A=
   2.
-->a
  a=
   1. 

3. Commentaires et lignes de suite 

Toute ligne commençant par deux barres obliques "//" est considérée par Scilab comme un commentaire est ignorée. Quand une instruction exécutable est trop longue pour être écrite sur une seule ligne, la deuxième et les suivantes lignes sontappelées lignes de continuation. Dans Scilab, toute ligne se terminant par deux points est considérée comme le début d’unenouvelle ligne de continuation. 

-->// c'est un commentaire.
-->x=1..
-- >+2..
-- >+3..
-->+4
x=
    10.

4. Fonctions mathématiques 

Figure 4 – fonctions mathématques

La plupart de ces fonctions prennent un argument d’entrée et retournent un argument de sortie. Ces fonctions sontvectorisées dans le sens où leurs arguments d’entrée et de sortie sont des matrices. Cela permet de calculer des données avecdes performances plus élevées, sans aucune boucle. 

Figure 5 – variables mathématiques pré-définies

Dans l’exemple suivant, nous utilisons les fonctions cos et sin et vérifions l’égalité cos2(x) + sin2(x) = 1 

-->x = cos (2)
  x =
   - 0.4161468
-->y = sin (2)
  y =
   0.9092974
-->x^2+y^2
  ans =
   1.

5. Types de données 

a. Booléen 

Les variables booléennes peuvent stocker des valeurs vraies ou fausses. Dans Scilab, true s’écrit avec %t ou %T et false avec %f ou %F

--> etat=%t
   etat  =
     T
--> etat=%f
   etat  =
     F

b. Nombres complexes 

Scilab fournit des nombres complexes, qui sont stockés sous forme de paires de nombres à virgule flottante. La variable prédéfinie %i représente le nombre imaginaire qui satisfait i2 = −1.

-->x= 1+%i 
x=
  1. + i 
-->isreal(x)
ans = 
     F
-->y=1-%i
y=
   1. - i
-->real(y)
ans =
    1. 
-->imag(y)
ans = 
  - 1.

c. Entiers

Nous pouvons créer différents types de variables entières avec Scilab. Il existe un lien direct entre le nombre de bits utilisés

Figure 6 – Types de données entières 

pour stocker un nombre entier et la plage de valeurs que l’entier peut gérer. La plage d’une variable entière dépend du nombrede ses bits.

  • Un entier signé n bits prend ses valeurs de la plage [−2n−1 , 2n−1 − 1]
  • Un entier non signé n bits prend ses valeurs de la plage [0, 2n − 1]

 

d. Conversions entre entiers 

Il existe des fonctions qui permettent de convertir des types de données entiers.
La fonction inttype permet de se renseigner sur le type d’une variable entière. Selon le type, la fonction renvoie une valeur correspondante

Figure 7 – Conversions entre entiers 

Figure 8 – Types d’entiers renvoyés par la fonction inttype.

--> a=int8(3)
 a  =
  3
--> b=uint8(3)
 b  =
  3
--> c=int32(3)
 c  =
  3
--> d=uint32(3)
 d  =
  3
--> inttype(a)
 ans  =
   1.
--> inttype(b)
 ans  =
   11.
--> inttype(c)
 ans  =
   4.
--> inttype(d)
 ans  =
   14.

e. Virgules flottantes 

Par défaut les valeurs numériques dans Scilab sont codées sur des mots double précision (64 bits). Cela signifie que lesnombres sont représentés avec une précision relative de l’ordre de 10−16. Donc, contrairement aux logiciels de calcul formel,les résultats obtenus par Scilab ne sont pas exacts ; toutefois, ils sont suffisamment précis pour la plupart des applications. 

f. Chaines de caractères 

Les chaînes peuvent être stockées dans des variables, à condition qu’elles soient délimitées par des guillemets "" ".L’opération de coordination est disponible à partir de l’opérateur" + " 

-->x = "foo"
x=
   foo
-->y="bar"
y=
    bar
-->x+y
ans =
     foobar

6. Fonctions de lecture et ecriture 

a. fonction d'écriture disp 

la fonction disp permet l’affichage de variables de toute nature (nombres, matrices, texte) :disp(x1,[x2,...xn]) 

--> disp('hello')
 hello
 
--> a=3;disp(a)
   3.

--> disp('salam',a)
   3.
 salam

b. fonction de lecture input

La fonction input fonction provoque une interruption dans le programme courant. L’utilisateur est invité à entrer descaractères au clavier et à terminer avec <Enter>. Lorsque cette touche est enfoncée, l’exécution du programme se poursuit,et la fonction fournit en retour une valeur correspondant à ce que l’utilisateur a entré. Cette valeur peut alors être assignéeà une variable quelconque, convertie, etc.

Pour lire une valeur numérque :

--> x=input("saisir une valeur")
saisir une valeur
4.5
 x  = 
   4.5

--> x
 x  = 
   4.5

 pour lire une chaine de caractères : 

--> nom=input("Saisir votre Nom : ","string")
Saisir votre Nom :
ESSADDOUKI
 nom  =

 ESSADDOUKI


Télécharger le cours

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :