Doit apparaître la fenêtre:
avec en dernière ligne, le prompt (->) , qui vous invite à taper une commande.
-->2+2après retour chariot nous obtenons
ans = 4.
ce qui nous permet de constater que nous sommes face à une simple calculatrice en ligne, qui évalue l'expression tapée. Les symboles usuels reconnus sont : +, -, * (multiplication), / (division à droite), (division à gauche), ^ ou ** (exponentiation) et les parenthèses ouvrante et fermente.
La ``virgule'' des nombres décimaux est remplacée par le ``.'', et Scilab reconnaît la notation scientifique :
-->1.2E-1 ans = 0.12ou similairement
-->1d-4 ans = 0.0001
Scilab interprète également la quasi-totalité des fonctions standards telles : sin, cos, tan, exp, log (logarithme népérien) ... Consultez la table de fonctions usuelles.
-->sin(2* %pi +1)^2 / (tan(10.2) +1) ans = 0.4295621Noter l'usage de %pi (valeur ), le % est réservé aux variables pré-définies telles : %i la racine carrée de -1, %e=2.7182818 ou encore %eps=4.441E-16 précision machine... voir la table des variables réservées.
-->(1-%i)^2 ans = - 2.i
Les fonctions usuelles sont étendues aux valeurs complexes.
-->sin(1+%i) ans = 1.2984576 + 0.6349639iDe ce fait Scilab traite implicitement les valeurs réelles et complexes.
évaluer
Scilab est un logiciel de calcul à précision finie (en principe de l'ordre de 16 chiffres significatifs : ``double précision''). Cela fait plus de décimales que les résultats obtenus précédemment. Mais il est possible de fixer ce nombre de décimales à afficher, ainsi que la forme (format scientifique), c'est la commande format qui est d'usage :
-->1/3 , format("v",16); 1/3 ans = 0.3333333 ans = 0.3333333333333ou encore
-->1/3 , format("e"); 1/3 ans = 0.3333333 ans = 3.333E-01
format spécifie le type d'affichage (``v'' ou ``e'') et le nombre de caractères du résultats (1 caractère pour le signe). Néanmoins il est possible d'afficher plus de décimales que la précision machine %eps (qui est la plus grande quantité telle que 1=1+%eps), ceci est dépendant en partie de l'unité arithmétique de la machine.
Le mode par défaut est : format('v',10).
Remarque : la virgule et le point virgule séparent les
instructions, la virgule autorise l'affichage de l'évaluation de
l'expression, mais pas le point virgule (Taper 1/3 puis 1/3;).
-->[1 2 ; 3,4] ans = ! 1. 2. ! ! 3. 4. !ce qui rend la composition de matrices aisée, avec une écriture ligne par ligne. Les espaces ou virgule (`` '' ou ``,'') jouent le rôle de ``séparateur'' des colonnes et le ``;'' celui des lignes, le tout englobé dans des crochets ouvrant-fermant [ ]. Pour des raisons pratiques, on peut être amené à écrire la matrice sur plusieurs lignes, alors cette fois c'est le passage à la ligne qui fait office de délimiteur de fin de ligne (de la matrice).
-->[1 2 --> 3,4] ans = ! 1. 2. ! ! 3. 4. !
Remarque : La matrice peut être réelle ou complexe
exemple :[1+2*%i , %i; 1 2].
La multiplication matricielle devient une simple opération en ligne
-->[1 2 ; 3 4]*[0 1; 1 0] ans = ! 2. 1. ! ! 4. 3. !ou encore
-->2*[1 2 ; 3 4] ans = ! 2. 4. ! ! 6. 8. !Bien sûr quand cela est possible !
-->[1 ; 2]*[0 1; 1 0] !--error 10 inconsistent multiplicationmais
-->[0 1; 1 0]*[1 ; 2] ans = ! 2. ! ! 1. !
Taper [1 2]+1.
Bien sûr les opérations +,- et * fonctionnent (à condition que les tailles soient compatibles).
Faisons un petit tour des opérations matricielles courantes.
La transposition : signe ' (simple quote ou apostrophe)
-->a=[1 2]' a = ! 1. ! ! 2. !
La multiplication terme à terme : signe .*
-->[1 2].*[2 3] ans = ! 2. 6. !
La division terme à terme : signe ./
-->[1 2]./[2 3] ans = ! 0.5 0.6666667 !
L'exponentiation : Pour le signe ^ nous avons 2 comportements :
-->[1 2]^2 ans = ! 1. 4. !mais
-->[1 2;3 4]^2 ans = ! 7. 10. ! ! 15. 22. !alors que
-->[1 2;3 4].^2 ans = ! 1. 4. ! ! 9. 16. !Autrement dit, si la matrice n'est pas carrée l'exponentiation agit terme à terme, et dans le cas d'une matrice carrée le signe ^ correspond à l'exponentielle de l'opérateur linéaire de la matrice (définie sous forme de série).
Ce dernier exemple illustre l'usage du point (.) devant l'opérateur, cette extension indique que l'opération voulue à lieu élément par élément.
Finissons notre courte description sur les opérations matricielles en remarquant que les fonctions usuelles (sin, cos, tan ...) s'appliquent à chaque terme de la matrice (ou vecteur!)
-->sin([%pi, %pi/2]) ans = ! 1.225E-16 1. !Scilab possède également des fonctions propres aux matrices carrées1.1 (définition sous forme de série) comme : expm exponentielle matricielle, avec l'extension ``m'' pour les différencier.
Un environnement matriciel sans opérations d'algèbre linéaire serait sans intérêt. Scilab met à disposition un grand nombre de fonctions telles inv (inverse de matrice), det (déterminant), spec (extraction de valeurs et vecteurs propres), lu (décomposition LU) ...
Pour compléter cette première description des capacités calculatoires de Scilab, il faut mentionner le calcul booléen. Pour cela, il existe deux variables booléennes %t (pour ``true'') et %f (pour ``false'') qui peuvent être utilisées avec les conjonctions :
-->~%t ans = F
-->%t & %f ans = F
-->%t | %f ans = T
Scilab sait évaluer les expressions de comparaison du type : 1==2, 1<2, 1<=2, 1>2 et 1>=2, le résultat est de type booléen.
Remarque : Il y a une distinction nette entre le ``égale `` d'affectation (=) et celui de la comparaison (==).
Taper
Enfin le calcul booléen s'étend aux expressions matricielles
-->[%t %f 1==2] ans = ! T F F !avec
-->~[%t %f 1==2] ans = ! F T T !mais aussi
-->[1 2 3]==[3 2 1] ans = ! F T F !les opérateurs & et agissent sur des matrices de même taille ou alors sur des opérations de type scalaire fois une matrice
-->%t & [%t %f] ans = ! T F !
Scilab intègre un grand nombre de fonctions de l'algèbre
linéaire (déterminant, inverse de matrice, valeurs et vecteurs propres
...) ainsi que des procédures de tri et autre indexation. Pour une
description plus complète il faut signaler une grand pan (passé sous
silence dans ce manuscrit) dédié au traitement du signal.
Scilab offre également la possibilité de manipuler des fenêtres de
dialogue, de configurer des menus... Tout ce qu'il faut pour
développer des applications orienté utilisateur.
Une grande force de cet espace de travail est de donner à tout moment
la possibilité de stocker ou d'affecter un résultat à une
variable1.2.
-->x=0:0.1:0.8; -->x x = ! 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 !
Scilab possède également une riche bibliothèque de fonctions graphiques 2D et 3D.
-->plot(x,sin(x))et bien d'autres.
Taper plot(), plot2d(),
plot3d().
Pour se rendre compte des capacités offertes par cet environnement cliquer sur dans la barre des menus de la fenêtre principale.
Nous avons deux fonctions utiles tout d'abord la fonction help
-->help sinqui renvoie dans une fenêtre un manuel de la commande.
Ensuite la fonction apropos
-->apropos titlequi renvoie sur la liste des manuels contenant la chaîne de caractère (title dans l'exemple).
Bien sûr, il est vivement conseillé à l'utilisateur de cliquer sur
de la barre des menus pour faire apparaître une
fenêtre avec un classement thématique. Un clic dessus
retourne le help correspondant.
-->plot() -->!p
Scilab est un logiciel interactif et en même temps un logiciel de programmation avec son propre langage. Nous allons dans la suite décrire un certain nombre de type pré-définis ainsi que les règles de manipulation.